login flow updated

wala_plus_with_dialog_removal
Sultan khan 3 weeks ago
parent 371a3ecb74
commit 0a270bd323

@ -49,6 +49,22 @@ class LoginApiClient {
postParams["MemberType"] = memberType ?? ApiConsts.selectedMemberType.value;
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
if (responseData != null) {
bool? isEmp = responseData.isEmpLastLoginToDevice;
if (isEmp == null && json is Map) {
dynamic raw = json["IsEmpLastLoginToDevice"] ?? json["isEmpLastLoginToDevice"];
if (raw is bool) {
isEmp = raw;
} else if (raw is num) {
isEmp = raw == 1;
} else if (raw is String) {
isEmp = raw.toLowerCase() == "true" || raw == "1";
}
}
AppState().setIsEmpLastLoginToDevice = isEmp;
}
return (responseData.mohemmGetMobileLoginInfoList?.length ?? 0) > 0 ? (responseData.mohemmGetMobileLoginInfoList!.first) : null;
}, url, postParams);
}

@ -134,6 +134,12 @@ class AppState {
set setAuthenticationTokenID(String? token) => _authenticationTokenID = token;
bool? _isEmpLastLoginToDevice;
bool? get isEmpLastLoginToDevice => _isEmpLastLoginToDevice;
set setIsEmpLastLoginToDevice(bool? val) => _isEmpLastLoginToDevice = val;
void setPostParamsInitConfig() {
isAuthenticated = false;
isLogged = false;
@ -144,6 +150,7 @@ class AppState {
_dependentLoginType = null;
_dependentDob = null;
_authenticationTokenID = null;
_isEmpLastLoginToDevice = null;
_postParamsInitConfig.pLegislationCode = null;
_postParams = _postParamsInitConfig;
}

@ -407,7 +407,7 @@ class GenericResponseModel {
String? businessCardQROutside;
EmpBusinessCardInfoModel? empBusinessCardInfoModel;
bool? isEmpLastLoginToDevice;
GenericResponseModel({
this.date,
this.languageID,
@ -685,6 +685,7 @@ class GenericResponseModel {
this.walaPlusCategories,
this.businessCardQROutside,
this.empBusinessCardInfoModel,
this.isEmpLastLoginToDevice
});
GenericResponseModel.fromJson(Map<String, dynamic> json) {
@ -1492,6 +1493,7 @@ class GenericResponseModel {
walaPlusCategories!.add(WalaPlusCategoryModel.fromJson(v));
});
}
isEmpLastLoginToDevice = json["IsEmpLastLoginToDevice"];
}
Map<String, dynamic> toJson() {
@ -1992,7 +1994,7 @@ class GenericResponseModel {
if (walaPlusCategories != null) {
data['WalaPlus_Categories'] = walaPlusCategories!.map((WalaPlusCategoryModel v) => v.toJson()).toList();
}
data["IsEmpLastLoginToDevice"] = this.isEmpLastLoginToDevice;
return data;
}
}

@ -92,6 +92,7 @@ class _DashboardScreenForDependetState extends State<DashboardScreenForDependet>
_loadDependentName();
WidgetsBinding.instance.addPostFrameCallback((_) async {
if (mounted) {
await _saveDependentSessionToPrefs();
await _registerMobileLoginInfo();
await fetchCategories();
await fetchOffers(categoryId: currentCategoryId.isEmpty ? "all" : currentCategoryId);
@ -344,6 +345,64 @@ class _DashboardScreenForDependetState extends State<DashboardScreenForDependet>
Navigator.pushNamed(context, AppRoutes.walaPlusRetailerDetails, arguments: item);
}
Future<void> _saveDependentSessionToPrefs() async {
if (!ApiConsts.isDependetLogin) return;
try {
await Utils.saveStringFromPrefs("P_DEP_IS_LOGGED_IN", "true");
String nationalId = AppState().getUserName ?? "";
if (nationalId.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEP_NATIONAL_ID", nationalId);
}
String dob = AppState().dependentDob ?? "";
if (dob.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEP_BIRTH_DATE", dob);
}
String name = AppState().dependentName ?? "";
if (name.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEPENDENT_NAME", name);
}
String mobile = AppState().postParamsObject?.mobileNumber ?? "";
if (mobile.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEP_MOBILE_NUMBER", mobile);
}
String tokenID =
(AppState().postParamsObject?.tokenID != null && AppState().postParamsObject!.tokenID!.isNotEmpty)
? AppState().postParamsObject!.tokenID!
: (AppState().authenticationTokenID ?? "");
if (tokenID.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEP_TOKEN_ID", tokenID);
}
String logInTokenID = AppState().postParamsObject?.logInTokenID ?? "";
if (logInTokenID.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEP_LOGIN_TOKEN_ID", logInTokenID);
}
String authTokenID = AppState().authenticationTokenID ?? "";
if (authTokenID.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEP_AUTHENTICATION_TOKEN_ID", authTokenID);
}
int loginType = AppState().dependentLoginType ?? 1;
await Utils.saveStringFromPrefs("P_DEP_LOGIN_TYPE", loginType.toString());
String deviceToken = AppState().getIsHuawei ? AppState().getHuaweiPushToken : (AppState().getDeviceToken ?? "");
if (deviceToken.isNotEmpty) {
await Utils.saveStringFromPrefs("P_DEP_DEVICE_TOKEN", deviceToken);
}
} catch (e) {
if (kDebugMode) print("Error saving dependent session to prefs: $e");
}
}
Future<void> _clearDependentPrefs() async {
await Utils.removeStringFromPrefs("P_DEP_IS_LOGGED_IN");
await Utils.removeStringFromPrefs("P_DEP_NATIONAL_ID");
await Utils.removeStringFromPrefs("P_DEP_BIRTH_DATE");
await Utils.removeStringFromPrefs("P_DEP_TOKEN_ID");
await Utils.removeStringFromPrefs("P_DEP_LOGIN_TOKEN_ID");
await Utils.removeStringFromPrefs("P_DEP_AUTHENTICATION_TOKEN_ID");
await Utils.removeStringFromPrefs("P_DEP_MOBILE_NUMBER");
await Utils.removeStringFromPrefs("P_DEPENDENT_NAME");
await Utils.removeStringFromPrefs("P_DEP_LOGIN_TYPE");
}
void _performLogout() {
ConfirmBottomSheet.show(
context,
@ -351,11 +410,20 @@ class _DashboardScreenForDependetState extends State<DashboardScreenForDependet>
confirmText: LocaleKeys.yes.tr(),
cancelText: LocaleKeys.no.tr(),
isDestructive: true,
onConfirm: () {
onConfirm: () async {
if (ApiConsts.isDependetLogin) {
await _clearDependentPrefs();
}
ApiConsts.selectedMemberType = MemberType.employee;
ApiConsts.ISDependetLogin = false;
AppState().setDependentName = null;
AppState().setDependentDob = null;
AppState().setDependentLoginType = null;
AppState().setWalaplusDepInfoModel = null;
AppState().setPostParamsInitConfig();
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.login, (Route<dynamic> route) => false);
if (mounted) {
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.login, (Route<dynamic> route) => false);
}
},
);
}
@ -379,21 +447,23 @@ class _DashboardScreenForDependetState extends State<DashboardScreenForDependet>
children: [
Row(
children: [
InkWell(
borderRadius: BorderRadius.circular(10),
onTap: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
} else {
_performLogout();
}
},
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 8),
child: Icon(isAr ? Icons.arrow_forward_ios_rounded : Icons.arrow_back_ios_new_rounded, size: 20, color: const Color(0xFF1E293B)),
if (!ApiConsts.isDependetLogin) ...[
InkWell(
borderRadius: BorderRadius.circular(10),
onTap: () {
if (Navigator.canPop(context)) {
Navigator.pop(context);
} else {
_performLogout();
}
},
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 8),
child: Icon(isAr ? Icons.arrow_forward_ios_rounded : Icons.arrow_back_ios_new_rounded, size: 20, color: const Color(0xFF1E293B)),
),
),
),
const SizedBox(width: 8) ,
const SizedBox(width: 8),
],
SvgPicture.asset("assets/icons/mazaya_brand.svg", height: 48, fit: BoxFit.contain),
],
),
@ -427,6 +497,11 @@ class _DashboardScreenForDependetState extends State<DashboardScreenForDependet>
}
},
),
if (ApiConsts.isDependetLogin) IconButton(
icon: const Icon(Icons.logout_rounded, size: 24, color: Color(0xFF1E293B)),
tooltip: LocaleKeys.logout.tr(),
onPressed: _performLogout,
),
],
),
],

@ -217,16 +217,56 @@ class _LoginScreenState extends State<LoginScreen> {
}
String devType = Platform.isAndroid ? "android" : "ios";
if (ApiConsts.selectedMemberType.isDependent) {
dependentLoginInfo = await LoginApiClient().getMobileLoginInfoNEWDependent(devToken, devType, memberType: MemberType.dependent.value);
Utils.hideLoading(context);
if (dependentLoginInfo != null) {
_handleDependentLoginInfo(dependentLoginInfo!);
// if (ApiConsts.selectedMemberType.isDependent) {
// dependentLoginInfo = await LoginApiClient().getMobileLoginInfoNEWDependent(devToken, devType, memberType: MemberType.dependent.value);
// Utils.hideLoading(context);
// if (dependentLoginInfo != null) {
// _handleDependentLoginInfo(dependentLoginInfo!);
// }
// return;
// }
loginInfo = await LoginApiClient().getMobileLoginInfoNEW(devToken, devType, memberType: ApiConsts.selectedMemberType.value);
bool isEmpLast = AppState().isEmpLastLoginToDevice ?? true;
if (!isEmpLast) {
// Dependent login flow
ApiConsts.selectedMemberType = MemberType.dependent;
ApiConsts.ISDependetLogin = true;
if (mounted) {
setState(() {
ApiConsts.selectedMemberType = MemberType.dependent;
ApiConsts.ISDependetLogin = true;
});
}
bool autoLoggedIn = await _tryDependentAutoLogin();
if (autoLoggedIn) {
return;
}else {
dependentLoginInfo = await LoginApiClient().getMobileLoginInfoNEWDependent(devToken, devType, memberType: MemberType.dependent.value);
Utils.hideLoading(context);
if (dependentLoginInfo != null) {
_handleDependentLoginInfo(dependentLoginInfo!);
}
if (mounted) {
setState(() {});
}
return;
}
return;
}
loginInfo = await LoginApiClient().getMobileLoginInfoNEW(devToken, devType, memberType: ApiConsts.selectedMemberType.value);
// Employee login flow
ApiConsts.selectedMemberType = MemberType.employee;
ApiConsts.ISDependetLogin = false;
if (mounted) {
setState(() {
ApiConsts.selectedMemberType = MemberType.employee;
ApiConsts.ISDependetLogin = false;
});
}
if (loginInfo == null) {
await checkPrefs();
_autoLogin = false;
@ -363,7 +403,7 @@ class _LoginScreenState extends State<LoginScreen> {
AppState().setMohemmWifiPassword = mohemmWifiPassword;
}
Utils.hideLoading(context);
if (_autoLogin) {
if (_autoLogin && loginInfo != null) {
Navigator.pushReplacementNamed(context, AppRoutes.verifyLastLogin, arguments: loginInfo);
} else {
Navigator.pushNamed(context, AppRoutes.verifyLogin, arguments: "$firebaseToken");
@ -440,12 +480,15 @@ class _LoginScreenState extends State<LoginScreen> {
void _switchToMode(MemberType type) async {
if (ApiConsts.selectedMemberType != type) {
AppState().setIsEmpLastLoginToDevice = (type == MemberType.employee);
setState(() {
ApiConsts.selectedMemberType = type;
ApiConsts.ISDependetLogin = (type == MemberType.dependent);
});
if (type == MemberType.dependent) {
await checkDependentPrefs();
} else {
await checkPrefs();
}
if (firebaseToken == null || firebaseToken!.isEmpty) {
String saved = await Utils.getStringFromPrefs("P_DEP_DEVICE_TOKEN");
@ -453,7 +496,6 @@ class _LoginScreenState extends State<LoginScreen> {
firebaseToken = saved;
}
}
checkLoginInfo();
}
}
@ -724,6 +766,152 @@ class _LoginScreenState extends State<LoginScreen> {
).displayDialog(context);
}
bool _isAutoLoggingInDependent = false;
Future<bool> _tryDependentAutoLogin() async {
if (_isAutoLoggingInDependent) return true;
_isAutoLoggingInDependent = true;
try {
String isDepLoggedIn = await Utils.getStringFromPrefs("P_DEP_IS_LOGGED_IN");
if (isDepLoggedIn != "true") {
return false;
}
String savedNid = await Utils.getStringFromPrefs("P_DEP_NATIONAL_ID");
if (savedNid.isEmpty) {
return false;
}
String savedDob = await Utils.getStringFromPrefs("P_DEP_BIRTH_DATE");
String savedToken = await Utils.getStringFromPrefs("P_DEP_TOKEN_ID");
String savedLoginToken = await Utils.getStringFromPrefs("P_DEP_LOGIN_TOKEN_ID");
String savedAuthToken = await Utils.getStringFromPrefs("P_DEP_AUTHENTICATION_TOKEN_ID");
String savedMobile = await Utils.getStringFromPrefs("P_DEP_MOBILE_NUMBER");
String savedName = await Utils.getStringFromPrefs("P_DEPENDENT_NAME");
String savedLoginType = await Utils.getStringFromPrefs("P_DEP_LOGIN_TYPE");
int loginType = int.tryParse(savedLoginType) ?? 1;
String effectiveToken = savedAuthToken.isNotEmpty
? savedAuthToken
: (savedToken.isNotEmpty ? savedToken : savedLoginToken);
if (nationalId.text.isEmpty) {
nationalId.text = savedNid;
}
if (savedDob.isNotEmpty && dobController.text.isEmpty) {
DateTime? parsed = _parseBirthDate(savedDob);
if (parsed != null) {
selectedDob = parsed;
dobController.text = DateFormat('dd-MM-yyyy').format(parsed);
} else {
dobController.text = savedDob;
}
}
if (AppState().postParamsObject == null) {
AppState().setPostParamsInitConfig();
}
ApiConsts.selectedMemberType = MemberType.dependent;
ApiConsts.ISDependetLogin = true;
AppState().postParamsObject?.setTokenID = effectiveToken;
AppState().setAuthenticationTokenID = effectiveToken;
AppState().postParamsObject?.setLogInTokenID = savedLoginToken.isNotEmpty ? savedLoginToken : effectiveToken;
AppState().postParamsObject?.setUserName = savedNid;
AppState().postParamsObject?.setPUserName = savedNid;
if (savedMobile.isNotEmpty) {
AppState().postParamsObject?.setMobileNumer = savedMobile;
}
AppState().postParamsObject?.channel = 31;
AppState().postParamsObject?.versionID = 20;
AppState().setUserName = savedNid;
AppState().isAuthenticated = true;
AppState().setLogged = true;
if (savedName.isNotEmpty) {
AppState().setDependentName = savedName;
}
if (savedDob.isNotEmpty) {
AppState().setDependentDob = savedDob;
}
AppState().setDependentLoginType = loginType;
if (savedDob.isNotEmpty) {
String devToken = AppState().getIsHuawei ? AppState().getHuaweiPushToken : (firebaseToken ?? "");
if (devToken.isEmpty && !AppState().getIsHuawei) {
if (AppState().getDeviceToken != null && AppState().getDeviceToken!.isNotEmpty) {
devToken = AppState().getDeviceToken!;
} else {
devToken = await Utils.getStringFromPrefs("P_DEP_DEVICE_TOKEN");
}
}
String devType = Platform.isAndroid ? "android" : "ios";
try {
GenericResponseModel? depLoginResponse = await LoginApiClient().memberLoginDependent(
nationalId: savedNid,
birthDate: savedDob,
deviceToken: devToken,
deviceType: devType,
context: context,
);
if (depLoginResponse?.errorMessage != null && depLoginResponse!.errorMessage!.isNotEmpty) {
if (Utils.isMazayaAccessRevoked(depLoginResponse.errorMessage)) {
if (mounted) {
Utils.hideLoading(context);
_navigateToMazayaAccessRevoked(savedName);
}
return true;
}
}
if (depLoginResponse != null) {
String? authToken = (depLoginResponse.authenticationTokenID != null && depLoginResponse.authenticationTokenID!.trim().isNotEmpty)
? depLoginResponse.authenticationTokenID!.trim()
: null;
String? logInTokenID = depLoginResponse.logInTokenID;
String? mobileNumber = depLoginResponse.getWalaplusDepInfoModel?.pEmpMobileNumber ?? savedMobile;
if (authToken != null && authToken.isNotEmpty) {
if (mounted) {
Utils.hideLoading(context);
_completeDependentLogin(
depLoginResponse,
logInTokenID ?? authToken,
mobileNumber,
loginType: loginType,
navigateToDashboard: true,
);
}
return true;
}
}
} catch (ex) {
if (Utils.isMazayaAccessRevoked(ex)) {
if (mounted) {
Utils.hideLoading(context);
_navigateToMazayaAccessRevoked(savedName);
}
return true;
}
if (kDebugMode) print("Error in memberLoginDependent auto-login: $ex");
}
}
if (effectiveToken.isNotEmpty && mounted) {
Utils.hideLoading(context);
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboardScreenForDependet, (Route<dynamic> route) => false);
return true;
}
} catch (e) {
if (kDebugMode) print("Error in _tryDependentAutoLogin: $e");
} finally {
_isAutoLoggingInDependent = false;
}
return false;
}
void _completeDependentLogin(GenericResponseModel? checkOtpResponse, String logInTokenID, String mobileNumber, {int loginType = 1, bool navigateToDashboard = true}) {
String effectiveToken =
(checkOtpResponse?.authenticationTokenID != null && checkOtpResponse!.authenticationTokenID!.trim().isNotEmpty)
@ -732,11 +920,14 @@ class _LoginScreenState extends State<LoginScreen> {
? checkOtpResponse.tokenID!
: ((checkOtpResponse?.logInTokenID != null && checkOtpResponse!.logInTokenID!.isNotEmpty) ? checkOtpResponse.logInTokenID! : logInTokenID));
String effectiveNationalId = nationalId.text.trim().isNotEmpty ? nationalId.text.trim() : (AppState().getUserName ?? "");
String effectiveDob = getFormattedBirthDate().isNotEmpty ? getFormattedBirthDate() : (AppState().dependentDob ?? "");
AppState().postParamsObject?.setTokenID = effectiveToken;
AppState().setAuthenticationTokenID = effectiveToken;
AppState().postParamsObject?.setLogInTokenID = (checkOtpResponse?.logInTokenID != null && checkOtpResponse!.logInTokenID!.isNotEmpty) ? checkOtpResponse.logInTokenID! : logInTokenID;
AppState().postParamsObject?.setUserName = nationalId.text.trim();
AppState().postParamsObject?.setPUserName = nationalId.text.trim();
AppState().postParamsObject?.setUserName = effectiveNationalId;
AppState().postParamsObject?.setPUserName = effectiveNationalId;
String resolvedMobile = mobileNumber.isNotEmpty ? mobileNumber : (checkOtpResponse?.getWalaplusDepInfoModel?.pEmpMobileNumber ?? "");
if (resolvedMobile.isNotEmpty) {
@ -746,7 +937,7 @@ class _LoginScreenState extends State<LoginScreen> {
AppState().postParamsObject?.channel = 31;
AppState().postParamsObject?.versionID = 20;
AppState().setUserName = nationalId.text.trim();
AppState().setUserName = effectiveNationalId;
AppState().isAuthenticated = true;
AppState().setLogged = true;
@ -760,10 +951,11 @@ class _LoginScreenState extends State<LoginScreen> {
}
AppState().setDependentLoginType = loginType;
AppState().setDependentDob = getFormattedBirthDate();
AppState().setDependentDob = effectiveDob;
Utils.saveStringFromPrefs("P_DEP_NATIONAL_ID", nationalId.text.trim());
Utils.saveStringFromPrefs("P_DEP_BIRTH_DATE", getFormattedBirthDate());
Utils.saveStringFromPrefs("P_DEP_IS_LOGGED_IN", "true");
Utils.saveStringFromPrefs("P_DEP_NATIONAL_ID", effectiveNationalId);
Utils.saveStringFromPrefs("P_DEP_BIRTH_DATE", effectiveDob);
Utils.saveStringFromPrefs("P_DEP_LOGIN_TOKEN_ID", AppState().postParamsObject?.logInTokenID ?? logInTokenID);
Utils.saveStringFromPrefs("P_DEP_TOKEN_ID", effectiveToken);
if (checkOtpResponse?.authenticationTokenID != null && checkOtpResponse!.authenticationTokenID!.trim().isNotEmpty) {
@ -773,7 +965,7 @@ class _LoginScreenState extends State<LoginScreen> {
Utils.saveStringFromPrefs("P_DEP_LOGIN_TYPE", loginType.toString());
if (navigateToDashboard && ApiConsts.ISDependetLogin) {
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboardScreenForDependet, (route) => false);
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.dashboardScreenForDependet, (Route<dynamic> route) => false);
}
}

@ -60,10 +60,9 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
@override
Widget build(BuildContext context) {
if (ModalRoute.of(context)!.settings.arguments != null) {
mobileLoginInfoListModel ??= ModalRoute.of(context)!.settings.arguments as GetMobileLoginInfoListModel;
// String empName = AppState().isArabic(context) ? AppState().memberInformationList!.eMPLOYEEDISPLAYNAMEAr! : AppState().memberInformationList!.eMPLOYEEDISPLAYNAMEEn!;
String empName = mobileLoginInfoListModel!.employeeName!;
Object? args = ModalRoute.of(context)?.settings.arguments;
if (args is GetMobileLoginInfoListModel) {
mobileLoginInfoListModel ??= args;
}
return Scaffold(
@ -124,7 +123,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
LocaleKeys.lastLoginDetails.tr().toText16(),
DateUtil.formatDateToDate(DateUtil.convertStringToDate(mobileLoginInfoListModel!.editedOn ?? DateTime.now().toString()), false).toText12(),
mobileLoginInfoListModel != null ? DateUtil.formatDateToDate(DateUtil.convertStringToDate(mobileLoginInfoListModel?.editedOn ?? DateTime.now().toString()), false).toText12() : const SizedBox(),
],
),
Row(
@ -132,9 +131,9 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
LocaleKeys.verificationType.tr().toText10(color: MyColors.grey57Color),
getVerificationType(mobileLoginInfoListModel!.loginType!).toText12(),
getVerificationType(mobileLoginInfoListModel?.loginType).toText12(),
const Expanded(child: SizedBox()),
DateUtil.formatDateToTime(DateUtil.convertStringToDate(mobileLoginInfoListModel!.editedOn!)).toText12(),
DateUtil.formatDateToTime(DateUtil.convertStringToDate(mobileLoginInfoListModel?.editedOn ?? DateTime.now().toString())).toText12(),
],
),
],
@ -206,7 +205,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
if (mounted) setState(() {});
}
String getVerificationType(int type) {
String getVerificationType(int? type) {
if (type == 1) {
return LocaleKeys.sms.tr();
} else if (type == 2) {
@ -278,7 +277,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
if (!authenticateWithFaceAndTouchID) {
return;
} else {
if (mobileLoginInfoListModel!.loginType == 3 || mobileLoginInfoListModel!.loginType == 4) {
if (mobileLoginInfoListModel?.loginType == 3 || mobileLoginInfoListModel?.loginType == 4) {
// bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics();
// if (!authenticateWithFaceAndTouchID) {
// return;
@ -396,7 +395,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
_flag,
AppState().memberLoginList?.pMOBILENUMBER ?? "",
AppState().getUserName!,
AppState().getIsHuawei ? AppState().getHuaweiPushToken : mobileLoginInfoListModel!.deviceToken!,
AppState().getIsHuawei ? AppState().getHuaweiPushToken : (mobileLoginInfoListModel?.deviceToken ?? AppState().getDeviceToken ?? ""),
Platform.isAndroid ? "android" : "ios",
memberType: MemberType.employee.value,
);

Loading…
Cancel
Save