diff --git a/lib/features/cleanup/domain/model/cleanup_rule.dart b/lib/features/cleanup/domain/model/cleanup_rule.dart index 26e9ce1da..3c2a4b99f 100644 --- a/lib/features/cleanup/domain/model/cleanup_rule.dart +++ b/lib/features/cleanup/domain/model/cleanup_rule.dart @@ -11,7 +11,7 @@ class CleanupRule with EquatableMixin { } class Duration with EquatableMixin { - static final defaultValue = Duration(7); + static final defaultCacheInternal = Duration(30); final int countDay; diff --git a/lib/features/home/presentation/home_bindings.dart b/lib/features/home/presentation/home_bindings.dart index adf26e136..6dca2f6ea 100644 --- a/lib/features/home/presentation/home_bindings.dart +++ b/lib/features/home/presentation/home_bindings.dart @@ -1,22 +1,34 @@ import 'package:core/core.dart'; import 'package:get/get.dart'; import 'package:shared_preferences/shared_preferences.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/repository/cleanup_repository_impl.dart'; +import 'package:tmail_ui_user/features/cleanup/domain/repository/cleanup_repository.dart'; +import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_email_cache_interactor.dart'; import 'package:tmail_ui_user/features/home/presentation/home_controller.dart'; import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart'; import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart'; +import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart'; class HomeBindings extends Bindings { @override void dependencies() { Get.lazyPut(() => CredentialRepositoryImpl(Get.find())); Get.lazyPut(() => Get.find()); - Get.lazyPut(() => GetCredentialInteractor(Get.find())); - + Get.lazyPut(() => CleanupDataSourceImpl( + Get.find(), + Get.find())); + Get.lazyPut(() => Get.find()); + Get.lazyPut(() => CleanupRepositoryImpl(Get.find())); + Get.lazyPut(() => Get.find()); + Get.lazyPut(() => CleanupEmailCacheInteractor(Get.find())); Get.lazyPut(() => HomeController( Get.find(), Get.find(), - Get.find())); + Get.find(), + Get.find())); } } \ No newline at end of file diff --git a/lib/features/home/presentation/home_controller.dart b/lib/features/home/presentation/home_controller.dart index 0e18d71e1..a17314a11 100644 --- a/lib/features/home/presentation/home_controller.dart +++ b/lib/features/home/presentation/home_controller.dart @@ -2,6 +2,8 @@ import 'package:core/core.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/cleanup/domain/model/cleanup_rule.dart'; +import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_email_cache_interactor.dart'; import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart'; import 'package:tmail_ui_user/main/routes/app_routes.dart'; @@ -11,14 +13,20 @@ class HomeController extends GetxController { final GetCredentialInteractor _getCredentialInteractor; final DynamicUrlInterceptors _dynamicUrlInterceptors; final AuthorizationInterceptors _authorizationInterceptors; + final CleanupEmailCacheInteractor _cleanupEmailCacheInteractor; - HomeController(this._getCredentialInteractor, this._dynamicUrlInterceptors, this._authorizationInterceptors); + HomeController( + this._getCredentialInteractor, + this._dynamicUrlInterceptors, + this._authorizationInterceptors, + this._cleanupEmailCacheInteractor, + ); @override void onReady() { super.onReady(); _initFlutterDownloader(); - _getCredentialAction(); + _cleanupEmailCache(); } void _initFlutterDownloader() { @@ -29,6 +37,11 @@ class HomeController extends GetxController { static void downloadCallback(String id, DownloadTaskStatus status, int progress) {} + void _cleanupEmailCache() async { + await _cleanupEmailCacheInteractor.execute(CleanupRule(Duration.defaultCacheInternal)) + .then((value) => _getCredentialAction()); + } + void _getCredentialAction() async { await _getCredentialInteractor.execute() .then((response) => response.fold(