From 915498a890e5ff79c8a0571c743d285d1b250c3c Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 8 Jul 2022 15:23:17 +0700 Subject: [PATCH] TF-297 Remove language selected when logout --- .../base/reloadable/reloadable_controller.dart | 5 +++++ .../data/local/language_cache_manager.dart | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/features/base/reloadable/reloadable_controller.dart b/lib/features/base/reloadable/reloadable_controller.dart index 7cba8ef04..a63ffcc93 100644 --- a/lib/features/base/reloadable/reloadable_controller.dart +++ b/lib/features/base/reloadable/reloadable_controller.dart @@ -18,6 +18,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_i import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart'; import 'package:tmail_ui_user/features/login/presentation/login_form_type.dart'; import 'package:tmail_ui_user/features/login/presentation/model/login_arguments.dart'; +import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart'; import 'package:tmail_ui_user/features/manage_account/domain/state/log_out_oidc_state.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; import 'package:tmail_ui_user/features/session/domain/state/get_session_state.dart'; @@ -31,6 +32,7 @@ abstract class ReloadableController extends BaseController { final GetSessionInteractor _getSessionInteractor = Get.find(); final DeleteCredentialInteractor _deleteCredentialInteractor = Get.find(); final CachingManager _cachingManager = Get.find(); + final _languageCacheManager = Get.find(); final LogoutOidcInteractor _logoutOidcInteractor; final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor; @@ -108,6 +110,7 @@ abstract class ReloadableController extends BaseController { _deleteCredentialInteractor.execute(), _deleteAuthorityOidcInteractor.execute(), _cachingManager.clearAll(), + _languageCacheManager.removeLanguage(), ]); final authenticationType = _authorizationInterceptors.authenticationType; if (authenticationType == AuthenticationType.oidc) { @@ -131,6 +134,7 @@ abstract class ReloadableController extends BaseController { await Future.wait([ _deleteCredentialInteractor.execute(), _cachingManager.clearAll(), + _languageCacheManager.removeLanguage(), ]); _authorizationInterceptors.clear(); await HiveCacheConfig().closeHive(); @@ -144,6 +148,7 @@ abstract class ReloadableController extends BaseController { _deleteCredentialInteractor.execute(), _deleteAuthorityOidcInteractor.execute(), _cachingManager.clearAll(), + _languageCacheManager.removeLanguage(), ]); _authorizationInterceptors.clear(); await HiveCacheConfig().closeHive(); diff --git a/lib/features/manage_account/data/local/language_cache_manager.dart b/lib/features/manage_account/data/local/language_cache_manager.dart index 7aa3f5782..101829673 100644 --- a/lib/features/manage_account/data/local/language_cache_manager.dart +++ b/lib/features/manage_account/data/local/language_cache_manager.dart @@ -1,6 +1,7 @@ import 'dart:ui'; +import 'package:core/utils/app_logger.dart'; import 'package:shared_preferences/shared_preferences.dart'; class LanguageCacheManager { @@ -27,4 +28,16 @@ class LanguageCacheManager { } return null; } + + Future removeLanguage() async { + return Future.sync(() async { + await Future.wait([ + _sharedPreferences.remove(keyLanguageCode), + _sharedPreferences.remove(keyCountryCode) + ]); + }).catchError((error) { + log('LanguageCacheManager::removeLanguage(): error: $error'); + return null; + }); + } } \ No newline at end of file