|
|
@ -17,11 +17,14 @@ import 'package:mohem_flutter_app/classes/consts.dart';
|
|
|
|
import 'package:mohem_flutter_app/classes/notifications.dart';
|
|
|
|
import 'package:mohem_flutter_app/classes/notifications.dart';
|
|
|
|
import 'package:mohem_flutter_app/classes/utils.dart';
|
|
|
|
import 'package:mohem_flutter_app/classes/utils.dart';
|
|
|
|
import 'package:mohem_flutter_app/config/routes.dart';
|
|
|
|
import 'package:mohem_flutter_app/config/routes.dart';
|
|
|
|
|
|
|
|
import 'package:mohem_flutter_app/dialogs/otp_dialog.dart';
|
|
|
|
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
|
|
|
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
|
|
|
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
|
|
|
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
|
|
|
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
|
|
|
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
|
|
|
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
|
|
|
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
|
|
|
|
|
|
|
import 'package:mohem_flutter_app/models/basic_member_information_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/check_mobile_app_version_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/check_mobile_app_version_model.dart';
|
|
|
|
|
|
|
|
import 'package:mohem_flutter_app/models/generic_response_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
|
|
|
|
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
|
|
|
@ -59,6 +62,9 @@ class _LoginScreenState extends State<LoginScreen> {
|
|
|
|
bool isOnExternalStorage = false;
|
|
|
|
bool isOnExternalStorage = false;
|
|
|
|
bool isDevelopmentModeEnable = false;
|
|
|
|
bool isDevelopmentModeEnable = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BasicMemberInformationModel? _basicMemberInformation;
|
|
|
|
|
|
|
|
GenericResponseModel? genericResponseModel;
|
|
|
|
|
|
|
|
|
|
|
|
// late HmsApiAvailability hmsApiAvailability;
|
|
|
|
// late HmsApiAvailability hmsApiAvailability;
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
@ -199,7 +205,8 @@ class _LoginScreenState extends State<LoginScreen> {
|
|
|
|
onTap: () async {
|
|
|
|
onTap: () async {
|
|
|
|
if (msg.toLowerCase().contains("password has expired")) {
|
|
|
|
if (msg.toLowerCase().contains("password has expired")) {
|
|
|
|
Navigator.pop(context);
|
|
|
|
Navigator.pop(context);
|
|
|
|
await Navigator.pushNamed(context, AppRoutes.newPassword, arguments: username.text);
|
|
|
|
// await Navigator.pushNamed(context, AppRoutes.newPassword, arguments: username.text);
|
|
|
|
|
|
|
|
performForgotPassword();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
Navigator.pop(context);
|
|
|
|
Navigator.pop(context);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -209,6 +216,53 @@ class _LoginScreenState extends State<LoginScreen> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void performForgotPassword() async {
|
|
|
|
|
|
|
|
// if (username.text.isEmpty) {
|
|
|
|
|
|
|
|
// return;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
_basicMemberInformation = await LoginApiClient().getBasicUserInformation("CS", username.text);
|
|
|
|
|
|
|
|
genericResponseModel = await LoginApiClient().sendPublicActivationCode(_basicMemberInformation?.pMOBILENUMBER, username.text);
|
|
|
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
OtpDialog(
|
|
|
|
|
|
|
|
context,
|
|
|
|
|
|
|
|
1,
|
|
|
|
|
|
|
|
int.tryParse(_basicMemberInformation?.pMOBILENUMBER ?? ""),
|
|
|
|
|
|
|
|
(value, TextEditingController _pinPutController) async {
|
|
|
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
GenericResponseModel? genericResponseModel = await LoginApiClient().checkPublicActivationCode(value, username.text);
|
|
|
|
|
|
|
|
if (genericResponseModel?.errorMessage != null) {
|
|
|
|
|
|
|
|
Utils.showToast(genericResponseModel?.errorMessage ?? "");
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
await Navigator.pushNamed(context, AppRoutes.newPassword, arguments: username.text);
|
|
|
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
|
|
|
} catch (ex) {
|
|
|
|
|
|
|
|
print(ex);
|
|
|
|
|
|
|
|
_pinPutController.clear();
|
|
|
|
|
|
|
|
otpFieldClear.value = "";
|
|
|
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
Utils.handleException(ex, context, null);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
() => {
|
|
|
|
|
|
|
|
Navigator.pop(context),
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onResendCode: () {
|
|
|
|
|
|
|
|
performForgotPassword();
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
).displayDialog(context);
|
|
|
|
|
|
|
|
} catch (ex) {
|
|
|
|
|
|
|
|
print(ex);
|
|
|
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
Utils.handleException(ex, context, null);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
if (isAppOpenBySystem == null) {
|
|
|
|
if (isAppOpenBySystem == null) {
|
|
|
@ -279,6 +333,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
|
|
|
alignment: Alignment.centerRight,
|
|
|
|
alignment: Alignment.centerRight,
|
|
|
|
child: LocaleKeys.forgotPassword.tr().toText12(isUnderLine: true, color: MyColors.textMixColor).onPress(() {
|
|
|
|
child: LocaleKeys.forgotPassword.tr().toText12(isUnderLine: true, color: MyColors.textMixColor).onPress(() {
|
|
|
|
Navigator.pushNamed(context, AppRoutes.forgotPassword);
|
|
|
|
Navigator.pushNamed(context, AppRoutes.forgotPassword);
|
|
|
|
|
|
|
|
// performForgotPassword();
|
|
|
|
}),
|
|
|
|
}),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
20.height,
|
|
|
|
20.height,
|
|
|
|