|  |  |  | @ -80,7 +80,7 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |   String errorMsg = ''; | 
		
	
		
			
				|  |  |  |  |   final FocusNode myFocusNode = FocusNode(); | 
		
	
		
			
				|  |  |  |  |   var healthId; | 
		
	
		
			
				|  |  |  |  |   int getDeviceLastLogin =1; | 
		
	
		
			
				|  |  |  |  |   int getDeviceLastLogin = 1; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<void> onLoginPressed() async { | 
		
	
		
			
				|  |  |  |  |     try { | 
		
	
	
		
			
				
					|  |  |  | @ -292,12 +292,11 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |         } else if (apiResponse.messageStatus == 1) { | 
		
	
		
			
				|  |  |  |  |           if (apiResponse.data['isSMSSent']) { | 
		
	
		
			
				|  |  |  |  |             _appState.setAppAuthToken = apiResponse.data['LogInTokenID']; | 
		
	
		
			
				|  |  |  |  |           await  sendActivationCode( | 
		
	
		
			
				|  |  |  |  |             await sendActivationCode( | 
		
	
		
			
				|  |  |  |  |               otpTypeEnum: otpTypeEnum, | 
		
	
		
			
				|  |  |  |  |               phoneNumber: phoneNumberController.text, | 
		
	
		
			
				|  |  |  |  |               nationalIdOrFileNumber: nationalIdController.text, | 
		
	
		
			
				|  |  |  |  |             ); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |           } else { | 
		
	
		
			
				|  |  |  |  |             if (apiResponse.data['IsAuthenticated']) { | 
		
	
		
			
				|  |  |  |  |               await checkActivationCode( | 
		
	
	
		
			
				
					|  |  |  | @ -305,7 +304,6 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |                 onWrongActivationCode: (String? message) {}, | 
		
	
		
			
				|  |  |  |  |                 activationCode: null, //todo silent login case halded on the repo itself.. | 
		
	
		
			
				|  |  |  |  |               ); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
	
		
			
				
					|  |  |  | @ -392,7 +390,7 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |             countryCode: selectedCountrySignup.countryCode, | 
		
	
		
			
				|  |  |  |  |             loginType: loginTypeEnum.toInt) | 
		
	
		
			
				|  |  |  |  |         .toJson(); | 
		
	
		
			
				|  |  |  |  |       LoaderBottomSheet.showLoader(); | 
		
	
		
			
				|  |  |  |  |     LoaderBottomSheet.showLoader(); | 
		
	
		
			
				|  |  |  |  |     bool isForRegister = (_appState.getUserRegistrationPayload.healthId != null || _appState.getUserRegistrationPayload.patientOutSa == true); | 
		
	
		
			
				|  |  |  |  |     if (isForRegister) { | 
		
	
		
			
				|  |  |  |  |       if (_appState.getUserRegistrationPayload.patientOutSa == true) request['DOB'] = _appState.getUserRegistrationPayload.dob; | 
		
	
	
		
			
				
					|  |  |  | @ -423,7 +421,6 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |       resultEither.fold((failure) async => await _errorHandlerService.handleError(failure: failure), (apiResponse) async { | 
		
	
		
			
				|  |  |  |  |         final activation = CheckActivationCode.fromJson(apiResponse.data as Map<String, dynamic>); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (activation.errorCode == '699') { | 
		
	
		
			
				|  |  |  |  |           // Todo: Hide Loader | 
		
	
		
			
				|  |  |  |  |           // GifLoaderDialogUtils.hideDialog(context); | 
		
	
	
		
			
				
					|  |  |  | @ -441,7 +438,6 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |           // Navigator.popUntil(context, (route) => Utils.route(route, equalsTo: RegisterNew)); | 
		
	
		
			
				|  |  |  |  |           return; | 
		
	
		
			
				|  |  |  |  |         } else { | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |           if (activation.list != null && activation.list!.isNotEmpty) { | 
		
	
		
			
				|  |  |  |  |             _appState.setAuthenticatedUser(activation.list!.first); | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
	
		
			
				
					|  |  |  | @ -451,7 +447,9 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |           bool isUserAgreedBefore = await checkIfUserAgreedBefore(request: request); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |           //updating the last login type in app state to show the fingerprint/face id option on home screen | 
		
	
		
			
				|  |  |  |  |           _appState.getSelectDeviceByImeiRespModelElement!.logInType = loginTypeEnum.toInt; | 
		
	
		
			
				|  |  |  |  |           if (_appState.getSelectDeviceByImeiRespModelElement != null) { | 
		
	
		
			
				|  |  |  |  |             _appState.getSelectDeviceByImeiRespModelElement!.logInType = loginTypeEnum.toInt; | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |           LoaderBottomSheet.hideLoader(); | 
		
	
		
			
				|  |  |  |  |           insertPatientIMEIData(loginTypeEnum.toInt); | 
		
	
	
		
			
				
					|  |  |  | @ -548,12 +546,12 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |         loginTypeEnum = (_appState.deviceTypeID == 1 ? LoginTypeEnum.face : LoginTypeEnum.fingerprint); | 
		
	
		
			
				|  |  |  |  |         if (!_appState.isAuthenticated) { | 
		
	
		
			
				|  |  |  |  |           //commenting this api to check either the same flow working or not because this api does not needed further if work fine we will remove this | 
		
	
		
			
				|  |  |  |  |         //  await getPatientDeviceData(loginTypeEnum.toInt); | 
		
	
		
			
				|  |  |  |  |           //  await getPatientDeviceData(loginTypeEnum.toInt); | 
		
	
		
			
				|  |  |  |  |           await checkActivationCode(otpTypeEnum: OTPTypeEnum.faceIDFingerprint, activationCode: null, onWrongActivationCode: (String? message) {}); | 
		
	
		
			
				|  |  |  |  |          await insertPatientIMEIData(loginTypeEnum.toInt); | 
		
	
		
			
				|  |  |  |  |           await insertPatientIMEIData(loginTypeEnum.toInt); | 
		
	
		
			
				|  |  |  |  |         } else { | 
		
	
		
			
				|  |  |  |  |           // authenticated = true; | 
		
	
		
			
				|  |  |  |  |          await insertPatientIMEIData(loginTypeEnum.toInt); | 
		
	
		
			
				|  |  |  |  |           await insertPatientIMEIData(loginTypeEnum.toInt); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         LoaderBottomSheet.hideLoader(); | 
		
	
		
			
				|  |  |  |  |         notifyListeners(); | 
		
	
	
		
			
				
					|  |  |  | @ -784,33 +782,30 @@ class AuthenticationViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |         log("Insert IMEI Failed"); | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |     }); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<void> getPatientDeviceData(int loginType) async { | 
		
	
		
			
				|  |  |  |  |     final resultEither = await _authenticationRepo.getPatientDeviceData( | 
		
	
		
			
				|  |  |  |  |         patientDeviceDataRequest: GetUserMobileDeviceData( | 
		
	
		
			
				|  |  |  |  |             deviceToken: _appState.deviceToken, | 
		
	
		
			
				|  |  |  |  |             deviceTypeId: _appState.getDeviceTypeID(), | 
		
	
		
			
				|  |  |  |  |             patientId: _appState.getSelectDeviceByImeiRespModelElement!.patientId!, | 
		
	
		
			
				|  |  |  |  |             patientType: _appState.getSelectDeviceByImeiRespModelElement!.patientType, | 
		
	
		
			
				|  |  |  |  |             patientOutSa:_appState.getSelectDeviceByImeiRespModelElement!.outSa == true ?1 :0, | 
		
	
		
			
				|  |  |  |  |             loginType: loginType, | 
		
	
		
			
				|  |  |  |  |             languageId: _appState.getLanguageID(), | 
		
	
		
			
				|  |  |  |  |             latitude: _appState.userLat, | 
		
	
		
			
				|  |  |  |  |             longitude: _appState.userLong, | 
		
	
		
			
				|  |  |  |  |             mobileNo:_appState.getSelectDeviceByImeiRespModelElement!.mobile! , | 
		
	
		
			
				|  |  |  |  |             patientMobileNumber:int.parse(_appState.getSelectDeviceByImeiRespModelElement!.mobile!), | 
		
	
		
			
				|  |  |  |  |             nationalId:_appState.getSelectDeviceByImeiRespModelElement!.identificationNo) | 
		
	
		
			
				|  |  |  |  |                 deviceToken: _appState.deviceToken, | 
		
	
		
			
				|  |  |  |  |                 deviceTypeId: _appState.getDeviceTypeID(), | 
		
	
		
			
				|  |  |  |  |                 patientId: _appState.getSelectDeviceByImeiRespModelElement!.patientId!, | 
		
	
		
			
				|  |  |  |  |                 patientType: _appState.getSelectDeviceByImeiRespModelElement!.patientType, | 
		
	
		
			
				|  |  |  |  |                 patientOutSa: _appState.getSelectDeviceByImeiRespModelElement!.outSa == true ? 1 : 0, | 
		
	
		
			
				|  |  |  |  |                 loginType: loginType, | 
		
	
		
			
				|  |  |  |  |                 languageId: _appState.getLanguageID(), | 
		
	
		
			
				|  |  |  |  |                 latitude: _appState.userLat, | 
		
	
		
			
				|  |  |  |  |                 longitude: _appState.userLong, | 
		
	
		
			
				|  |  |  |  |                 mobileNo: _appState.getSelectDeviceByImeiRespModelElement!.mobile!, | 
		
	
		
			
				|  |  |  |  |                 patientMobileNumber: int.parse(_appState.getSelectDeviceByImeiRespModelElement!.mobile!), | 
		
	
		
			
				|  |  |  |  |                 nationalId: _appState.getSelectDeviceByImeiRespModelElement!.identificationNo) | 
		
	
		
			
				|  |  |  |  |             .toJson()); | 
		
	
		
			
				|  |  |  |  |     resultEither.fold((failure) async => await _errorHandlerService.handleError(failure: failure), (apiResponse) async { | 
		
	
		
			
				|  |  |  |  |       if (apiResponse.messageStatus == 1) { | 
		
	
		
			
				|  |  |  |  |         dynamic deviceInfo= apiResponse.data['List_MobileLoginInfo']; | 
		
	
		
			
				|  |  |  |  |           getDeviceLastLogin =  deviceInfo['LoginType']; | 
		
	
		
			
				|  |  |  |  |         dynamic deviceInfo = apiResponse.data['List_MobileLoginInfo']; | 
		
	
		
			
				|  |  |  |  |         getDeviceLastLogin = deviceInfo['LoginType']; | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |     }); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
	
		
			
				
					|  |  |  | 
 |