1.1
parent
0ffe8a949a
commit
39b6f06ca8
@ -0,0 +1,30 @@
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
ConfirmPassword confirmPasswordFromJson(String str) => ConfirmPassword.fromJson(json.decode(str));
|
||||
|
||||
String confirmPasswordToJson(ConfirmPassword data) => json.encode(data.toJson());
|
||||
|
||||
class ConfirmPassword {
|
||||
dynamic totalItemsCount;
|
||||
int? messageStatus;
|
||||
String? message;
|
||||
|
||||
ConfirmPassword(
|
||||
{this.totalItemsCount, this.messageStatus, this.message});
|
||||
|
||||
ConfirmPassword.fromJson(Map<String, dynamic> json) {
|
||||
totalItemsCount = json['totalItemsCount'];
|
||||
messageStatus = json['messageStatus'];
|
||||
message = json['message'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['totalItemsCount'] = this.totalItemsCount;
|
||||
data['messageStatus'] = this.messageStatus;
|
||||
data['message'] = this.message;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,50 @@
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
PasswordOTPCompare otpCompareFromJson(String str) => PasswordOTPCompare.fromJson(json.decode(str));
|
||||
|
||||
String otpCompareToJson(PasswordOTPCompare data) => json.encode(data.toJson());
|
||||
|
||||
class PasswordOTPCompare {
|
||||
dynamic totalItemsCount;
|
||||
Data? data;
|
||||
int? messageStatus;
|
||||
String? message;
|
||||
|
||||
PasswordOTPCompare(
|
||||
{this.totalItemsCount, this.data, this.messageStatus, this.message});
|
||||
|
||||
PasswordOTPCompare.fromJson(Map<String, dynamic> json) {
|
||||
totalItemsCount = json['totalItemsCount'];
|
||||
data = json['data'] != null ? new Data.fromJson(json['data']) : null;
|
||||
messageStatus = json['messageStatus'];
|
||||
message = json['message'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['totalItemsCount'] = this.totalItemsCount;
|
||||
if (this.data != null) {
|
||||
data['data'] = this.data!.toJson();
|
||||
}
|
||||
data['messageStatus'] = this.messageStatus;
|
||||
data['message'] = this.message;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Data {
|
||||
String? userToken;
|
||||
|
||||
Data({this.userToken});
|
||||
|
||||
Data.fromJson(Map<String, dynamic> json) {
|
||||
userToken = json['userToken'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['userToken'] = this.userToken;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
PasswordOTPRequest otpRequestFromJson(String str) => PasswordOTPRequest.fromJson(json.decode(str));
|
||||
|
||||
String otpRequestToJson(PasswordOTPRequest data) => json.encode(data.toJson());
|
||||
|
||||
class PasswordOTPRequest {
|
||||
dynamic totalItemsCount;
|
||||
Data? data;
|
||||
int? messageStatus;
|
||||
String? message;
|
||||
|
||||
PasswordOTPRequest(
|
||||
{this.totalItemsCount, this.data, this.messageStatus, this.message});
|
||||
|
||||
PasswordOTPRequest.fromJson(Map<String, dynamic> json) {
|
||||
totalItemsCount = json['totalItemsCount'];
|
||||
data = json['data'] != null ? new Data.fromJson(json['data']) : null;
|
||||
messageStatus = json['messageStatus'];
|
||||
message = json['message'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['totalItemsCount'] = this.totalItemsCount;
|
||||
if (this.data != null) {
|
||||
data['data'] = this.data!.toJson();
|
||||
}
|
||||
data['messageStatus'] = this.messageStatus;
|
||||
data['message'] = this.message;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Data {
|
||||
String? userToken;
|
||||
|
||||
Data({this.userToken});
|
||||
|
||||
Data.fromJson(Map<String, dynamic> json) {
|
||||
userToken = json['userToken'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['userToken'] = this.userToken;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
import 'package:car_provider_app/api/shared_prefrence.dart';
|
||||
import 'package:car_provider_app/api/user_api_client.dart';
|
||||
import 'package:car_provider_app/classes/utils.dart';
|
||||
import 'package:car_provider_app/config/routes.dart';
|
||||
import 'package:car_provider_app/models/user/confirm_password.dart';
|
||||
import 'package:car_provider_app/models/user/forget_password_otp_compare.dart';
|
||||
import 'package:car_provider_app/models/user/forget_password_otp_request.dart';
|
||||
import 'package:car_provider_app/pages/user/vertify_password_page.dart';
|
||||
import 'package:car_provider_app/utils/navigator.dart';
|
||||
import 'package:car_provider_app/utils/utils.dart';
|
||||
import 'package:car_provider_app/widgets/app_bar.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/dialogs.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
|
||||
import 'package:car_provider_app/widgets/show_fill_button.dart';
|
||||
import 'package:car_provider_app/extensions/string_extensions.dart';
|
||||
import 'package:car_provider_app/extensions/int_extensions.dart';
|
||||
import 'package:car_provider_app/widgets/txt_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart';
|
||||
|
||||
class ConfirmNewPasswordPage extends StatelessWidget {
|
||||
String userToken;
|
||||
|
||||
ConfirmNewPasswordPage(this.userToken, {Key? key}) : super(key: key);
|
||||
|
||||
String newPassword = "";
|
||||
|
||||
// String userToken = "";
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: appBar(title: "Forget Password"),
|
||||
body: Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
padding: EdgeInsets.all(40),
|
||||
child: Column(
|
||||
children: [
|
||||
"New Password".toText24(),
|
||||
12.height,
|
||||
TxtField(
|
||||
hint: "Inter New Password",
|
||||
value: newPassword,
|
||||
onChanged: (v) {
|
||||
newPassword = v;
|
||||
},
|
||||
),
|
||||
40.height,
|
||||
ShowFillButton(
|
||||
title: "Confirm",
|
||||
width: double.infinity,
|
||||
onPressed: () {
|
||||
confirmPasswordOTP(context);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> confirmPasswordOTP(BuildContext context) async {
|
||||
Utils.showLoading(context);
|
||||
Response res = await UserApiClent().ForgetPassword(userToken, newPassword);
|
||||
Utils.hideLoading(context);
|
||||
ConfirmPassword data = ConfirmPassword.fromJson(jsonDecode(res.body));
|
||||
if (data.messageStatus == 1) {
|
||||
navigateWithName(context, AppRoutes.loginWithPassword);
|
||||
} else {
|
||||
Utils.showToast(data.message ?? "");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,49 +1,170 @@
|
||||
import 'package:car_provider_app/api/shared_prefrence.dart';
|
||||
import 'package:car_provider_app/api/user_api_client.dart';
|
||||
import 'package:car_provider_app/classes/utils.dart';
|
||||
import 'package:car_provider_app/config/constants.dart';
|
||||
import 'package:car_provider_app/config/routes.dart';
|
||||
import 'package:car_provider_app/models/user/forget_password_otp_compare.dart';
|
||||
import 'package:car_provider_app/models/user/forget_password_otp_request.dart';
|
||||
import 'package:car_provider_app/pages/user/vertify_password_page.dart';
|
||||
import 'package:car_provider_app/utils/navigator.dart';
|
||||
import 'package:car_provider_app/utils/utils.dart';
|
||||
import 'package:car_provider_app/widgets/app_bar.dart';
|
||||
import 'package:car_provider_app/widgets/button/show_image_button.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/dialogs.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
|
||||
import 'package:car_provider_app/widgets/show_fill_button.dart';
|
||||
import 'package:car_provider_app/extensions/string_extensions.dart';
|
||||
import 'package:car_provider_app/extensions/int_extensions.dart';
|
||||
import 'package:car_provider_app/extensions/widget_extensions.dart';
|
||||
import 'package:car_provider_app/widgets/txt_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:car_provider_app/models/user/user.dart';
|
||||
|
||||
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart';
|
||||
|
||||
|
||||
class ForgetPasswordPage extends StatelessWidget {
|
||||
|
||||
int otpType = 1;
|
||||
String userName = "";
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: appBar(title: "Forget Password"),
|
||||
appBar: appBar(title: "Change Password"),
|
||||
body: Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
padding: EdgeInsets.all(40),
|
||||
child: Column(
|
||||
children: [
|
||||
"Retrieve Password".toText24(),
|
||||
12.height,
|
||||
"Verify New Password".toText24(),
|
||||
mFlex(1),
|
||||
TxtField(
|
||||
hint: "Phone Number",
|
||||
value: userName,
|
||||
onChanged: (v) {
|
||||
userName = v;
|
||||
},
|
||||
),
|
||||
TxtField(
|
||||
hint: "Email",
|
||||
),
|
||||
40.height,
|
||||
ShowFillButton(
|
||||
title: "Continue",
|
||||
width: double.infinity,
|
||||
onPressed: () {
|
||||
showMDialog(
|
||||
context,
|
||||
child: MessageDialog(
|
||||
title: "New Password sent used",
|
||||
mFlex(2),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: ShowImageButton(
|
||||
onClick: () {
|
||||
otpType = 1;
|
||||
forgetPasswordOTP(context);
|
||||
// showMDialog(context, child: OtpDialog(
|
||||
// onClick: (String code) {
|
||||
// pop(context);
|
||||
// delay(300).then(
|
||||
// (value) => showMDialog(
|
||||
// context,
|
||||
// child: MessageDialog(
|
||||
// title: "Phone Number Verified",
|
||||
// onClick: () {
|
||||
// otpType=1;
|
||||
// navigateWithName(context, AppRoutes.confirmNewPasswordPage);
|
||||
// // ForgetPasswordOTP(context);
|
||||
// },
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// ));
|
||||
},
|
||||
title: 'With SMS',
|
||||
icon: icons + "ic_sms.png",
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
20.width,
|
||||
Expanded(
|
||||
child: ShowImageButton(
|
||||
onClick: () {
|
||||
otpType = 1;
|
||||
forgetPasswordOTP(context);
|
||||
// showMDialog(context, child: OtpDialog(
|
||||
// onClick: (String code) {
|
||||
// pop(context);
|
||||
// delay(300).then(
|
||||
// (value) => showMDialog(
|
||||
// context,
|
||||
// child: MessageDialog(
|
||||
// title: "Phone Number Verified",
|
||||
// onClick: () {
|
||||
// otpType=2;
|
||||
// navigateWithName(context, AppRoutes.confirmNewPasswordPage);
|
||||
// // ForgetPasswordOTP(context);
|
||||
// },
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// ));
|
||||
},
|
||||
title: 'With Whatsapp',
|
||||
icon: icons + "ic_whatsapp.png",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
mFlex(10),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> forgetPasswordOTP(BuildContext context) async {
|
||||
|
||||
Utils.showLoading(context);
|
||||
Response response = await UserApiClent().ForgetPasswordOTPRequest(userName, otpType);
|
||||
Utils.hideLoading(context);
|
||||
PasswordOTPRequest otpRequest = PasswordOTPRequest.fromJson(jsonDecode(response.body));
|
||||
if (otpRequest.messageStatus == 1) {
|
||||
showMDialog(context, child: OtpDialog(
|
||||
onClick: (String code) async {
|
||||
pop(context);
|
||||
Utils.showLoading(context);
|
||||
Response res = await UserApiClent().ForgetPasswordOTPCompare(otpRequest.data!.userToken??"", code);
|
||||
Utils.hideLoading(context);
|
||||
PasswordOTPCompare otpCompare = PasswordOTPCompare.fromJson(jsonDecode(res.body));
|
||||
if (otpCompare.messageStatus == 1) {
|
||||
var userToken = otpCompare.data!.userToken;
|
||||
print("token is ________");
|
||||
print(userToken);
|
||||
navigateWithName(context, AppRoutes.confirmNewPasswordPage,arguments: userToken);
|
||||
} else {
|
||||
Utils.showToast(otpCompare.message??"");
|
||||
}
|
||||
},
|
||||
));
|
||||
// showMDialog(context, child: OtpDialog(
|
||||
// onClick: (String code) {
|
||||
// pop(context);
|
||||
// delay(300).then(
|
||||
// (value) => showMDialog(
|
||||
// context,
|
||||
// child: MessageDialog(
|
||||
// title: "Phone Number Verified",
|
||||
// onClick: () {
|
||||
// otpType=1;
|
||||
// navigateWithName(context, AppRoutes.confirmNewPasswordPage);
|
||||
// // ForgetPasswordOTP(context);
|
||||
// },
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// ));
|
||||
// navigateWithName(context, AppRoutes.vertifyPassword);
|
||||
} else {
|
||||
Utils.showToast(otpRequest.message ?? "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,162 @@
|
||||
|
||||
import 'package:car_provider_app/api/user_api_client.dart';
|
||||
import 'package:car_provider_app/classes/utils.dart';
|
||||
import 'package:car_provider_app/config/constants.dart';
|
||||
import 'package:car_provider_app/config/routes.dart';
|
||||
import 'package:car_provider_app/models/user/forget_password_otp_compare.dart';
|
||||
import 'package:car_provider_app/models/user/forget_password_otp_request.dart';
|
||||
import 'package:car_provider_app/utils/navigator.dart';
|
||||
import 'package:car_provider_app/utils/utils.dart';
|
||||
import 'package:car_provider_app/widgets/app_bar.dart';
|
||||
import 'package:car_provider_app/widgets/button/show_image_button.dart';
|
||||
import 'package:car_provider_app/extensions/int_extensions.dart';
|
||||
import 'package:car_provider_app/extensions/string_extensions.dart';
|
||||
import 'package:car_provider_app/extensions/widget_extensions.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/dialogs.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/message_dialog.dart';
|
||||
import 'package:car_provider_app/widgets/dialog/otp_dialog.dart';
|
||||
import 'package:car_provider_app/widgets/txt_field.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
|
||||
|
||||
class VerifyPasswordPage extends StatelessWidget {
|
||||
int otpType = 1;
|
||||
String phoneNum = "";
|
||||
String userName = "";
|
||||
String userToken = "";
|
||||
String otp = "";
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: appBar(title: "Change Password"),
|
||||
body: Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
padding: EdgeInsets.all(40),
|
||||
child: Column(
|
||||
children: [
|
||||
"Verify New Password".toText24(),
|
||||
mFlex(1),
|
||||
TxtField(
|
||||
hint: "966500000000",
|
||||
value: phoneNum,
|
||||
onChanged: (v) {
|
||||
phoneNum = v;
|
||||
},
|
||||
),
|
||||
mFlex(2),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: ShowImageButton(
|
||||
onClick: () {
|
||||
otpType = 1;
|
||||
// sendPasswordOTP(context);
|
||||
showMDialog(context, child: OtpDialog(
|
||||
onClick: (String code) {
|
||||
pop(context);
|
||||
delay(300).then(
|
||||
(value) => showMDialog(
|
||||
context,
|
||||
child: MessageDialog(
|
||||
title: "Phone Number Verified",
|
||||
onClick: () {
|
||||
otpType=1;
|
||||
navigateWithName(context, AppRoutes.confirmNewPasswordPage);
|
||||
// ForgetPasswordOTP(context);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
));
|
||||
},
|
||||
title: 'With SMS',
|
||||
icon: icons + "ic_sms.png",
|
||||
),
|
||||
),
|
||||
20.width,
|
||||
Expanded(
|
||||
child: ShowImageButton(
|
||||
onClick: () {
|
||||
otpType = 1;
|
||||
// sendPasswordOTP(context);
|
||||
showMDialog(context, child: OtpDialog(
|
||||
onClick: (String code) {
|
||||
pop(context);
|
||||
delay(300).then(
|
||||
(value) => showMDialog(
|
||||
context,
|
||||
child: MessageDialog(
|
||||
title: "Phone Number Verified",
|
||||
onClick: () {
|
||||
otpType=2;
|
||||
navigateWithName(context, AppRoutes.confirmNewPasswordPage);
|
||||
// ForgetPasswordOTP(context);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
));
|
||||
},
|
||||
title: 'With Whatsapp',
|
||||
icon: icons + "ic_whatsapp.png",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
mFlex(10),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Future<void> sendPasswordOTP(BuildContext context) async {
|
||||
// Utils.showLoading(context);
|
||||
// PasswordOTPCompare otpCompare = await UserApiClent().ForgetPasswordOTPCompare(userToken, otp);
|
||||
// Utils.hideLoading(context);
|
||||
// if (otpCompare.messageStatus == 1) {
|
||||
// // navigateWithName(context, AppRoutes.confirmNewPasswordPage);
|
||||
// showMDialog(context, child: OtpDialog(
|
||||
// onClick: (String code) async {
|
||||
// pop(context);
|
||||
// Utils.showLoading(context);
|
||||
// // PasswordOTPCompare otpCompare = await UserApiClent().ForgetPasswordOTPCompare(userToken, otp);
|
||||
// Utils.hideLoading(context);
|
||||
// },
|
||||
// ));
|
||||
// } else {
|
||||
// Utils.showToast(otpCompare.message ?? "");
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// User otpRequest = User.fromJson(jsonDecode(res.body));
|
||||
// SharedPrefManager.setUserToken(otpRequest.data!.accessToken ?? "");
|
||||
// SharedPrefManager.setUserId(otpRequest.data!.userInfo!.userId ?? "");
|
||||
// showMDialog(context, child: OtpDialog(
|
||||
// onClick: (String code) {
|
||||
// pop(context);
|
||||
// delay(300).then(
|
||||
// (value) => showMDialog(
|
||||
// context,
|
||||
// child: MessageDialog(
|
||||
// title: "Phone Number Verified",
|
||||
// onClick: () {
|
||||
// otpType=1;
|
||||
// navigateWithName(context, AppRoutes.confirmNewPasswordPage);
|
||||
// // ForgetPasswordOTP(context);
|
||||
// },
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// },
|
||||
// ));
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue