import ' dart:io ' ;
import ' package:easy_localization/src/public_ext.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:flutter/services.dart ' ;
import ' package:flutter_svg/svg.dart ' ;
import ' package:local_auth/auth_strings.dart ' ;
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/consts.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 ' ;
import ' package:mohem_flutter_app/extensions/int_extensions.dart ' ;
import ' package:mohem_flutter_app/extensions/string_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/member_information_list_model.dart ' ;
import ' package:mohem_flutter_app/models/privilege_list_model.dart ' ;
// WhatsApp 4
// SMS 1
// Face ID 3
// Finger Print 2
class VerifyLoginScreen extends StatefulWidget {
VerifyLoginScreen ( { Key ? key } ) : super ( key: key ) ;
@ override
_VerifyLoginScreenState createState ( ) {
return _VerifyLoginScreenState ( ) ;
}
}
class _VerifyLoginScreenState extends State < VerifyLoginScreen > {
final LocalAuthentication auth = LocalAuthentication ( ) ;
List < BiometricType > _availableBioMetricType = [ ] ;
String ? firebaseToken ;
//For face and finger print verification
int selectedFlag = 0 ;
bool isNeedVerifyWithFaceIDAndBiometrics = false ;
@ override
void initState ( ) {
_getAvailableBiometrics ( ) ;
// setDefault();
super . initState ( ) ;
}
@ override
Widget build ( BuildContext context ) {
firebaseToken ? ? = ModalRoute . of ( context ) ! . settings . arguments as String ;
return Scaffold (
appBar: AppBar (
backgroundColor: Colors . transparent ,
leading: IconButton (
icon: const Icon ( Icons . arrow_back_ios , color: MyColors . darkIconColor ) ,
onPressed: ( ) = > Navigator . pop ( context ) ,
) ,
// actions: [Center(child: "Employee Digital ID".toText12(color: MyColors.textMixColor, isUnderLine: true).onPress(() {})), 21.width],
) ,
body: ListView (
padding: const EdgeInsets . all ( 21 ) ,
physics: const BouncingScrollPhysics ( ) ,
children: [
LocaleKeys . pleaseVerify . tr ( ) . toText16 ( ) ,
if ( isNeedVerifyWithFaceIDAndBiometrics ) LocaleKeys . pleaseVerifyForBio . tr ( ) . toText12 ( ) ,
GridView (
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount ( crossAxisCount: 2 , crossAxisSpacing: 13 , mainAxisSpacing: 9 ) ,
physics: const NeverScrollableScrollPhysics ( ) ,
padding: const EdgeInsets . only ( top: 9 ) ,
shrinkWrap: true ,
children: [
if ( ! isNeedVerifyWithFaceIDAndBiometrics ) getButton ( 3 ) ,
if ( ! isNeedVerifyWithFaceIDAndBiometrics ) getButton ( 2 ) ,
getButton ( 4 ) ,
getButton ( 1 ) ,
] ,
)
] ,
) ,
) ;
}
Future < void > _getAvailableBiometrics ( ) async {
try {
_availableBioMetricType = await auth . getAvailableBiometrics ( ) ;
} on PlatformException catch ( e ) {
// AppToast.showErrorToast(message: e.message);
print ( e ) ;
}
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;
// // });
// }
//
Future < bool > loginWithFaceIDAndBiometrics ( ) async {
IOSAuthMessages iosStrings =
const IOSAuthMessages ( cancelButton: ' cancel ' , goToSettingsButton: ' settings ' , goToSettingsDescription: ' Please set up your Touch ID. ' , lockOut: ' Please reenable your Touch ID ' ) ;
bool authenticated = false ;
try {
authenticated = await auth . authenticate ( localizedReason: ' Scan your fingerprint to authenticate ' , useErrorDialogs: true , stickyAuth: true , iOSAuthStrings: iosStrings ) ;
} on PlatformException catch ( e ) {
print ( e ) ;
Utils . hideLoading ( context ) ;
Utils . showToast ( " Please enable your Touch or Face ID " ) ;
}
return authenticated ;
}
Widget _loginOptionButton ( String _title , String _icon , int _flag , int ? _loginIndex ) {
bool isDisable = ( ( _flag = = 3 & & ! checkBiometricIsAvailable ( BiometricType . face ) ) | | ( _flag = = 2 & & ! checkBiometricIsAvailable ( BiometricType . fingerprint ) ) ) ;
return InkWell (
onTap: isDisable
? null
: ( ) async {
if ( _flag = = 0 ) {
setState ( ( ) {
// isMoreOption = true;
} ) ;
} else {
if ( _flag = = 2 | | _flag = = 3 ) {
bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics ( ) ;
if ( ! authenticateWithFaceAndTouchID ) {
return ;
} else {
isNeedVerifyWithFaceIDAndBiometrics = true ;
selectedFlag = _flag ;
setState ( ( ) {
return ;
} ) ;
}
} else {
if ( isNeedVerifyWithFaceIDAndBiometrics )
performApiCall ( _title , _icon , selectedFlag ) ;
else
performApiCall ( _title , _icon , _flag ) ;
}
}
} ,
child: Container (
padding: const EdgeInsets . only ( left: 20 , right: 20 , bottom: 15 , top: 28 ) ,
decoration: BoxDecoration (
borderRadius: BorderRadius . circular ( 15 ) ,
color: isDisable ? Colors . grey . withOpacity ( 0.3 ) : Colors . white ,
border: Border . all ( color: MyColors . lightGreyEFColor , width: 1 ) ,
) ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
mainAxisAlignment: MainAxisAlignment . spaceBetween ,
children: < Widget > [
SvgPicture . asset (
_icon ,
height: 38 ,
width: 38 ,
color: isDisable ? MyColors . darkTextColor . withOpacity ( 0.7 ) : null ,
) ,
_title . toText16 ( )
] ,
) ,
) ,
) ;
}
Widget getButton ( int flag ) {
switch ( flag ) {
case 1 :
return _loginOptionButton ( LocaleKeys . verifyThroughSMS . tr ( ) , ' assets/images/login/verify_sms.svg ' , flag , null ) ;
case 2 :
return _loginOptionButton ( LocaleKeys . verifyThroughFingerprint . tr ( ) , ' assets/images/login/verify_thumb.svg ' , flag , BiometricType . fingerprint . index ) ;
case 3 :
return _loginOptionButton ( LocaleKeys . verifyThroughFace . tr ( ) , ' assets/images/login/verify_face.svg ' , flag , BiometricType . face . index ) ;
case 4 :
return _loginOptionButton ( LocaleKeys . verifyThroughWhatsapp . tr ( ) , ' assets/images/login/verify_whatsapp.svg ' , flag , null ) ;
default :
return const SizedBox ( ) ;
}
}
bool checkBiometricIsAvailable ( BiometricType biometricType ) {
bool isAvailable = false ;
for ( int i = 0 ; i < _availableBioMetricType . length ; i + + ) {
if ( biometricType = = _availableBioMetricType [ i ] ) {
isAvailable = true ;
break ;
}
}
return isAvailable ;
}
Future < void > performApiCall ( String _title , String _icon , int _flag ) async {
try {
Utils . showLoading ( context ) ;
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 ) ;
Utils . hideLoading ( context ) ;
OtpDialog (
context ,
_flag ,
int . tryParse ( AppState ( ) . memberLoginList ? . pMOBILENUMBER ? ? " " ) ,
( value ) async {
Utils . showLoading ( context ) ;
try {
GenericResponseModel ? genericResponseModel = await LoginApiClient ( ) . checkActivationCode ( true , AppState ( ) . memberLoginList ? . pMOBILENUMBER , value , AppState ( ) . getUserName ) ;
GenericResponseModel ? genericResponseModel1 = await LoginApiClient ( ) . insertMobileLoginInfoNEW (
AppState ( ) . memberLoginList ? . pEMAILADDRESS ? ? " " ,
genericResponseModel ? . pSESSIONID ? ? 0 ,
genericResponseModel ? . memberInformationList ! [ 0 ] . eMPLOYEENAME ? ? " " ,
_flag ,
AppState ( ) . memberLoginList ? . pMOBILENUMBER ? ? " " ,
AppState ( ) . getUserName ! ,
firebaseToken ! ,
Platform . isAndroid ? " android " : " ios " ) ;
if ( genericResponseModel ? . errorMessage ! = null ) {
Utils . showToast ( genericResponseModel ? . errorMessage ? ? " " ) ;
} else {
AppState ( ) . setPrivilegeListModel = genericResponseModel ! . privilegeList ? ? [ ] ;
AppState ( ) . setMemberInformationListModel = genericResponseModel . memberInformationList ? . first ;
MemberInformationListModel . saveToPrefs ( genericResponseModel . memberInformationList ? ? [ ] ) ;
genericResponseModel . privilegeList ! . forEach ( ( element ) {
print ( element . serviceName . toString ( ) + " " + element . previlege . toString ( ) ) ; // Check availability
} ) ;
PrivilegeListModel . saveToPrefs ( genericResponseModel . privilegeList ? ? [ ] ) ;
AppState ( ) . setMohemmWifiSSID = genericResponseModel . mohemmWifiSSID ;
AppState ( ) . setMohemmWifiPassword = genericResponseModel . mohemmWifiPassword ;
Utils . saveStringFromPrefs ( SharedPrefsConsts . username , AppState ( ) . getUserName ! ) ;
Utils . saveStringFromPrefs ( SharedPrefsConsts . password , AppState ( ) . password ! ) ;
Utils . saveStringFromPrefs ( SharedPrefsConsts . mohemmWifiSSID , genericResponseModel . mohemmWifiSSID ! ) ;
Utils . saveStringFromPrefs ( SharedPrefsConsts . mohemmWifiPassword , genericResponseModel . mohemmWifiPassword ! ) ;
}
Utils . hideLoading ( context ) ;
Navigator . pop ( context ) ;
Navigator . pushNamedAndRemoveUntil ( context , AppRoutes . dashboard , ( Route < dynamic > route ) = > false ) ;
} catch ( ex ) {
print ( ex ) ;
Utils . hideLoading ( context ) ;
Utils . handleException ( ex , context , null ) ;
}
} ,
( ) = > {
Navigator . pop ( context ) ,
} ,
) . displayDialog ( context ) ;
} catch ( ex ) {
Utils . hideLoading ( context ) ;
Utils . handleException ( ex , context , null ) ;
}
}
//
// formatDate(date) {
// return date;
// return DateFormat('MMM dd, yyy, kk:mm').format(date);
// }
//
// showLoader(bool isTrue) {
// setState(() {
// // isLoading = isTrue;
// });
// }
}