From 1187c3b605b7fc61af7abe7b931ca780a8458d54 Mon Sep 17 00:00:00 2001 From: Mohammad Aljammal Date: Mon, 17 May 2021 12:28:21 +0300 Subject: [PATCH] fix authentication provider --- ios/Podfile.lock | 2 +- lib/client/base_app_client.dart | 9 +---- .../viewModel/authentication_view_model.dart | 38 +++++++++---------- lib/widgets/shared/app_drawer_widget.dart | 2 +- 4 files changed, 23 insertions(+), 28 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 2f4607e0..878a1850 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -322,4 +322,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69 -COCOAPODS: 1.10.0.rc.1 +COCOAPODS: 1.10.1 diff --git a/lib/client/base_app_client.dart b/lib/client/base_app_client.dart index 3aac5e92..68a84820 100644 --- a/lib/client/base_app_client.dart +++ b/lib/client/base_app_client.dart @@ -10,6 +10,7 @@ import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:flutter/cupertino.dart'; import 'package:http/http.dart' as http; +import 'package:provider/provider.dart'; DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); Helpers helpers = new Helpers(); @@ -90,12 +91,6 @@ class BaseAppClient { if (statusCode < 200 || statusCode >= 400) { onFailure(Helpers.generateContactAdminMsg(), statusCode); } else { - if(callLog){ - callLog = false; - await AuthenticationViewModel().logout(isSessionTimeout: true); - - } - var parsed = json.decode(response.body.toString()); if (parsed['ErrorType'] == 4) { helpers.navigateToUpdatePage(parsed['ErrorEndUserMessage'], @@ -106,7 +101,7 @@ class BaseAppClient { if (body['OTP_SendType'] != null) { onFailure(getError(parsed), statusCode); } else if (!isAllowAny) { - await AuthenticationViewModel().logout(isSessionTimeout: true); + await Provider.of(AppGlobal.CONTEX, listen: false).logout(isSessionTimeout: true); Helpers.showErrorToast('Your session expired Please login again'); } if (isAllowAny) { diff --git a/lib/core/viewModel/authentication_view_model.dart b/lib/core/viewModel/authentication_view_model.dart index 3b8cf02f..8e9c3541 100644 --- a/lib/core/viewModel/authentication_view_model.dart +++ b/lib/core/viewModel/authentication_view_model.dart @@ -361,28 +361,26 @@ class AuthenticationViewModel extends BaseViewModel { _firebaseMessaging.requestNotificationPermissions(); } setState(ViewState.Busy); - - _firebaseMessaging.getToken().then((String token) async { - if (DEVICE_TOKEN == "" && !ProjectViewModel().isLogin) { - DEVICE_TOKEN = token; - - await _authService.selectDeviceImei(DEVICE_TOKEN); - if (_authService.hasError) { - error = _authService.error; - setState(ViewState.ErrorLocal); - } else { - if (_authService.dashboardItemsList.length > 0) { - user =_authService.dashboardItemsList[0]; - sharedPref.setObj( - LAST_LOGIN_USER, _authService.dashboardItemsList[0]); - this.unverified = true; - } - setState(ViewState.Idle); - } + var token = await _firebaseMessaging.getToken(); + if (DEVICE_TOKEN == "" && !ProjectViewModel().isLogin) { + DEVICE_TOKEN = token; + + await _authService.selectDeviceImei(DEVICE_TOKEN); + if (_authService.hasError) { + error = _authService.error; + setState(ViewState.ErrorLocal); } else { + if (_authService.dashboardItemsList.length > 0) { + user =_authService.dashboardItemsList[0]; + sharedPref.setObj( + LAST_LOGIN_USER, _authService.dashboardItemsList[0]); + this.unverified = true; + } setState(ViewState.Idle); } - }); + } else { + setState(ViewState.Idle); + } } /// determine the status of the app @@ -407,6 +405,7 @@ class AuthenticationViewModel extends BaseViewModel { await Helpers.clearSharedPref(); sharedPref.setString(APP_Language, lang); ProjectViewModel().isLogin = false; + deleteUser(); if(isSessionTimeout) await getDeviceInfoFromFirebase(); Navigator.pushAndRemoveUntil( @@ -419,6 +418,7 @@ class AuthenticationViewModel extends BaseViewModel { deleteUser(){ user = null; + unverified = false; notifyListeners(); } diff --git a/lib/widgets/shared/app_drawer_widget.dart b/lib/widgets/shared/app_drawer_widget.dart index db328462..ee7f0276 100644 --- a/lib/widgets/shared/app_drawer_widget.dart +++ b/lib/widgets/shared/app_drawer_widget.dart @@ -172,7 +172,7 @@ class _AppDrawerState extends State { ), onTap: () async { Navigator.pop(context); - await AuthenticationViewModel().logout(); + await authenticationViewModel.logout(); projectsProvider.isLogin = false; }, ),