diff --git a/lib/features/base/reloadable/reloadable_controller.dart b/lib/features/base/reloadable/reloadable_controller.dart index 1b776c7e4..297c1c1e9 100644 --- a/lib/features/base/reloadable/reloadable_controller.dart +++ b/lib/features/base/reloadable/reloadable_controller.dart @@ -159,6 +159,7 @@ abstract class ReloadableController extends BaseController { _authorizationInterceptors.clear(); _authorizationIsolateInterceptors.clear(); _fcmReceiver.deleteFcmToken(); + await _cachingManager.closeHive(); _goToLogin(arguments: LoginArguments(LoginFormType.credentialForm)); } } @@ -173,6 +174,7 @@ abstract class ReloadableController extends BaseController { _authorizationIsolateInterceptors.clear(); _authorizationInterceptors.clear(); _fcmReceiver.deleteFcmToken(); + await _cachingManager.closeHive(); _goToLogin(arguments: LoginArguments(LoginFormType.ssoForm)); } diff --git a/lib/features/caching/caching_manager.dart b/lib/features/caching/caching_manager.dart index 236183908..f06dde63c 100644 --- a/lib/features/caching/caching_manager.dart +++ b/lib/features/caching/caching_manager.dart @@ -7,6 +7,8 @@ import 'package:tmail_ui_user/features/caching/state_cache_client.dart'; import 'package:tmail_ui_user/features/mailbox/data/model/state_type.dart'; import 'package:tmail_ui_user/features/push_notification/data/local/fcm_cache_manager.dart'; +import 'config/hive_cache_config.dart'; + class CachingManager { final MailboxCacheClient _mailboxCacheClient; final StateCacheClient _stateCacheClient; @@ -25,25 +27,14 @@ class CachingManager { ); Future clearAll() async { - if (kIsWeb) { - await Future.wait([ - _stateCacheClient.clearAllData(), - _mailboxCacheClient.clearAllData(), - _emailCacheClient.clearAllData(), - _recentSearchCacheClient.clearAllData(), - _accountCacheClient.clearAllData(), - _fcmCacheManager.clearAllStateToRefresh() - ]); - } else { - await Future.wait([ - _stateCacheClient.deleteBox(), - _mailboxCacheClient.deleteBox(), - _emailCacheClient.deleteBox(), - _recentSearchCacheClient.deleteBox(), - _accountCacheClient.deleteBox(), - _fcmCacheManager.clearAllStateToRefresh() - ]); - } + await Future.wait([ + _stateCacheClient.clearAllData(), + _mailboxCacheClient.clearAllData(), + _emailCacheClient.clearAllData(), + _recentSearchCacheClient.clearAllData(), + _accountCacheClient.clearAllData(), + _fcmCacheManager.clearAllStateToRefresh() + ]); } Future cleanEmailCache() async { @@ -59,4 +50,8 @@ class CachingManager { ]); } } + + Future closeHive() async { + return await HiveCacheConfig().closeHive(); + } }