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/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/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/widgets/button/default_button.dart ' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  VerifyLastLoginScreen  extends  StatefulWidget  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  VerifyLastLoginScreen ( { Key ?  key } )  :  super ( key:  key ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  _VerifyLastLoginScreenState  createState ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  _VerifyLastLoginScreenState ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  _VerifyLastLoginScreenState  extends  State < VerifyLastLoginScreen >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  final  LocalAuthentication  auth  =  LocalAuthentication ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  List < BiometricType >  _availableBioMetricType  =  [ ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  initState ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _getAvailableBiometrics ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // setDefault();
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    super . initState ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @ override 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Widget  build ( BuildContext  context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    String  empName  =  AppState ( ) . isArabic ( context )  ?  AppState ( ) . memberInformationList ! . eMPLOYEEDISPLAYNAMEAr !  :  AppState ( ) . memberInformationList ! . eMPLOYEEDISPLAYNAMEEn ! ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    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:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Expanded ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            child:  ListView ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              padding:  const  EdgeInsets . all ( 21 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              physics:  const  BouncingScrollPhysics ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //12.height,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( true ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    mainAxisSize:  MainAxisSize . min , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    crossAxisAlignment:  CrossAxisAlignment . start , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      LocaleKeys . welcomeBack . tr ( ) . toText12 ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      empName . toText24 ( isBold:  true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      10. height , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      LocaleKeys . wouldYouLikeToLoginWithCurrentUsername . tr ( ) . toText16 ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      Container ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        height:  72 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        margin:  const  EdgeInsets . only ( top:  23 ,  bottom:  23 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        alignment:  Alignment . center , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        padding:  const  EdgeInsets . only ( left:  17 ,  right:  12 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        decoration:  BoxDecoration ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          borderRadius:  BorderRadius . circular ( 10 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          color:  Colors . white , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          border:  Border . all ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            color:  const  Color ( 0xffefefef ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            width:  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        child:  Column ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          mainAxisSize:  MainAxisSize . min , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            Row ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              mainAxisAlignment:  MainAxisAlignment . spaceBetween , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              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),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                // ),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            Row ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              mainAxisAlignment:  MainAxisAlignment . spaceBetween , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              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 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                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),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                // ),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                              ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      LocaleKeys . pleaseVerify . tr ( ) . toText16 ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      GridView ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        gridDelegate:  const  SliverGridDelegateWithFixedCrossAxisCount ( crossAxisCount:  2 ,  crossAxisSpacing:  13 ,  mainAxisSpacing:  9 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        physics:  const  NeverScrollableScrollPhysics ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        padding:  const  EdgeInsets . only ( top:  9 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        shrinkWrap:  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        children:  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          getButton ( 3 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          getButton ( 2 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          getButton ( 1 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          getButton ( 4 ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                // else
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //   Column(mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     Image.asset(
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       'assets/images/habib-logo.png',
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       height: 90,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       width: 90,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     ),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     SizedBox(height: 23),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     this.onlySMSBox == false
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //         ? Text(
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //             TranslationBase.of(context).verifyLoginWith,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //             style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 25 / 16),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //           )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //         : Text(
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //             TranslationBase.of(context).verifyFingerprint2,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //             style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 25 / 16),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //           ),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     SizedBox(height: 23),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     Text(
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       TranslationBase.of(context).pleaseVerify,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     ),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     GridView(
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, crossAxisSpacing: 13, mainAxisSpacing: 9),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       physics: NeverScrollableScrollPhysics(),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       padding: EdgeInsets.only(top: 9),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       shrinkWrap: true,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       children: [
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //         if (onlySMSBox == false) getButton(3),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //         if (onlySMSBox == false) getButton(2),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //         getButton(1),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //         getButton(4),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //       ],
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //     ),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //   ]),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          12. height , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DefaultButton ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            LocaleKeys . useAnotherAccount . tr ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              //Navigator.of(context).pushNamed(LOGIN_TYPE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ) . insideContainer , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  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 ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    print ( " $ _title : $ isDisable " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  InkWell ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      onTap:  isDisable 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          ?  null 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          :  ( )  async  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              if  ( _flag  = =  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                setState ( ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  //  isMoreOption = true;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                Utils . showLoading ( context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( _flag  = =  2  | |  _flag  = =  3 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  bool  authenticateWithFaceAndTouchID  =  await  loginWithFaceIDAndBiometrics ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  if  ( authenticateWithFaceAndTouchID )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Navigator . pushNamedAndRemoveUntil ( context ,  AppRoutes . dashboard ,  ( Route < dynamic >  route )  = >  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Utils . hideLoading ( context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                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 ( false ,  AppState ( ) . memberLoginList ? . pMOBILENUMBER ,  value ,  AppState ( ) . getUserName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      if  ( genericResponseModel ? . errorMessage  ! =  null )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        Utils . showToast ( genericResponseModel ? . errorMessage  ? ?  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        //  Navigator.pop(context);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      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 ,  null ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    Navigator . pop ( context ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ) . displayDialog ( context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                //    authenticateUser(_flag, isActive: _loginIndex);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      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  4 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  _loginOptionButton ( LocaleKeys . verifyThroughWhatsapp . tr ( ) ,  ' assets/images/login/verify_whatsapp.svg ' ,  flag ,  null ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      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 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      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 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//   formatDate(date) {
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//     return date;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//     return DateFormat('MMM dd, yyy, kk:mm').format(date);
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//   }
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//   showLoader(bool isTrue) {
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//     setState(() {
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//       // isLoading = isTrue;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//     });
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//   }
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}