diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
index 8d4492f..9625e10 100644
--- a/ios/Flutter/AppFrameworkInfo.plist
+++ b/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 9.0
+ 11.0
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index eaa735c..9673709 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -32,6 +32,8 @@
This app requires camera access to capture & upload pictures.
NSPhotoLibraryUsageDescription
This app requires photo library access to select image as document & upload it.
+ NSFaceIDUsageDescription
+ This app requires Face ID to allow biometric authentication for app login.
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
diff --git a/lib/ui/attendance/monthly_attendance_screen.dart b/lib/ui/attendance/monthly_attendance_screen.dart
index c45dc0b..ebbf03f 100644
--- a/lib/ui/attendance/monthly_attendance_screen.dart
+++ b/lib/ui/attendance/monthly_attendance_screen.dart
@@ -16,7 +16,7 @@ import 'package:mohem_flutter_app/models/get_schedule_shifts_details_list_model.
import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/circular_step_progress_bar.dart';
-import 'package:month_picker_dialog/month_picker_dialog.dart';
+import 'package:month_picker_dialog_2/month_picker_dialog_2.dart';
import 'package:pie_chart/pie_chart.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';
diff --git a/lib/ui/landing/widget/app_drawer.dart b/lib/ui/landing/widget/app_drawer.dart
index ebe3f7b..523c1cc 100644
--- a/lib/ui/landing/widget/app_drawer.dart
+++ b/lib/ui/landing/widget/app_drawer.dart
@@ -136,8 +136,8 @@ class _AppDrawerState extends State {
AppState().isAuthenticated = false;
AppState().isLogged = false;
AppState().setPostParamsInitConfig();
- SharedPreferences prefs = await SharedPreferences.getInstance();
- await prefs.clear();
- Navigator.pushNamedAndRemoveUntil(context, AppRoutes.login, (Route route) => false, arguments: false);
+ // SharedPreferences prefs = await SharedPreferences.getInstance();
+ // await prefs.clear();
+ Navigator.pushNamedAndRemoveUntil(context, AppRoutes.login, (Route route) => false, arguments: null);
}
}
diff --git a/lib/ui/login/login_screen.dart b/lib/ui/login/login_screen.dart
index f0f2c48..f8ec8e5 100644
--- a/lib/ui/login/login_screen.dart
+++ b/lib/ui/login/login_screen.dart
@@ -50,7 +50,7 @@ class _LoginScreenState extends State {
@override
void initState() {
super.initState();
- // checkFirebaseToken();
+ // checkFirebaseToken();
}
@override
@@ -130,8 +130,8 @@ class _LoginScreenState extends State {
if (isAppOpenBySystem == null) {
isAppOpenBySystem = (ModalRoute.of(context)!.settings.arguments ?? true) as bool;
print('isAppOpenBySystem:$isAppOpenBySystem');
- username.text = "15153";
- password.text = "Abcd@12345";
+ // username.text = "15153";
+ // password.text = "Abcd@12345";
if (isAppOpenBySystem!) checkFirebaseToken();
}
diff --git a/lib/ui/login/verify_last_login_screen.dart b/lib/ui/login/verify_last_login_screen.dart
index faaf76e..9215cb7 100644
--- a/lib/ui/login/verify_last_login_screen.dart
+++ b/lib/ui/login/verify_last_login_screen.dart
@@ -211,7 +211,7 @@ class _VerifyLastLoginScreenState extends State {
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);
+ authenticated = await auth.authenticate(localizedReason: 'Scan your fingerprint to authenticate', useErrorDialogs: true, stickyAuth: true, biometricOnly: true, iOSAuthStrings: iosStrings);
} on PlatformException catch (e) {
print(e);
Utils.hideLoading(context);
@@ -238,12 +238,13 @@ class _VerifyLastLoginScreenState extends State {
return;
} else {
if (mobileLoginInfoListModel!.loginType == 2 || mobileLoginInfoListModel!.loginType == 3) {
- bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics();
- if (!authenticateWithFaceAndTouchID) {
- return;
- } else {
- performApiCall(_title, _icon, _flag, isDirectLogin: true);
- }
+ // bool authenticateWithFaceAndTouchID = await loginWithFaceIDAndBiometrics();
+ // if (!authenticateWithFaceAndTouchID) {
+ // return;
+ // } else {
+ // performApiCall(_title, _icon, _flag, isDirectLogin: true);
+ // }
+ performApiCall(_title, _icon, _flag, isDirectLogin: true);
} else {
isNeedVerifyWithFaceIDAndBiometrics = true;
selectedFlag = _flag;
diff --git a/lib/ui/login/verify_login_screen.dart b/lib/ui/login/verify_login_screen.dart
index 1d66df9..a713c0f 100644
--- a/lib/ui/login/verify_login_screen.dart
+++ b/lib/ui/login/verify_login_screen.dart
@@ -517,7 +517,7 @@ class _VerifyLoginScreenState extends State {
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);
+ authenticated = await auth.authenticate(localizedReason: 'Scan your fingerprint to authenticate', useErrorDialogs: true, stickyAuth: true, biometricOnly: true, iOSAuthStrings: iosStrings);
} on PlatformException catch (e) {
print(e);
Utils.hideLoading(context);
diff --git a/lib/ui/my_team/view_attendance.dart b/lib/ui/my_team/view_attendance.dart
index b3f123e..555cfb0 100644
--- a/lib/ui/my_team/view_attendance.dart
+++ b/lib/ui/my_team/view_attendance.dart
@@ -15,7 +15,7 @@ import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'package:mohem_flutter_app/models/my_team/get_employee_subordinates_list.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/circular_step_progress_bar.dart';
-import 'package:month_picker_dialog/month_picker_dialog.dart';
+import 'package:month_picker_dialog_2/month_picker_dialog_2.dart';
import 'package:pie_chart/pie_chart.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';
diff --git a/lib/ui/work_list/sheets/delegate_sheet.dart b/lib/ui/work_list/sheets/delegate_sheet.dart
index 2904e07..b0cfef1 100644
--- a/lib/ui/work_list/sheets/delegate_sheet.dart
+++ b/lib/ui/work_list/sheets/delegate_sheet.dart
@@ -200,7 +200,7 @@ class _DelegateSheetState extends State {
),
),
if (isNeedEnableTextField)
- FlatButton(
+ TextButton(
onPressed: () {
fetchUserByInput();
},
diff --git a/lib/widgets/nfc/nfc_reader_sheet.dart b/lib/widgets/nfc/nfc_reader_sheet.dart
index 53c0d4f..eff0b56 100644
--- a/lib/widgets/nfc/nfc_reader_sheet.dart
+++ b/lib/widgets/nfc/nfc_reader_sheet.dart
@@ -107,12 +107,12 @@ class _NfcLayoutState extends State {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6),
),
- child: RaisedButton(
+ child: TextButton(
onPressed: () {
NfcManager.instance.stopSession();
Navigator.pop(context);
},
- elevation: 0,
+ // elevation: 0,
child: Text("CANCEL"),
),
),
@@ -166,14 +166,14 @@ class _NfcLayoutState extends State {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6),
),
- child: RaisedButton(
+ child: TextButton(
// onPressed: () {
// _stream?.cancel();
// widget.onNcfScan(nfcId);
// Navigator.pop(context);
// },
onPressed: null,
- elevation: 0,
+ // elevation: 0,
child: Text("DONE"),
),
),
diff --git a/pubspec.yaml b/pubspec.yaml
index e4f6dfc..bbe6f92 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -64,7 +64,7 @@ dependencies:
# flutter_compass: ^0.6.1
google_maps_flutter_web: ^0.3.2
month_year_picker: ^0.2.0+1
- month_picker_dialog: ^0.4.0
+ month_picker_dialog_2: 0.5.5
open_file: ^3.2.1
wifi_iot: ^0.3.16
flutter_html: ^2.2.1