@ -7,6 +7,7 @@ import 'package:local_auth/local_auth.dart';
import ' package:mohem_flutter_app/api/login_api_client.dart ' ;
import ' package:mohem_flutter_app/app_state/app_state.dart ' ;
import ' package:mohem_flutter_app/classes/colors.dart ' ;
import ' package:mohem_flutter_app/classes/date_uitl.dart ' ;
import ' package:mohem_flutter_app/classes/utils.dart ' ;
import ' package:mohem_flutter_app/config/routes.dart ' ;
import ' package:mohem_flutter_app/dialogs/otp_dialog.dart ' ;
@ -16,6 +17,7 @@ import 'package:mohem_flutter_app/extensions/widget_extensions.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/generic_response_model.dart ' ;
import ' package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart ' ;
import ' package:mohem_flutter_app/widgets/button/default_button.dart ' ;
class VerifyLastLoginScreen extends StatefulWidget {
@ -30,6 +32,7 @@ class VerifyLastLoginScreen extends StatefulWidget {
class _VerifyLastLoginScreenState extends State < VerifyLastLoginScreen > {
final LocalAuthentication auth = LocalAuthentication ( ) ;
List < BiometricType > _availableBioMetricType = [ ] ;
GetMobileLoginInfoListModel ? mobileLoginInfoListModel ;
@ override
void initState ( ) {
@ -40,6 +43,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
@ override
Widget build ( BuildContext context ) {
mobileLoginInfoListModel ? ? = ModalRoute . of ( context ) ! . settings . arguments as GetMobileLoginInfoListModel ;
String empName = AppState ( ) . isArabic ( context ) ? AppState ( ) . memberInformationList ! . eMPLOYEEDISPLAYNAMEAr ! : AppState ( ) . memberInformationList ! . eMPLOYEEDISPLAYNAMEEn ! ;
return Scaffold (
appBar: AppBar (
@ -64,7 +68,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
LocaleKeys . welcomeBack . tr ( ) . toText12 ( ) ,
empName. toText24 ( isBold: true ) ,
mobileLoginInfoListModel! . employee Name! . toText24 ( isBold: true ) ,
10. height ,
LocaleKeys . wouldYouLikeToLoginWithCurrentUsername . tr ( ) . toText16 ( ) ,
Container (
@ -88,14 +92,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
crossAxisAlignment: CrossAxisAlignment . center ,
children: [
LocaleKeys . lastLoginDetails . tr ( ) . toText16 ( ) ,
/ / Text (
/ / user . editedOn ! = null
/ / ? DateUtil . getDayMonthYearDateFormatted ( DateUtil . convertStringToDate ( user . editedOn ) )
/ / : user . createdOn ! = null
/ / ? DateUtil . getDayMonthYearDateFormatted ( DateUtil . convertStringToDate ( user . createdOn ) )
/ / : ' -- ' ,
/ / style: TextStyle ( fontSize: 12 , fontWeight: FontWeight . w600 , color: Color ( 0xff2B353E ) , letterSpacing: - 0.48 ) ,
/ / ) ,
DateUtil . formatDateToDate ( DateUtil . convertStringToDate ( mobileLoginInfoListModel ! . editedOn ! ) , false ) . toText12 ( ) ,
] ,
) ,
Row (
@ -103,24 +100,9 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
crossAxisAlignment: CrossAxisAlignment . center ,
children: [
LocaleKeys . verificationType . tr ( ) . toText10 ( color: MyColors . grey57Color ) ,
Text (
" SMS " ,
/ / " " + getType ( user . logInType , context ) ,
style: TextStyle (
fontSize: 12 ,
fontWeight: FontWeight . w600 ,
color: Color ( 0xff2B353E ) ,
) ,
) ,
getVerificationType ( mobileLoginInfoListModel ! . loginType ! ) . toText12 ( ) ,
Expanded ( child: SizedBox ( ) ) ,
/ / Text (
/ / user . editedOn ! = null
/ / ? DateUtil . formatDateToTimeLang ( DateUtil . convertStringToDate ( user . editedOn ) , false )
/ / : user . createdOn ! = null
/ / ? DateUtil . formatDateToTimeLang ( DateUtil . convertStringToDate ( user . createdOn ) , false )
/ / : ' -- ' ,
/ / style: TextStyle ( fontSize: 12 , fontWeight: FontWeight . w600 , color: Color ( 0xff575757 ) , letterSpacing: - 0.48 ) ,
/ / ) ,
DateUtil . formatDateToTime ( DateUtil . convertStringToDate ( mobileLoginInfoListModel ! . editedOn ! ) ) . toText12 ( ) ,
] ,
)
] ,
@ -201,419 +183,18 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
if ( mounted ) setState ( ( ) { } ) ;
}
/ / authenticateUser ( int type , { int isActive } ) {
/ / GifLoaderDialogUtils . showMyDialog ( context ) ;
/ / if ( type = = 2 | | type = = 3 ) {
/ / fingrePrintBefore = type ;
/ / }
/ / this . selectedOption = fingrePrintBefore ! = null ? fingrePrintBefore : type ;
/ /
/ / switch ( type ) {
/ / case 1 :
/ / this . loginWithSMS ( type ) ;
/ / break ;
/ / case 2 :
/ / this . loginWithFingurePrintFace ( type , isActive ) ;
/ / break ;
/ / case 3 :
/ / this . loginWithFingurePrintFace ( type , isActive ) ;
/ / break ;
/ / case 4 :
/ / this . loginWithSMS ( type ) ;
/ / break ;
/ / default :
/ / break ;
/ / }
/ / sharedPref . setInt ( LAST_LOGIN , this . selectedOption ) ; / / this . cs . sharedService . setStorage ( this . selectedOption , AuthenticationService . LAST_LOGIN ) ;
/ / }
/ /
/ / loginWithSMS ( type ) {
/ / / / if ( ! el . disabled ) {
/ / if ( this . user ! = null & & this . registerd_data = = null ) {
/ / this . checkUserAuthentication ( type ) ;
/ / } else {
/ / if ( this . loginTokenID ! = null ) {
/ / / / Future . delayed ( Duration ( seconds: 1 ) , ( ) {
/ / this . sendActivationCode ( type ) ;
/ / / / } ) ;
/ / } else {
/ / this . checkUserAuthentication ( type ) ;
/ / }
/ / }
/ / }
/ /
/ / checkUserAuthentication ( type ) {
/ / showLoader ( true ) ;
/ / var req = getCommonRequest ( type: type ) ;
/ / req . logInTokenID = " " ;
/ /
/ / var request = CheckPatientAuthenticationReq . fromJson ( req . toJson ( ) ) ;
/ /
/ / sharedPref . setObject ( REGISTER_DATA_FOR_REGISTER , request ) ;
/ / authService
/ / . checkPatientAuthentication ( request )
/ / . then ( ( value ) = > {
/ / GifLoaderDialogUtils . hideDialog ( context ) ,
/ / if ( value [ ' isSMSSent ' ] )
/ / {
/ / sharedPref . setString ( LOGIN_TOKEN_ID , value [ ' LogInTokenID ' ] ) ,
/ / this . loginTokenID = value [ ' LogInTokenID ' ] ,
/ / sharedPref . setObject ( REGISTER_DATA_FOR_LOGIIN , request ) ,
/ / / / Future . delayed ( Duration ( seconds: 1 ) , ( ) {
/ / this . sendActivationCode ( type )
/ / / / } )
/ / }
/ / else
/ / {
/ / if ( value [ ' IsAuthenticated ' ] ) { this . checkActivationCode ( ) }
/ / }
/ / } )
/ / . catchError ( ( err ) {
/ / print ( err ) ;
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / } ) ;
/ / }
/ /
/ / sendActivationCode ( type ) async {
/ / var request = this . getCommonRequest ( type: type ) ;
/ / request . sMSSignature = await SMSOTP . getSignature ( ) ;
/ / GifLoaderDialogUtils . showMyDialog ( context ) ;
/ / if ( healthId ! = null ) {
/ / / / final DateFormat dateFormat = DateFormat ( ' MM/dd/yyyy ' ) ;
/ / / / final DateFormat dateFormat2 = DateFormat ( ' dd/MM/yyyy ' ) ;
/ / request . dob = dob ; / / isHijri = = 1 ? dob : dateFormat2 . format ( dateFormat . parse ( dob ) ) ;
/ / request . healthId = healthId ;
/ / request . isHijri = isHijri ;
/ / await this . authService . sendActivationCodeRegister ( request ) . then ( ( result ) {
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / if ( result ! = null & & result [ ' isSMSSent ' ] = = true ) {
/ / this . startSMSService ( type ) ;
/ / }
/ / } ) . catchError ( ( r ) {
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / } ) ;
/ / } else {
/ / request . dob = " " ;
/ / request . healthId = " " ;
/ / request . isHijri = 0 ;
/ / await this . authService . sendActivationCode ( request ) . then ( ( result ) {
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / if ( result ! = null & & result [ ' isSMSSent ' ] = = true ) {
/ / this . startSMSService ( type ) ;
/ / }
/ / } ) . catchError ( ( r ) {
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / } ) ;
/ / }
/ / }
/ /
/ / var tempType ;
/ /
/ / startSMSService ( type ) {
/ / tempType = type ;
/ / new SMSOTP (
/ / context ,
/ / type ,
/ / this . mobileNumber ,
/ / ( value ) {
/ / this . checkActivationCode ( value: value ) ;
/ / } ,
/ / ( ) = > {
/ / Navigator . pop ( context ) ,
/ / } ,
/ / ) . displayDialog ( context ) ;
/ / }
/ /
/ / loginWithFingurePrintFace ( type , int isActive ) async {
/ / if ( isActive = = 1 | | isActive = = 0 ) {
/ / const iosStrings =
/ / const IOSAuthMessages ( cancelButton: ' cancel ' , goToSettingsButton: ' settings ' , goToSettingsDescription: ' Please set up your Touch ID. ' , lockOut: ' Please reenable your Touch ID ' ) ;
/ /
/ / try {
/ / authenticated = await auth . authenticateWithBiometrics ( localizedReason: ' Scan your fingerprint to authenticate ' , useErrorDialogs: true , stickyAuth: true , iOSAuthStrings: iosStrings ) ;
/ / } on PlatformException catch ( e ) {
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / AppToast . showErrorToast ( message: ' Please enable your Touch or Face ID ' ) ;
/ / }
/ /
/ / if ( authenticated = = true ) {
/ / / / if ( user ! = null & & ( user . logInType = = 2 | | user . logInType = = 3 ) ) {
/ / / / this . checkActivationCode ( ) ;
/ / / / } else {
/ /
/ / var request = this . getCommonRequest ( type: type ) ;
/ / this . getMobileInfo ( request ) ;
/ / / / }
/ / }
/ / }
/ / }
/ /
/ / getMobileInfo ( request ) {
/ / / / GifLoaderDialogUtils . showMyDialog ( context ) ;
/ / this . authService . getLoginInfo ( request ) . then ( ( result ) {
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / if ( result [ ' SMSLoginRequired ' ] = = false ) {
/ / this . loginTokenID = result [ ' LogInTokenID ' ] ;
/ / this . patientOutSA = result [ ' PatientOutSA ' ] ;
/ / / / sms for register the biometric
/ / if ( result [ ' isSMSSent ' ] ) {
/ / setState ( ( ) {
/ / isMoreOption = true ;
/ / this . onlySMSBox = true ;
/ / / / this . fingrePrintBefore = true ;
/ / } ) ;
/ / / / this . button ( ) ;
/ / } else {
/ / setDefault ( ) ;
/ / checkActivationCode ( ) ;
/ / }
/ / } else {
/ / if ( result [ ' IsAuthenticated ' ] = = true ) {
/ / setState ( ( ) {
/ / isMoreOption = true ;
/ / this . onlySMSBox = true ;
/ / / / this . fingrePrintBefore = true ;
/ / } ) ;
/ / }
/ / }
/ / } ) . catchError ( ( err ) {
/ / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / print ( err ) ;
/ / } ) ;
/ / }
/ /
/ / setDefault ( ) async {
/ / if ( await sharedPref . getObject ( IMEI_USER_DATA ) ! = null ) user = SelectDeviceIMEIRES . fromJson ( await sharedPref . getObject ( IMEI_USER_DATA ) ) ;
/ /
/ / if ( await sharedPref . getObject ( REGISTER_DATA_FOR_LOGIIN ) ! = null ) {
/ / isMoreOption = true ;
/ / this . registerd_data = CheckPatientAuthenticationReq . fromJson ( await sharedPref . getObject ( REGISTER_DATA_FOR_LOGIIN ) ) ;
/ / }
/ /
/ / this . mobileNumber = this . registerd_data ! = null ? this . registerd_data . patientMobileNumber : int . parse ( this . user . mobile ) ;
/ / this . zipCode = this . registerd_data ! = null
/ / ? this . registerd_data . zipCode
/ / : this . user . outSA = = true
/ / ? " 971 "
/ / : " 966 " ;
/ / this . patientOutSA = this . registerd_data ! = null
/ / ? this . registerd_data . zipCode = = " 966 "
/ / ? 0
/ / : 1
/ / : this . user . outSA ;
/ / if ( this . registerd_data ! = null ) {
/ / this . loginTokenID = await sharedPref . getString ( LOGIN_TOKEN_ID ) ;
/ / this . loginType = this . registerd_data . searchType ;
/ / }
/ / var nhic = await sharedPref . getObject ( NHIC_DATA ) ;
/ / if ( nhic ! = null ) {
/ / final DateFormat dateFormat = DateFormat ( ' MM/dd/yyyy ' ) ;
/ / final DateFormat dateFormat2 = DateFormat ( ' dd/MM/yyyy ' ) ;
/ / dob = nhic [ ' IsHijri ' ] ? nhic [ ' DateOfBirth ' ] : dateFormat2 . format ( dateFormat . parse ( nhic [ ' DateOfBirth ' ] ) ) ;
/ /
/ / isHijri = nhic [ ' IsHijri ' ] ? 1 : 0 ;
/ / healthId = nhic [ ' HealthId ' ] ;
/ / }
/ / this . deviceToken = await sharedPref . getString ( PUSH_TOKEN ) ;
/ / this . lastLogin = await sharedPref . getInt ( LAST_LOGIN ) ! = null
/ / ? await sharedPref . getInt ( LAST_LOGIN )
/ / : user ! = null
/ / ? user . logInType
/ / : null ;
/ /
/ / / / this . cs . sharedService . getStorage ( AuthenticationService . LAST_LOGIN ) ;
/ / }
/ /
/ / getCommonRequest ( { type } ) {
/ / var request = SendActivationRequest ( ) ;
/ / request . patientMobileNumber = this . mobileNumber ;
/ / request . mobileNo = ' 0 ' + this . mobileNumber . toString ( ) ;
/ / request . deviceToken = this . deviceToken ;
/ / request . projectOutSA = this . patientOutSA = = true ? true : false ;
/ / request . loginType = this . selectedOption ;
/ / request . oTPSendType = type = = 1 ? type : 2 ; / / this . selectedOption = = 1 ? 1 : 2 ;
/ / request . zipCode = this . zipCode ;
/ /
/ / request . logInTokenID = this . loginTokenID ? ? " " ;
/ /
/ / if ( this . registerd_data ! = null ) {
/ / request . searchType = this . registerd_data . searchType ! = null ? this . registerd_data . searchType : 1 ;
/ / request . patientID = this . registerd_data . patientID ! = null ? this . registerd_data . patientID : 0 ;
/ / request . patientIdentificationID = request . nationalID = this . registerd_data . patientIdentificationID ! = null ? this . registerd_data . patientIdentificationID : ' 0 ' ;
/ /
/ / request . isRegister = this . registerd_data . isRegister ;
/ / } else {
/ / request . searchType = request . searchType ! = null ? request . searchType : 2 ;
/ / request . patientID = this . user . patientID ! = null ? this . user . patientID : 0 ;
/ / request . nationalID = request . nationalID ! = null ? request . nationalID : ' 0 ' ;
/ / request . patientIdentificationID = request . patientIdentificationID ! = null ? request . patientIdentificationID : ' 0 ' ;
/ / request . isRegister = false ;
/ / }
/ / request . deviceTypeID = request . searchType ;
/ / return request ;
/ / }
/ /
/ / / / checkActivationCode ( { value } ) async {
/ / / / / / Navigator . pop ( context ) ;
/ / / / GifLoaderDialogUtils . showMyDialog ( context ) ;
/ / / / var request = this . getCommonRequest ( ) . toJson ( ) ;
/ / / / dynamic res ;
/ / / / if ( healthId ! = null ) {
/ / / / request [ ' DOB ' ] = dob ;
/ / / / request [ ' HealthId ' ] = healthId ;
/ / / / request [ ' IsHijri ' ] = isHijri ;
/ / / /
/ / / / authService
/ / / / . checkActivationCodeRegister ( request , value )
/ / / / . then ( ( result ) = > {
/ / / / res = result ,
/ / / / if ( result is Map )
/ / / / {
/ / / / result = CheckActivationCode . fromJson ( result ) ,
/ / / / if ( this . registerd_data ! = null & & this . registerd_data . isRegister = = true )
/ / / / {
/ / / / widget . changePageViewIndex ( 1 ) ,
/ / / / Navigator . popUntil ( context , ( route ) = > Utils . route ( route , equalsTo: RegisterNew ) ) ,
/ / / / }
/ / / / }
/ / / / else
/ / / / {
/ / / / / / Navigator . of ( context ) . pop ( ) ,
/ / / / GifLoaderDialogUtils . hideDialog ( context ) ,
/ / / / Future . delayed ( Duration ( seconds: 1 ) , ( ) {
/ / / / AppToast . showErrorToast ( message: result ) ;
/ / / / } ) ,
/ / / / }
/ / / / } )
/ / / / . catchError ( ( err ) {
/ / / / print ( err ) ;
/ / / / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / / / Future . delayed ( Duration ( seconds: 1 ) , ( ) {
/ / / / AppToast . showErrorToast ( message: err ) ;
/ / / / startSMSService ( tempType ) ;
/ / / / } ) ;
/ / / / } ) ;
/ / / / } else {
/ / / / authService
/ / / / . checkActivationCode ( request , value )
/ / / / . then ( ( result ) = > {
/ / / / res = result ,
/ / / / if ( result is Map )
/ / / / {
/ / / / result = CheckActivationCode . fromJson ( result ) ,
/ / / / if ( this . registerd_data ! = null & & this . registerd_data . isRegister = = true )
/ / / / {
/ / / / widget . changePageViewIndex ( 1 ) ,
/ / / / Navigator . popUntil ( context , ( route ) = > Utils . route ( route , equalsTo: RegisterNew ) ) ,
/ / / / }
/ / / / else
/ / / / {
/ / / / sharedPref . remove ( FAMILY_FILE ) ,
/ / / / result . list . isFamily = false ,
/ / / / userData = result . list ,
/ / / / sharedPref . setString ( BLOOD_TYPE , result . patientBloodType ) ,
/ / / / authenticatedUserObject . user = result . list ,
/ / / / projectViewModel . setPrivilege ( privilegeList: res ) ,
/ / / / sharedPref . setObject ( MAIN_USER , result . list ) ,
/ / / / sharedPref . setObject ( USER_PROFILE , result . list ) ,
/ / / / loginTokenID = result . logInTokenID ,
/ / / / sharedPref . setObject ( LOGIN_TOKEN_ID , result . logInTokenID ) ,
/ / / / sharedPref . setString ( TOKEN , result . authenticationTokenID ) ,
/ / / / checkIfUserAgreedBefore ( result ) ,
/ / / / }
/ / / / }
/ / / / else
/ / / / {
/ / / / / / / / Navigator . of ( context ) . pop ( ) ,
/ / / / / / GifLoaderDialogUtils . hideDialog ( context ) ,
/ / / / / / Future . delayed ( Duration ( seconds: 1 ) , ( ) {
/ / / / / / AppToast . showErrorToast ( message: result ) ;
/ / / / / / startSMSService ( tempType ) ;
/ / / / / / } ) ,
/ / / / }
/ / / / } )
/ / / / . catchError ( ( err ) {
/ / / / / / print ( err ) ;
/ / / / / / GifLoaderDialogUtils . hideDialog ( context ) ;
/ / / / / / Future . delayed ( Duration ( seconds: 1 ) , ( ) {
/ / / / / / AppToast . showErrorToast ( message: err ) ;
/ / / / / / startSMSService ( tempType ) ;
/ / / / / / } ) ;
/ / / / } ) ;
/ / / / }
/ / / / }
/ /
/ / / / checkIfUserAgreedBefore ( CheckActivationCode result ) {
/ / / / if ( result . isNeedUserAgreement = = true ) {
/ / / / / / move to agreement page .
/ / / / } else {
/ / / / goToHome ( ) ;
/ / / / }
/ / / / }
/ /
/ / insertIMEI ( ) {
/ / authService . insertDeviceImei ( selectedOption ) . then ( ( value ) = > { } ) . catchError ( ( err ) {
/ / print ( err ) ;
/ / } ) ;
/ / }
/ /
/ / / / getToDoCount ( ) {
/ / / / toDoProvider . setState ( 0 , true , " 0 " ) ;
/ / / / ClinicListService service = new ClinicListService ( ) ;
/ / / / service . getActiveAppointmentNo ( context ) . then ( ( res ) {
/ / / / if ( res [ ' MessageStatus ' ] = = 1 ) {
/ / / / toDoProvider . setState ( res [ ' AppointmentActiveNumber ' ] , true , " 0 " ) ;
/ / / / } else { }
/ / / / } ) . catchError ( ( err ) {
/ / / / print ( err ) ;
/ / / / } ) ;
/ / / / }
/ /
/ / / / goToHome ( ) async {
/ / / / authenticatedUserObject . isLogin = true ;
/ / / / appointmentRateViewModel . isLogin = true ;
/ / / / projectViewModel . isLogin = true ;
/ / / / projectViewModel . user = authenticatedUserObject . user ;
/ / / / await authenticatedUserObject . getUser ( getUser: true ) ;
/ / / /
/ / / / / / getToDoCount ( ) ;
/ / / /
/ / / / appointmentRateViewModel
/ / / / . getIsLastAppointmentRatedList ( )
/ / / / . then ( ( value ) = > {
/ / / / getToDoCount ( ) ,
/ / / / GifLoaderDialogUtils . hideDialog ( AppGlobal . context ) ,
/ / / / if ( appointmentRateViewModel . isHaveAppointmentNotRate )
/ / / / {
/ / / / Navigator . pushAndRemoveUntil (
/ / / / context ,
/ / / / FadePage (
/ / / / page: RateAppointmentDoctor ( ) ,
/ / / / ) ,
/ / / / ( r ) = > false )
/ / / / }
/ / / / else
/ / / / {
/ / / / Navigator . pushAndRemoveUntil (
/ / / / context ,
/ / / / FadePage (
/ / / / page: LandingPage ( ) ,
/ / / / ) ,
/ / / / ( r ) = > false )
/ / / / } ,
/ / / / insertIMEI ( )
/ / / / } )
/ / / / . catchError ( ( err ) {
/ / / / print ( err ) ;
/ / / / } ) ;
/ / / / }
/ /
/ / loading ( flag ) {
/ / / / setState ( ( ) {
/ / / / isLoading = flag ;
/ / / / } ) ;
/ / }
/ /
String getVerificationType ( int type ) {
if ( type = = 1 ) {
LocaleKeys . sms . tr ( ) ;
} else if ( type = = 2 ) {
return LocaleKeys . fingerPrint . tr ( ) ;
} else if ( type = = 3 ) {
return LocaleKeys . face . tr ( ) ;
} else if ( type = = 4 ) {
return LocaleKeys . whatsapp . tr ( ) ;
}
return " " ;
}
Future < bool > loginWithFaceIDAndBiometrics ( ) async {
IOSAuthMessages iosStrings =
@ -654,8 +235,8 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
}
await LoginApiClient ( ) . checkMobileAppVersion ( ) ;
await LoginApiClient ( ) . memberLogin ( AppState ( ) . getUserName ! , AppState ( ) . password ! ) ;
BasicMemberInformationModel ? memberInformationModel = await LoginApiClient ( )
. mohemmSendActivationCodeByOTPNotificationType ( checkBiometricIsAvailable ( BiometricType . fingerprint ) ? 1 : 0 , AppState ( ) . memberLoginList ? . pMOBILENUMBER , _flag , AppState ( ) . getUserName ) ;
BasicMemberInformationModel ? memberInformationModel = await LoginApiClient ( ) . mohemmSendActivationCodeByOTPNotificationType (
checkBiometricIsAvailable ( BiometricType . fingerprint ) ? 1 : 0 , AppState ( ) . memberLoginList ? . pMOBILENUMBER , _flag , AppState ( ) . getUserName ) ;
Utils . hideLoading ( context ) ;
OtpDialog (
context ,