From 20e6a6ddc35a2e435094a63fc4d19359a8c6e1c1 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 29 Sep 2022 12:11:49 +0300 Subject: [PATCH] Attendance fixes --- lib/api/api_client.dart | 3 ++- lib/dialogs/otp_dialog.dart | 23 +++++++++++------- lib/ui/login/verify_login_screen.dart | 12 +++++----- lib/widgets/mark_attendance_widget.dart | 31 +++++++++++++++---------- 4 files changed, 41 insertions(+), 28 deletions(-) diff --git a/lib/api/api_client.dart b/lib/api/api_client.dart index 3385815..1a035a2 100644 --- a/lib/api/api_client.dart +++ b/lib/api/api_client.dart @@ -74,7 +74,8 @@ class ApiClient { } if (!kReleaseMode) { print("Url:$url"); - print("body:$jsonObject"); + var bodyJson = json.encode(jsonObject); + print("body:$bodyJson"); } var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: _headers, retryTimes: retryTimes, isFormData: isFormData); // try { diff --git a/lib/dialogs/otp_dialog.dart b/lib/dialogs/otp_dialog.dart index bea34f3..23c7c67 100644 --- a/lib/dialogs/otp_dialog.dart +++ b/lib/dialogs/otp_dialog.dart @@ -87,7 +87,13 @@ class OtpDialog { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ SvgPicture.asset( - type == 1 ? "assets/images/login/verify_sms.svg" :type==2? "assets/images/login/verify_thumb.svg":type==3? "assets/images/login/verify_face.svg":'assets/images/login/verify_whatsapp.svg', + type == 1 + ? "assets/images/login/verify_sms.svg" + : type == 2 + ? "assets/images/login/verify_whatsapp.svg" + : type == 3 + ? "assets/images/login/verify_face.svg" + : 'assets/images/login/verify_thumb.svg', height: 50, width: 50, ), @@ -218,12 +224,11 @@ class OtpDialog { } } - // static getSignature() async { - // // if (Platform.isAndroid) { - // // return await SmsRetriever.getAppSignature(); - // // } else { - // // return null; - // // } - // } +// static getSignature() async { +// // if (Platform.isAndroid) { +// // return await SmsRetriever.getAppSignature(); +// // } else { +// // return null; +// // } +// } } - diff --git a/lib/ui/login/verify_login_screen.dart b/lib/ui/login/verify_login_screen.dart index a713c0f..b3d3204 100644 --- a/lib/ui/login/verify_login_screen.dart +++ b/lib/ui/login/verify_login_screen.dart @@ -77,8 +77,8 @@ class _VerifyLoginScreenState extends State { shrinkWrap: true, children: [ if (!isNeedVerifyWithFaceIDAndBiometrics) getButton(3), - if (!isNeedVerifyWithFaceIDAndBiometrics) getButton(2), - getButton(4), + if (!isNeedVerifyWithFaceIDAndBiometrics) getButton(4), + getButton(2), getButton(1), ], ) @@ -537,7 +537,7 @@ class _VerifyLoginScreenState extends State { // isMoreOption = true; }); } else { - if (_flag == 2 || _flag == 3) { + if (_flag == 3 || _flag == 4) { bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics(); if (!authenticateWithFaceAndTouchID) { return; @@ -585,11 +585,11 @@ class _VerifyLoginScreenState extends State { 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); + return _loginOptionButton(LocaleKeys.verifyThroughWhatsapp.tr(), 'assets/images/login/verify_whatsapp.svg', flag, null); case 3: return _loginOptionButton(LocaleKeys.verifyThroughFace.tr(), 'assets/images/login/verify_face.svg', flag, BiometricType.face.index); case 4: - return _loginOptionButton(LocaleKeys.verifyThroughWhatsapp.tr(), 'assets/images/login/verify_whatsapp.svg', flag, null); + return _loginOptionButton(LocaleKeys.verifyThroughFingerprint.tr(), 'assets/images/login/verify_thumb.svg', flag, BiometricType.fingerprint.index); default: return const SizedBox(); } @@ -612,7 +612,7 @@ class _VerifyLoginScreenState extends State { 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); + .mohemmSendActivationCodeByOTPNotificationType(0, AppState().memberLoginList?.pMOBILENUMBER, _flag, AppState().getUserName); Utils.hideLoading(context); OtpDialog( context, diff --git a/lib/widgets/mark_attendance_widget.dart b/lib/widgets/mark_attendance_widget.dart index 08e7c5e..2ccd98b 100644 --- a/lib/widgets/mark_attendance_widget.dart +++ b/lib/widgets/mark_attendance_widget.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -155,22 +157,26 @@ class _MarkAttendanceWidgetState extends State { print("wifi not location enabled"); } - bool isConnected = - await WiFiForIoTPlugin.connect(AppState().getMohemmWifiSSID ?? "", password: AppState().getMohemmWifiPassword ?? "", joinOnce: true, security: NetworkSecurity.WPA, withInternet: false); + Utils.showLoading(context); + bool isConnected = await WiFiForIoTPlugin.connect(AppState().getMohemmWifiSSID ?? "", + password: AppState().getMohemmWifiPassword ?? "", joinOnce: Platform.isIOS ? false : true, security: NetworkSecurity.WPA, withInternet: false); if (isConnected) { - Utils.showLoading(context); - await WiFiForIoTPlugin.forceWifiUsage(true); - - await Future.delayed(Duration(seconds: 1)); - + if (Platform.isIOS) { + await closeWifiRequest(); + await Future.delayed(Duration(seconds: 6)); + } else { + await WiFiForIoTPlugin.forceWifiUsage(true); + } try { GenericResponseModel? g = await DashboardApiClient().markAttendance(pointType: 3, nfcValue: "", isGpsRequired: isWifiLocationEnabled, lat: lat, long: lng); bool status = await model.fetchAttendanceTracking(context); Utils.hideLoading(context); - // await closeWifiRequest(); + if (Platform.isAndroid) { + await closeWifiRequest(); + } } catch (ex) { - print("performWifiAttendance: "+ex.toString()); - // await closeWifiRequest(); + print("performWifiAttendance: " + ex.toString()); + await closeWifiRequest(); Utils.hideLoading(context); Utils.handleException(ex, context, (msg) { Utils.confirmDialog(context, msg); @@ -182,8 +188,9 @@ class _MarkAttendanceWidgetState extends State { } Future closeWifiRequest() async { - // await WiFiForIoTPlugin.forceWifiUsage(false); - // Future.delayed(Duration(seconds: 2)); + if (Platform.isAndroid) { + await WiFiForIoTPlugin.forceWifiUsage(false); + } return await WiFiForIoTPlugin.disconnect(); }