From 00c37870b101c3c46d29e2b6e8e3d6a0822994d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ms=20Thu=E1=BB=B7?= Date: Mon, 24 Oct 2022 17:42:43 +0700 Subject: [PATCH] TF-1068 binding & extension --- .../home/presentation/home_bindings.dart | 2 ++ .../list_recent_login_username_extension.dart | 12 ++++++++++ .../login/presentation/login_bindings.dart | 23 +++++++++++++++++++ lib/main/bindings/local/local_bindings.dart | 4 ++++ 4 files changed, 41 insertions(+) create mode 100644 lib/features/login/domain/extensions/list_recent_login_username_extension.dart diff --git a/lib/features/home/presentation/home_bindings.dart b/lib/features/home/presentation/home_bindings.dart index 856a5edd3..a73d78ec7 100644 --- a/lib/features/home/presentation/home_bindings.dart +++ b/lib/features/home/presentation/home_bindings.dart @@ -5,6 +5,7 @@ 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'; +import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_username_cache_manager.dart'; import 'package:tmail_ui_user/features/cleanup/data/local/recent_search_cache_manager.dart'; import 'package:tmail_ui_user/features/cleanup/data/repository/cleanup_repository_impl.dart'; import 'package:tmail_ui_user/features/cleanup/domain/repository/cleanup_repository.dart'; @@ -70,6 +71,7 @@ class HomeBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), + Get.find(), )); Get.lazyPut(() => HiveAccountDatasourceImpl( Get.find() diff --git a/lib/features/login/domain/extensions/list_recent_login_username_extension.dart b/lib/features/login/domain/extensions/list_recent_login_username_extension.dart new file mode 100644 index 000000000..0cdf0ea4d --- /dev/null +++ b/lib/features/login/domain/extensions/list_recent_login_username_extension.dart @@ -0,0 +1,12 @@ + +import 'package:jmap_dart_client/jmap/core/extensions/date_time_extension.dart'; +import 'package:tmail_ui_user/features/login/domain/model/recent_login_username.dart'; + +extension ListRecentLoginUsernameExtension on List { + + void sortByCreationDate() { + sort((recentUsername1, recentUsername2) { + return recentUsername1.creationDate.compareToSort(recentUsername2.creationDate, false); + }); + } +} \ No newline at end of file diff --git a/lib/features/login/presentation/login_bindings.dart b/lib/features/login/presentation/login_bindings.dart index bf0364a85..5ee4dc84f 100644 --- a/lib/features/login/presentation/login_bindings.dart +++ b/lib/features/login/presentation/login_bindings.dart @@ -2,14 +2,17 @@ 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/recent_login_url_cache_client.dart'; +import 'package:tmail_ui_user/features/caching/recent_login_username_cache_client.dart'; import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource/authentication_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource/login_url_datasource.dart'; +import 'package:tmail_ui_user/features/login/data/datasource/login_username_datasource.dart'; import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_datasource_impl.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/datasource_impl/login_url_datasource_impl.dart'; +import 'package:tmail_ui_user/features/login/data/datasource_impl/login_username_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'; @@ -20,20 +23,24 @@ import 'package:tmail_ui_user/features/login/data/repository/account_repository_ import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart'; import 'package:tmail_ui_user/features/login/data/repository/authentication_repository_impl.dart'; import 'package:tmail_ui_user/features/login/data/repository/login_url_repository_impl.dart'; +import 'package:tmail_ui_user/features/login/data/repository/login_username_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/authentication_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart'; import 'package:tmail_ui_user/features/login/domain/repository/login_url_repository.dart'; +import 'package:tmail_ui_user/features/login/domain/repository/login_username_repository.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/authenticate_oidc_on_browser_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/authentication_user_interactor.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/get_all_recent_login_url_on_mobile_interactor.dart'; +import 'package:tmail_ui_user/features/login/domain/usecases/get_all_recent_login_username_on_mobile_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_authentication_info_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_oidc_configuration_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_oidc_configuration_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_token_oidc_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/save_login_url_on_mobile_interactor.dart'; +import 'package:tmail_ui_user/features/login/domain/usecases/save_login_username_on_mobile_interactor.dart'; import 'package:tmail_ui_user/features/login/presentation/login_controller.dart'; import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart'; @@ -54,6 +61,8 @@ class LoginBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), + Get.find(), + Get.find(), )); } @@ -63,6 +72,8 @@ class LoginBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); + Get.lazyPut(() => Get.find()); + } @override @@ -80,6 +91,9 @@ class LoginBindings extends BaseBindings { Get.lazyPut(() => LoginUrlDataSourceImpl( Get.find() )); + Get.lazyPut(() => LoginUsernameDataSourceImpl( + Get.find() + )); } @override @@ -113,6 +127,12 @@ class LoginBindings extends BaseBindings { Get.find(), )); Get.lazyPut(() => GetAllRecentLoginUrlOnMobileInteractor(Get.find())); + Get.lazyPut(() => SaveLoginUsernameOnMobileInteractor( + Get.find(), + )); + Get.lazyPut(() => GetAllRecentLoginUsernameOnMobileInteractor( + Get.find() + )); } @override @@ -121,6 +141,8 @@ class LoginBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); + Get.lazyPut(() => Get.find()); + } @override @@ -129,5 +151,6 @@ class LoginBindings extends BaseBindings { Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find())); Get.lazyPut(() => AccountRepositoryImpl(Get.find())); Get.lazyPut(() => LoginUrlRepositoryImpl(Get.find())); + Get.lazyPut(() => LoginUsernameRepositoryImpl(Get.find())); } } \ No newline at end of file diff --git a/lib/main/bindings/local/local_bindings.dart b/lib/main/bindings/local/local_bindings.dart index 6d262007f..2c1ade7ad 100644 --- a/lib/main/bindings/local/local_bindings.dart +++ b/lib/main/bindings/local/local_bindings.dart @@ -8,10 +8,12 @@ import 'package:tmail_ui_user/features/caching/email_cache_client.dart'; import 'package:tmail_ui_user/features/caching/encryption_key_cache_client.dart'; import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart'; import 'package:tmail_ui_user/features/caching/recent_login_url_cache_client.dart'; +import 'package:tmail_ui_user/features/caching/recent_login_username_cache_client.dart'; import 'package:tmail_ui_user/features/caching/recent_search_cache_client.dart'; import 'package:tmail_ui_user/features/caching/state_cache_client.dart'; import 'package:tmail_ui_user/features/caching/token_oidc_cache_client.dart'; import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_url_cache_manager.dart'; +import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_username_cache_manager.dart'; import 'package:tmail_ui_user/features/cleanup/data/local/recent_search_cache_manager.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'; @@ -49,6 +51,8 @@ class LocalBindings extends Bindings { Get.put(LanguageCacheManager(Get.find())); Get.put(RecentLoginUrlCacheClient()); Get.put(RecentLoginUrlCacheManager((Get.find()))); + Get.put(RecentLoginUsernameCacheClient()); + Get.put(RecentLoginUsernameCacheManager(Get.find())); Get.put(CachingManager( Get.find(), Get.find(),