From d252479d1960b387c2d5d9df0e77d96da684f478 Mon Sep 17 00:00:00 2001 From: Dat PHAM HOANG Date: Fri, 3 Mar 2023 12:15:26 +0700 Subject: [PATCH] Remove unnecessary local bindings when global binding did --- .../email/presentation/email_bindings.dart | 21 +----- .../home/presentation/home_bindings.dart | 13 ---- .../home/presentation/home_controller.dart | 30 +++----- .../login/presentation/login_bindings.dart | 6 -- .../login/presentation/login_controller.dart | 15 ++-- .../bindings/mailbox_dashboard_bindings.dart | 6 +- .../mailbox_dashboard_controller.dart | 2 - .../manage_account_dashboard_bindings.dart | 4 -- .../manage_account_dashboard_controller.dart | 2 - .../menu/manage_account_menu_controller.dart | 4 -- .../menu/manage_account_menu_view.dart | 5 +- .../controller/fcm_controller.dart | 7 +- .../presentation/session_controller.dart | 25 +++---- .../presentation/session_page_bindings.dart | 22 ------ .../thread/presentation/thread_bindings.dart | 2 - .../presentation/thread_controller.dart | 3 - .../credential/credential_bindings.dart | 71 ++++++++++++++++--- 17 files changed, 90 insertions(+), 148 deletions(-) diff --git a/lib/features/email/presentation/email_bindings.dart b/lib/features/email/presentation/email_bindings.dart index 03c3db6b1..a44c67e64 100644 --- a/lib/features/email/presentation/email_bindings.dart +++ b/lib/features/email/presentation/email_bindings.dart @@ -16,22 +16,15 @@ import 'package:tmail_ui_user/features/email/domain/usecases/export_attachment_i import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/get_stored_email_state_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart'; -import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart'; -import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart'; +import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart'; +import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart'; import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; -import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart'; -import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart'; import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart'; import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart'; -import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart'; -import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart'; -import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart'; import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; -import 'package:tmail_ui_user/features/login/data/network/oidc_http_client.dart'; import 'package:tmail_ui_user/features/login/data/repository/account_repository_impl.dart'; -import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart'; import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart'; @@ -75,7 +68,6 @@ class EmailBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); } @override @@ -98,13 +90,6 @@ class EmailBindings extends BaseBindings { Get.find(), Get.find())); Get.lazyPut(() => StateDataSourceImpl(Get.find(), Get.find())); - Get.lazyPut(() => AuthenticationOIDCDataSourceImpl( - Get.find(), - Get.find(), - Get.find(), - Get.find(), - Get.find(), - )); } @override @@ -144,7 +129,6 @@ class EmailBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); } @override @@ -162,6 +146,5 @@ class EmailBindings extends BaseBindings { Get.find() )); Get.lazyPut(() => AccountRepositoryImpl(Get.find())); - Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find())); } } \ No newline at end of file diff --git a/lib/features/home/presentation/home_bindings.dart b/lib/features/home/presentation/home_bindings.dart index 1b27ced35..300cd9dd5 100644 --- a/lib/features/home/presentation/home_bindings.dart +++ b/lib/features/home/presentation/home_bindings.dart @@ -1,7 +1,6 @@ import 'package:core/core.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/base_bindings.dart'; -import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/cleanup/data/datasource/cleanup_datasource.dart'; import 'package:tmail_ui_user/features/cleanup/data/datasource_impl/cleanup_datasource_impl.dart'; import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_url_cache_manager.dart'; @@ -22,7 +21,6 @@ import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.da import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart'; -import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; import 'package:tmail_ui_user/features/login/data/network/oidc_http_client.dart'; import 'package:tmail_ui_user/features/login/data/repository/account_repository_impl.dart'; import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart'; @@ -30,13 +28,10 @@ import 'package:tmail_ui_user/features/login/domain/repository/account_repositor import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/check_oidc_is_available_interactor.dart'; -import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart'; -import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_token_oidc_interactor.dart'; import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart'; -import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart'; import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; import 'package:tmail_ui_user/main/utils/email_receive_manager.dart'; @@ -48,16 +43,11 @@ class HomeBindings extends BaseBindings { Get.lazyPut(() => HomeController( Get.find(), Get.find(), - Get.find(), - Get.find(tag: BindingTag.isolateTag), Get.find(), Get.find(), Get.find(), Get.find(), Get.find(), - Get.find(), - Get.find(), - Get.find(), Get.find(), )); } @@ -105,9 +95,6 @@ class HomeBindings extends BaseBindings { Get.lazyPut(() => CleanupRecentSearchCacheInteractor(Get.find())); Get.lazyPut(() => CleanupRecentLoginUrlCacheInteractor(Get.find())); Get.lazyPut(() => CleanupRecentLoginUsernameCacheInteractor(Get.find())); - Get.lazyPut(() => DeleteAuthorityOidcInteractor( - Get.find(), - Get.find())); Get.lazyPut(() => CheckOIDCIsAvailableInteractor(Get.find())); } diff --git a/lib/features/home/presentation/home_controller.dart b/lib/features/home/presentation/home_controller.dart index 4b76ed68a..47ff9ec2a 100644 --- a/lib/features/home/presentation/home_controller.dart +++ b/lib/features/home/presentation/home_controller.dart @@ -7,7 +7,6 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/model.dart'; import 'package:receive_sharing_intent/receive_sharing_intent.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; -import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart'; import 'package:tmail_ui_user/features/cleanup/domain/model/cleanup_rule.dart'; import 'package:tmail_ui_user/features/cleanup/domain/model/email_cleanup_rule.dart'; @@ -18,13 +17,10 @@ import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_email_cac import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_login_url_cache_interactor.dart'; import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_login_username_interactor.dart'; import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_search_cache_interactor.dart'; -import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; import 'package:tmail_ui_user/features/login/domain/state/check_oidc_is_available_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/check_oidc_is_available_interactor.dart'; -import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart'; -import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart'; 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'; @@ -36,31 +32,21 @@ import 'package:tmail_ui_user/main/utils/email_receive_manager.dart'; class HomeController extends BaseController { final GetAuthenticatedAccountInteractor _getAuthenticatedAccountInteractor; final DynamicUrlInterceptors _dynamicUrlInterceptors; - final AuthorizationInterceptors _authorizationInterceptors; - final AuthorizationInterceptors _authorizationIsolateInterceptors; final CleanupEmailCacheInteractor _cleanupEmailCacheInteractor; final EmailReceiveManager _emailReceiveManager; final CleanupRecentSearchCacheInteractor _cleanupRecentSearchCacheInteractor; final CleanupRecentLoginUrlCacheInteractor _cleanupRecentLoginUrlCacheInteractor; final CleanupRecentLoginUsernameCacheInteractor _cleanupRecentLoginUsernameCacheInteractor; - final DeleteCredentialInteractor _deleteCredentialInteractor; - final CachingManager _cachingManager; - final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor; final CheckOIDCIsAvailableInteractor _checkOIDCIsAvailableInteractor; HomeController( this._getAuthenticatedAccountInteractor, this._dynamicUrlInterceptors, - this._authorizationInterceptors, - this._authorizationIsolateInterceptors, this._cleanupEmailCacheInteractor, this._emailReceiveManager, this._cleanupRecentSearchCacheInteractor, this._cleanupRecentLoginUrlCacheInteractor, this._cleanupRecentLoginUsernameCacheInteractor, - this._deleteCredentialInteractor, - this._cachingManager, - this._deleteAuthorityOidcInteractor, this._checkOIDCIsAvailableInteractor, ); @@ -91,7 +77,7 @@ class HomeController extends BaseController { static void downloadCallback(String id, DownloadTaskStatus status, int progress) {} void _cleanupCache() async { - await HiveCacheConfig().onUpgradeDatabase(_cachingManager); + await HiveCacheConfig().onUpgradeDatabase(cachingManager); await Future.wait([ _cleanupEmailCacheInteractor.execute(EmailCleanupRule(Duration.defaultCacheInternal)), @@ -169,9 +155,9 @@ class HomeController extends BaseController { void _clearAllCacheAndCredential() async { await Future.wait([ - _deleteCredentialInteractor.execute(), - _deleteAuthorityOidcInteractor.execute(), - _cachingManager.clearAll() + deleteCredentialInteractor.execute(), + deleteAuthorityOidcInteractor.execute(), + cachingManager.clearAll() ]).then((value) { if (BuildUtils.isWeb) { _checkOIDCIsAvailable(); @@ -198,10 +184,10 @@ class HomeController extends BaseController { void _goToSessionWithTokenOidc(GetStoredTokenOidcSuccess storedTokenOidcSuccess) { _dynamicUrlInterceptors.changeBaseUrl(storedTokenOidcSuccess.baseUrl.toString()); - _authorizationInterceptors.setTokenAndAuthorityOidc( + authorizationInterceptors.setTokenAndAuthorityOidc( newToken: storedTokenOidcSuccess.tokenOidc.toToken(), newConfig: storedTokenOidcSuccess.oidcConfiguration); - _authorizationIsolateInterceptors.setTokenAndAuthorityOidc( + authorizationIsolateInterceptors.setTokenAndAuthorityOidc( newToken: storedTokenOidcSuccess.tokenOidc.toToken(), newConfig: storedTokenOidcSuccess.oidcConfiguration); pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); @@ -209,11 +195,11 @@ class HomeController extends BaseController { void _goToSessionWithBasicAuth(GetCredentialViewState credentialViewState) { _dynamicUrlInterceptors.changeBaseUrl(credentialViewState.baseUrl.origin); - _authorizationInterceptors.setBasicAuthorization( + authorizationInterceptors.setBasicAuthorization( credentialViewState.userName.userName, credentialViewState.password.value, ); - _authorizationIsolateInterceptors.setBasicAuthorization( + authorizationIsolateInterceptors.setBasicAuthorization( credentialViewState.userName.userName, credentialViewState.password.value, ); diff --git a/lib/features/login/presentation/login_bindings.dart b/lib/features/login/presentation/login_bindings.dart index af3979e0d..982aef4f6 100644 --- a/lib/features/login/presentation/login_bindings.dart +++ b/lib/features/login/presentation/login_bindings.dart @@ -64,8 +64,6 @@ class LoginBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), - Get.find(), - Get.find(tag: BindingTag.isolateTag), Get.find(), Get.find(), Get.find(), @@ -113,10 +111,6 @@ class LoginBindings extends BaseBindings { @override void bindingsInteractor() { - Get.lazyPut(() => LogoutOidcInteractor( - Get.find(), - Get.find(), - )); Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.find(), Get.find()) diff --git a/lib/features/login/presentation/login_controller.dart b/lib/features/login/presentation/login_controller.dart index 56ffa5c9a..7ac9f62a2 100644 --- a/lib/features/login/presentation/login_controller.dart +++ b/lib/features/login/presentation/login_controller.dart @@ -16,7 +16,6 @@ import 'package:model/oidc/request/oidc_request.dart'; import 'package:model/oidc/response/oidc_response.dart'; import 'package:model/oidc/token_oidc.dart'; import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart'; -import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; import 'package:tmail_ui_user/features/login/domain/model/recent_login_url.dart'; import 'package:tmail_ui_user/features/login/domain/model/recent_login_username.dart'; import 'package:tmail_ui_user/features/login/domain/state/authenticate_oidc_on_browser_state.dart'; @@ -59,8 +58,6 @@ class LoginController extends ReloadableController { final AuthenticationInteractor _authenticationInteractor; final DynamicUrlInterceptors _dynamicUrlInterceptors; - final AuthorizationInterceptors _authorizationInterceptors; - final AuthorizationInterceptors _authorizationIsolateInterceptors; final CheckOIDCIsAvailableInteractor _checkOIDCIsAvailableInteractor; final GetOIDCIsAvailableInteractor _getOIDCIsAvailableInteractor; final GetOIDCConfigurationInteractor _getOIDCConfigurationInteractor; @@ -85,8 +82,6 @@ class LoginController extends ReloadableController { UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor, this._authenticationInteractor, this._dynamicUrlInterceptors, - this._authorizationInterceptors, - this._authorizationIsolateInterceptors, this._checkOIDCIsAvailableInteractor, this._getOIDCIsAvailableInteractor, this._getOIDCConfigurationInteractor, @@ -99,8 +94,6 @@ class LoginController extends ReloadableController { this._saveLoginUsernameOnMobileInteractor, this._getAllRecentLoginUsernameOnMobileInteractor, ) : super( - logoutOidcInteractor, - deleteAuthorityOidcInteractor, getAuthenticatedAccountInteractor, updateAuthenticationAccountInteractor ); @@ -314,10 +307,10 @@ class LoginController extends ReloadableController { log('LoginController::_getTokenOIDCSuccess(): ${success.tokenOIDC.toString()}'); loginState.value = LoginState(Right(success)); _dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText); - _authorizationInterceptors.setTokenAndAuthorityOidc( + authorizationInterceptors.setTokenAndAuthorityOidc( newToken: success.tokenOIDC.toToken(), newConfig: success.configuration); - _authorizationIsolateInterceptors.setTokenAndAuthorityOidc( + authorizationIsolateInterceptors.setTokenAndAuthorityOidc( newToken: success.tokenOIDC.toToken(), newConfig: success.configuration); pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); @@ -330,8 +323,8 @@ class LoginController extends ReloadableController { void _loginSuccessAction(AuthenticationUserSuccess success) { loginState.value = LoginState(Right(success)); _dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText); - _authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText); - _authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText); + authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText); + authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText); pushAndPop(AppRoutes.session, arguments: _dynamicUrlInterceptors.baseUrl); } diff --git a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart index 733144919..e2418b1e4 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -58,9 +58,9 @@ import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.d import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/search_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/session_storage_composer_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/search_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/session_storage_composer_datasoure_impl.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart'; @@ -242,10 +242,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.find(), Get.find()) ); - Get.lazyPut(() => LogoutOidcInteractor( - Get.find(), - Get.find(), - )); Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.find(), Get.find())); diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index fe29546f9..549861306 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -201,8 +201,6 @@ class MailboxDashBoardController extends ReloadableController { this._deleteMultipleEmailsPermanentlyInteractor, this._getEmailByIdInteractor, ) : super( - logoutOidcInteractor, - deleteAuthorityOidcInteractor, getAuthenticatedAccountInteractor, updateAuthenticationAccountInteractor ); diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart index fb55c1fbd..b6a20c910 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart @@ -80,10 +80,6 @@ class ManageAccountDashBoardBindings extends BaseBindings { @override void bindingsInteractor() { - Get.lazyPut(() => LogoutOidcInteractor( - Get.find(), - Get.find(), - )); Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.find(), Get.find())); diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart index 3f644af85..45d703d42 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart @@ -62,8 +62,6 @@ class ManageAccountDashBoardController extends ReloadableController { GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor, UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor ) : super( - logoutOidcInteractor, - deleteAuthorityOidcInteractor, getAuthenticatedAccountInteractor, updateAuthenticationAccountInteractor ); diff --git a/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart b/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart index adb797201..e9bef42ca 100644 --- a/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart +++ b/lib/features/manage_account/presentation/menu/manage_account_menu_controller.dart @@ -70,8 +70,4 @@ class ManageAccountMenuController extends BaseController { void backToMailboxDashBoard(BuildContext context) { dashBoardController.backToMailboxDashBoard(context); } - - void logout(){ - dashBoardController.logout(dashBoardController.sessionCurrent.value, dashBoardController.accountId.value); - } } \ No newline at end of file diff --git a/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart b/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart index 509336a13..528f29790 100644 --- a/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart +++ b/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart @@ -98,7 +98,10 @@ class ManageAccountMenuView extends GetWidget { Padding(padding: const EdgeInsets.only(left: 32), child: InkWell( onTap: () { - controller.logout(); + controller.logout( + controller.dashBoardController.sessionCurrent.value, + controller.dashBoardController.accountId.value + ); }, child: Row(children: [ SvgPicture.asset(_imagePaths.icSignOut, fit: BoxFit.fill), diff --git a/lib/features/push_notification/presentation/controller/fcm_controller.dart b/lib/features/push_notification/presentation/controller/fcm_controller.dart index da59c1d32..637a67860 100644 --- a/lib/features/push_notification/presentation/controller/fcm_controller.dart +++ b/lib/features/push_notification/presentation/controller/fcm_controller.dart @@ -18,7 +18,6 @@ import 'package:tmail_ui_user/features/base/action/ui_action.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart'; import 'package:tmail_ui_user/features/home/presentation/home_bindings.dart'; -import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_authenticated_account_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart'; @@ -42,7 +41,6 @@ class FcmController extends BaseController { GetAuthenticatedAccountInteractor? _getAuthenticatedAccountInteractor; DynamicUrlInterceptors? _dynamicUrlInterceptors; - AuthorizationInterceptors? _authorizationInterceptors; FcmController._internal() { _listenFcmStream(); @@ -187,7 +185,6 @@ class FcmController extends BaseController { try { _getAuthenticatedAccountInteractor = getBinding(); _dynamicUrlInterceptors = getBinding(); - _authorizationInterceptors = getBinding(); FcmTokenHandler.instance.initialize(); } catch (e) { logError('FcmController::_getBindings(): ${e.toString()}'); @@ -228,7 +225,7 @@ class FcmController extends BaseController { void _handleGetAccountByOidcSuccess(GetStoredTokenOidcSuccess storedTokenOidcSuccess) { log('FcmController::_handleGetAccountByOidcSuccess():'); - _authorizationInterceptors?.setTokenAndAuthorityOidc( + authorizationInterceptors.setTokenAndAuthorityOidc( newToken: storedTokenOidcSuccess.tokenOidc.toToken(), newConfig: storedTokenOidcSuccess.oidcConfiguration ); @@ -237,7 +234,7 @@ class FcmController extends BaseController { void _handleGetAccountByBasicAuthSuccess(GetCredentialViewState credentialViewState) { log('FcmController::_handleGetAccountByBasicAuthSuccess():'); - _authorizationInterceptors?.setBasicAuthorization( + authorizationInterceptors.setBasicAuthorization( credentialViewState.userName.userName, credentialViewState.password.value, ); diff --git a/lib/features/session/presentation/session_controller.dart b/lib/features/session/presentation/session_controller.dart index 2c0802d89..86bb257ec 100644 --- a/lib/features/session/presentation/session_controller.dart +++ b/lib/features/session/presentation/session_controller.dart @@ -1,14 +1,12 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/utils/app_toast.dart'; +import 'package:core/utils/app_logger.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart'; -import 'package:tmail_ui_user/features/caching/caching_manager.dart'; -import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart'; -import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/update_authentication_account_interactor.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; @@ -23,10 +21,6 @@ import 'package:tmail_ui_user/main/routes/route_utils.dart'; class SessionController extends ReloadableController { final GetSessionInteractor _getSessionInteractor; - final DeleteCredentialInteractor _deleteCredentialInteractor; - final CachingManager _cachingManager; - final DeleteAuthorityOidcInteractor _deleteAuthorityOidcInteractor; - final AuthorizationInterceptors _authorizationInterceptors; final AppToast _appToast; final DynamicUrlInterceptors _dynamicUrlInterceptors; @@ -36,15 +30,9 @@ class SessionController extends ReloadableController { GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor, UpdateAuthenticationAccountInteractor updateAuthenticationAccountInteractor, this._getSessionInteractor, - this._deleteCredentialInteractor, - this._cachingManager, - this._deleteAuthorityOidcInteractor, - this._authorizationInterceptors, this._appToast, this._dynamicUrlInterceptors, ) : super( - logoutOidcInteractor, - deleteAuthorityOidcInteractor, getAuthenticatedAccountInteractor, updateAuthenticationAccountInteractor ); @@ -80,10 +68,13 @@ class SessionController extends ReloadableController { } void _handleSessionFailure(Failure failure) { + log('SessionController::_handleSessionFailure(): $failure'); if (failure is GetSessionFailure) { final sessionException = failure.exception; if (_checkUrlError(sessionException) && currentContext != null) { _appToast.showErrorToast(AppLocalizations.of(currentContext!).wrongUrlMessage); + } else if (sessionException is BadCredentialsException && currentContext != null) { + _appToast.showErrorToast(AppLocalizations.of(currentContext!).badCredentials); } else if (sessionException is UnknownError && currentContext != null) { if (sessionException.message != null) { _appToast.showErrorToast('[${sessionException.code}] ${sessionException.message}'); @@ -100,11 +91,11 @@ class SessionController extends ReloadableController { void _goToLogin() async { await Future.wait([ - _deleteCredentialInteractor.execute(), - _deleteAuthorityOidcInteractor.execute(), - _cachingManager.clearAll() + deleteCredentialInteractor.execute(), + deleteAuthorityOidcInteractor.execute(), + cachingManager.clearAll() ]); - _authorizationInterceptors.clear(); + authorizationInterceptors.clear(); pushAndPopAll(AppRoutes.login); } diff --git a/lib/features/session/presentation/session_page_bindings.dart b/lib/features/session/presentation/session_page_bindings.dart index a9b791d57..a2ff3d886 100644 --- a/lib/features/session/presentation/session_page_bindings.dart +++ b/lib/features/session/presentation/session_page_bindings.dart @@ -2,24 +2,17 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/base_bindings.dart'; -import 'package:tmail_ui_user/features/caching/caching_manager.dart'; -import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart'; -import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart'; -import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart'; -import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart'; import 'package:tmail_ui_user/features/login/data/network/oidc_http_client.dart'; -import 'package:tmail_ui_user/features/login/data/repository/account_repository_impl.dart'; import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart'; import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart'; -import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_token_oidc_interactor.dart'; @@ -27,7 +20,6 @@ import 'package:tmail_ui_user/features/login/domain/usecases/update_authenticati import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; import 'package:tmail_ui_user/features/session/domain/usecases/get_session_interactor.dart'; import 'package:tmail_ui_user/features/session/presentation/session_controller.dart'; -import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart'; import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; class SessionPageBindings extends BaseBindings { @@ -40,10 +32,6 @@ class SessionPageBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), - Get.find(), - Get.find(), - Get.find(), - Get.find(), Get.find(), Get.find(), )); @@ -52,7 +40,6 @@ class SessionPageBindings extends BaseBindings { @override void bindingsDataSource() { Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); } @override @@ -64,9 +51,6 @@ class SessionPageBindings extends BaseBindings { Get.find(), Get.find(), )); - Get.lazyPut(() => HiveAccountDatasourceImpl( - Get.find(), - Get.find())); } @override @@ -74,10 +58,6 @@ class SessionPageBindings extends BaseBindings { Get.lazyPut(() => DeleteAuthorityOidcInteractor( Get.find(), Get.find())); - Get.lazyPut(() => LogoutOidcInteractor( - Get.find(), - Get.find(), - )); Get.lazyPut(() => GetStoredTokenOidcInteractor( Get.find(), Get.find(), @@ -93,12 +73,10 @@ class SessionPageBindings extends BaseBindings { @override void bindingsRepository() { Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); } @override void bindingsRepositoryImpl() { Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find())); - Get.lazyPut(() => AccountRepositoryImpl(Get.find())); } } \ No newline at end of file diff --git a/lib/features/thread/presentation/thread_bindings.dart b/lib/features/thread/presentation/thread_bindings.dart index 4f5288245..4ff0b474f 100644 --- a/lib/features/thread/presentation/thread_bindings.dart +++ b/lib/features/thread/presentation/thread_bindings.dart @@ -1,7 +1,6 @@ import 'package:core/data/model/source_type/data_source_type.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/base_bindings.dart'; -import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/caching/state_cache_client.dart'; import 'package:tmail_ui_user/features/mailbox/data/datasource/state_datasource.dart'; import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/state_datasource_impl.dart'; @@ -33,7 +32,6 @@ class ThreadBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), - Get.find(), Get.find(), )); } diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index 531036ba0..99f1a276a 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -20,7 +20,6 @@ import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:model/model.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; -import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart'; import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart'; import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart'; @@ -81,7 +80,6 @@ class ThreadController extends BaseController with EmailActionController { final LoadMoreEmailsInMailboxInteractor _loadMoreEmailsInMailboxInteractor; final SearchEmailInteractor _searchEmailInteractor; final SearchMoreEmailInteractor _searchMoreEmailInteractor; - final CachingManager _cachingManager; final GetEmailByIdInteractor _getEmailByIdInteractor; final listEmailDrag = [].obs; @@ -122,7 +120,6 @@ class ThreadController extends BaseController with EmailActionController { this._loadMoreEmailsInMailboxInteractor, this._searchEmailInteractor, this._searchMoreEmailInteractor, - this._cachingManager, this._getEmailByIdInteractor, ); diff --git a/lib/main/bindings/credential/credential_bindings.dart b/lib/main/bindings/credential/credential_bindings.dart index 7f64e99de..2b8cf2061 100644 --- a/lib/main/bindings/credential/credential_bindings.dart +++ b/lib/main/bindings/credential/credential_bindings.dart @@ -1,32 +1,83 @@ import 'package:get/get.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:tmail_ui_user/features/base/base_bindings.dart'; +import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; +import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart'; +import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart'; +import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart'; +import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart'; import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart'; +import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart'; +import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart'; +import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart'; +import 'package:tmail_ui_user/features/login/data/network/oidc_http_client.dart'; +import 'package:tmail_ui_user/features/login/data/repository/account_repository_impl.dart'; +import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart'; import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart'; +import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart'; +import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart'; +import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart'; +import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; +import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart'; +import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart'; -class CredentialBindings extends Bindings { - +class CredentialBindings extends BaseBindings { @override - void dependencies() { - bindingsRepositoryImpl(); - bindingsRepository(); - bindingsInteractor(); - } - void bindingsInteractor() { Get.put(GetCredentialInteractor(Get.find())); Get.put(DeleteCredentialInteractor(Get.find())); + Get.lazyPut(() => LogoutOidcInteractor( + Get.find(), + Get.find(), + )); + Get.lazyPut(() => DeleteAuthorityOidcInteractor( + Get.find(), + Get.find()) + ); } + @override + void bindingsDataSourceImpl() { + Get.lazyPut(() => HiveAccountDatasourceImpl( + Get.find(), + Get.find()) + ); + Get.lazyPut(() => AuthenticationOIDCDataSourceImpl( + Get.find(), + Get.find(), + Get.find(), + Get.find(), + Get.find(), + )); + } + + @override + void bindingsDataSource() { + Get.lazyPut(() => Get.find()); + Get.lazyPut(() => Get.find()); + } + + @override void bindingsRepository() { Get.put(Get.find()); + Get.lazyPut(() => Get.find()); + Get.lazyPut(() => Get.find()); } + @override void bindingsRepositoryImpl() { Get.put(CredentialRepositoryImpl( - Get.find(), - Get.find())); + Get.find(), + Get.find()) + ); + Get.lazyPut(() => AccountRepositoryImpl(Get.find())); + Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find())); + } + + @override + void bindingsController() { } } \ No newline at end of file