|  |  |  | @ -8,6 +8,7 @@ import 'package:flutter/cupertino.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/foundation.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/material.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/services.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:huawei_hmsavailability/huawei_hmsavailability.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'; | 
		
	
	
		
			
				
					|  |  |  | @ -19,7 +20,6 @@ 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/main.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/models/check_mobile_app_version_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/models/get_mobile_login_info_list_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/models/member_information_list_model.dart'; | 
		
	
	
		
			
				
					|  |  |  | @ -27,7 +27,6 @@ import 'package:mohem_flutter_app/models/member_login_list_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/models/privilege_list_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/button/default_button.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/input_widget.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:permission_handler/permission_handler.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:safe_device/safe_device.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:wifi_iot/wifi_iot.dart'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -58,9 +57,12 @@ class _LoginScreenState extends State<LoginScreen> { | 
		
	
		
			
				|  |  |  |  |   bool isOnExternalStorage = false; | 
		
	
		
			
				|  |  |  |  |   bool isDevelopmentModeEnable = false; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   late HmsApiAvailability hmsApiAvailability; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
		
			
				|  |  |  |  |   void initState() { | 
		
	
		
			
				|  |  |  |  |     super.initState(); | 
		
	
		
			
				|  |  |  |  |     hmsApiAvailability = HmsApiAvailability(); | 
		
	
		
			
				|  |  |  |  |     // checkFirebaseToken(); | 
		
	
		
			
				|  |  |  |  |     // if (kReleaseMode) { | 
		
	
		
			
				|  |  |  |  |     //   checkDeviceSafety(); | 
		
	
	
		
			
				
					|  |  |  | @ -94,21 +96,27 @@ class _LoginScreenState extends State<LoginScreen> { | 
		
	
		
			
				|  |  |  |  |   Future<void> checkFirebaseToken() async { | 
		
	
		
			
				|  |  |  |  |     try { | 
		
	
		
			
				|  |  |  |  |       Utils.showLoading(context); | 
		
	
		
			
				|  |  |  |  |       await Firebase.initializeApp(); | 
		
	
		
			
				|  |  |  |  |       _firebaseMessaging = FirebaseMessaging.instance; | 
		
	
		
			
				|  |  |  |  |       firebaseToken = await _firebaseMessaging.getToken(); | 
		
	
		
			
				|  |  |  |  |       AppNotifications().init(firebaseToken); | 
		
	
		
			
				|  |  |  |  |       loginInfo = await LoginApiClient().getMobileLoginInfoNEW(firebaseToken ?? "", Platform.isAndroid ? "android" : "ios"); | 
		
	
		
			
				|  |  |  |  |       if (loginInfo == null) { | 
		
	
		
			
				|  |  |  |  |         await checkPrefs(); | 
		
	
		
			
				|  |  |  |  |         _autoLogin = false; | 
		
	
		
			
				|  |  |  |  |         Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |         return; | 
		
	
		
			
				|  |  |  |  |       if (Platform.isAndroid) { | 
		
	
		
			
				|  |  |  |  |         try { | 
		
	
		
			
				|  |  |  |  |           await hmsApiAvailability.isHMSAvailable().then((value) async { | 
		
	
		
			
				|  |  |  |  |             if (value == 0) { | 
		
	
		
			
				|  |  |  |  |               AppState().setIsHuawei = true; | 
		
	
		
			
				|  |  |  |  |               AppNotifications().initHuaweiPush(checkLoginInfo); | 
		
	
		
			
				|  |  |  |  |             } else { | 
		
	
		
			
				|  |  |  |  |               await Firebase.initializeApp(); | 
		
	
		
			
				|  |  |  |  |               _firebaseMessaging = FirebaseMessaging.instance; | 
		
	
		
			
				|  |  |  |  |               firebaseToken = await _firebaseMessaging.getToken(); | 
		
	
		
			
				|  |  |  |  |               AppNotifications().init(firebaseToken); | 
		
	
		
			
				|  |  |  |  |               checkLoginInfo(); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |           }); | 
		
	
		
			
				|  |  |  |  |         } catch (ex) {} | 
		
	
		
			
				|  |  |  |  |       } else { | 
		
	
		
			
				|  |  |  |  |         loginInfo!.deviceToken = firebaseToken; | 
		
	
		
			
				|  |  |  |  |         await checkPrefs(); | 
		
	
		
			
				|  |  |  |  |         Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |         performLogin(); | 
		
	
		
			
				|  |  |  |  |         await Firebase.initializeApp(); | 
		
	
		
			
				|  |  |  |  |         _firebaseMessaging = FirebaseMessaging.instance; | 
		
	
		
			
				|  |  |  |  |         firebaseToken = await _firebaseMessaging.getToken(); | 
		
	
		
			
				|  |  |  |  |         AppNotifications().init(firebaseToken); | 
		
	
		
			
				|  |  |  |  |         checkLoginInfo(); | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |     } catch (ex) { | 
		
	
		
			
				|  |  |  |  |       Utils.hideLoading(context); | 
		
	
	
		
			
				
					|  |  |  | @ -116,6 +124,21 @@ class _LoginScreenState extends State<LoginScreen> { | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void checkLoginInfo() async { | 
		
	
		
			
				|  |  |  |  |     loginInfo = await LoginApiClient().getMobileLoginInfoNEW(AppState().getIsHuawei ? AppState().getHuaweiPushToken : firebaseToken ?? "", Platform.isAndroid ? "android" : "ios"); | 
		
	
		
			
				|  |  |  |  |     if (loginInfo == null) { | 
		
	
		
			
				|  |  |  |  |       await checkPrefs(); | 
		
	
		
			
				|  |  |  |  |       _autoLogin = false; | 
		
	
		
			
				|  |  |  |  |       Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |       return; | 
		
	
		
			
				|  |  |  |  |     } else { | 
		
	
		
			
				|  |  |  |  |       loginInfo!.deviceToken = firebaseToken; | 
		
	
		
			
				|  |  |  |  |       await checkPrefs(); | 
		
	
		
			
				|  |  |  |  |       Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |       performLogin(); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<void> checkPrefs() async { | 
		
	
		
			
				|  |  |  |  |     String username = await Utils.getStringFromPrefs(SharedPrefsConsts.username); | 
		
	
		
			
				|  |  |  |  |     if (username.isNotEmpty) { | 
		
	
	
		
			
				
					|  |  |  | @ -159,7 +182,6 @@ class _LoginScreenState extends State<LoginScreen> { | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
		
			
				|  |  |  |  |   Widget build(BuildContext context) { | 
		
	
		
			
				|  |  |  |  |     if (isAppOpenBySystem == null) { | 
		
	
	
		
			
				
					|  |  |  | 
 |