Merge branch 'development_haroon' into 'master'

attendance fixes

See merge request Cloud_Solution/mohemm-flutter-app!151
merge-requests/152/merge
haroon amjad 3 years ago
commit 6a3f904bd2

@ -115,12 +115,14 @@ class Utils {
} else { } else {
if (!AppState().isAuthenticated) { if (!AppState().isAuthenticated) {
showDialog( showDialog(
barrierDismissible: false,
context: cxt, context: cxt,
builder: (cxt) => ConfirmDialog( builder: (cxt) => ConfirmDialog(
message: errorMessage, message: errorMessage,
onTap: () { onTap: () {
Navigator.pushNamedAndRemoveUntil(cxt, AppRoutes.login, (Route<dynamic> route) => false); Navigator.pushNamedAndRemoveUntil(cxt, AppRoutes.login, (Route<dynamic> route) => false);
}, },
onCloseTap: () {},
), ),
); );
} else { } else {

@ -12,8 +12,9 @@ class ConfirmDialog extends StatelessWidget {
final String message; final String message;
final String? okTitle; final String? okTitle;
final VoidCallback? onTap; final VoidCallback? onTap;
final VoidCallback? onCloseTap;
const ConfirmDialog({Key? key, this.title, required this.message, this.okTitle, this.onTap}) : super(key: key); const ConfirmDialog({Key? key, this.title, required this.message, this.okTitle, this.onTap, this.onCloseTap}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -41,9 +42,8 @@ class ConfirmDialog extends StatelessWidget {
icon: const Icon(Icons.close), icon: const Icon(Icons.close),
color: MyColors.darkTextColor, color: MyColors.darkTextColor,
constraints: const BoxConstraints(), constraints: const BoxConstraints(),
onPressed: () { onPressed: () => onCloseTap ?? Navigator.pop(context),
Navigator.pop(context); // onPressed: () => Navigator.pop(context),
},
) )
], ],
), ),

@ -75,7 +75,6 @@ class _MarkAttendanceWidgetState extends State<MarkAttendanceWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
padding: EdgeInsets.only(left: 21, right: 21, bottom: 21, top: widget.topPadding), padding: EdgeInsets.only(left: 21, right: 21, bottom: 21, top: widget.topPadding),
decoration: const BoxDecoration(borderRadius: BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)), color: Colors.white), decoration: const BoxDecoration(borderRadius: BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)), color: Colors.white),
@ -146,7 +145,6 @@ class _MarkAttendanceWidgetState extends State<MarkAttendanceWidget> {
Future<void> performNfcAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async { Future<void> performNfcAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async {
if (Platform.isIOS) { if (Platform.isIOS) {
Utils.readNFc(onRead: (String nfcId) async { Utils.readNFc(onRead: (String nfcId) async {
Utils.showLoading(context); Utils.showLoading(context);
try { try {
@ -215,7 +213,25 @@ class _MarkAttendanceWidgetState extends State<MarkAttendanceWidget> {
} }
} }
Future<bool> checkSession() async {
try {
Utils.showLoading(context);
await DashboardApiClient().getOpenMissingSwipes();
Utils.hideLoading(context);
return true;
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
return false;
}
}
Future<void> performWifiAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async { Future<void> performWifiAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async {
if (Platform.isAndroid) {
if (!(await checkSession())) {
return;
}
}
Utils.showLoading(context); Utils.showLoading(context);
bool isConnected = await WiFiForIoTPlugin.connect(AppState().getMohemmWifiSSID ?? "", bool isConnected = await WiFiForIoTPlugin.connect(AppState().getMohemmWifiSSID ?? "",
password: AppState().getMohemmWifiPassword ?? "", joinOnce: Platform.isIOS ? false : true, security: NetworkSecurity.WPA, withInternet: false); password: AppState().getMohemmWifiPassword ?? "", joinOnce: Platform.isIOS ? false : true, security: NetworkSecurity.WPA, withInternet: false);
@ -228,7 +244,7 @@ class _MarkAttendanceWidgetState extends State<MarkAttendanceWidget> {
} }
} }
if (isConnected) { if (isConnected && AppState().isAuthenticated) {
await WiFiForIoTPlugin.forceWifiUsage(true); await WiFiForIoTPlugin.forceWifiUsage(true);
await Future.delayed(const Duration(seconds: 6)); await Future.delayed(const Duration(seconds: 6));
try { try {
@ -248,8 +264,12 @@ class _MarkAttendanceWidgetState extends State<MarkAttendanceWidget> {
Utils.handleException(ex, context, null); Utils.handleException(ex, context, null);
} }
} else { } else {
Utils.hideLoading(context); if (AppState().isAuthenticated) {
Utils.confirmDialog(context, LocaleKeys.comeNearHMGWifi.tr()); Utils.hideLoading(context);
Utils.confirmDialog(context, LocaleKeys.comeNearHMGWifi.tr());
} else {
await closeWifiRequest();
}
} }
} }

Loading…
Cancel
Save