diff --git a/lib/features/composer/presentation/composer_bindings.dart b/lib/features/composer/presentation/composer_bindings.dart index 659b01f1f..ce20cb83b 100644 --- a/lib/features/composer/presentation/composer_bindings.dart +++ b/lib/features/composer/presentation/composer_bindings.dart @@ -44,8 +44,8 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/identity_interactors_bindings.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; @@ -100,7 +100,7 @@ class ComposerBindings extends BaseBindings { Get.lazyPut(() => EmailHiveCacheDataSourceImpl( Get.find(), Get.find(), - Get.find(), + Get.find(), Get.find(), Get.find(), Get.find(), diff --git a/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart b/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart index ac7859fb1..c6bef04dc 100644 --- a/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart +++ b/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart @@ -31,8 +31,8 @@ import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_r import 'package:tmail_ui_user/features/offline_mode/extensions/list_sending_email_hive_cache_extension.dart'; import 'package:tmail_ui_user/features/offline_mode/extensions/sending_email_hive_cache_extension.dart'; import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_task.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/model/detailed_email_hive_cache.dart'; @@ -49,7 +49,7 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource { final NewEmailCacheManager _newEmailCacheManager; final OpenedEmailCacheManager _openedEmailCacheManager; - final DetailedEmailCacheWorkerQueue _cacheWorkerQueue; + final NewEmailCacheWorkerQueue _newEmailCacheWorkerQueue; final OpenedEmailCacheWorkerQueue _openedEmailCacheWorkerQueue; final EmailCacheManager _emailCacheManager; final SendingEmailCacheManager _sendingEmailCacheManager; @@ -59,7 +59,7 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource { EmailHiveCacheDataSourceImpl( this._newEmailCacheManager, this._openedEmailCacheManager, - this._cacheWorkerQueue, + this._newEmailCacheWorkerQueue, this._openedEmailCacheWorkerQueue, this._emailCacheManager, this._sendingEmailCacheManager, @@ -131,6 +131,7 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource { Future storeDetailedNewEmail(Session session, AccountId accountId, DetailedEmail detailedEmail) { return Future.sync(() async { final task = HiveTask( + id: detailedEmail.emailId.asString, runnable: () async { final fileSaved = await _fileUtils.saveToFile( nameFile: detailedEmail.emailId.asString, @@ -139,15 +140,16 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource { ); final detailedEmailSaved = detailedEmail.fromEmailContentPath(fileSaved.path); + final detailedEmailCacheSaved = detailedEmailSaved.toHiveCache(); final detailedEmailCache = await _newEmailCacheManager.storeDetailedNewEmail( accountId, session.username, - detailedEmailSaved.toHiveCache()); + detailedEmailCacheSaved); return detailedEmailCache; }); - return _cacheWorkerQueue.addTask(task); + return _newEmailCacheWorkerQueue.addTask(task); }).catchError(_exceptionThrower.throwException); } @@ -172,6 +174,7 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource { Future storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail) { return Future.sync(() async { final task = HiveTask( + id: detailedEmail.emailId.asString, runnable: () async { final fileSaved = await _fileUtils.saveToFile( nameFile: detailedEmail.emailId.asString, diff --git a/lib/features/email/domain/extensions/detailed_email_extension.dart b/lib/features/email/domain/extensions/detailed_email_extension.dart index 89a9def83..a017ab8cd 100644 --- a/lib/features/email/domain/extensions/detailed_email_extension.dart +++ b/lib/features/email/domain/extensions/detailed_email_extension.dart @@ -11,7 +11,7 @@ extension DetailedEmailExtension on DetailedEmail { DetailedEmailHiveCache toHiveCache() { return DetailedEmailHiveCache( emailId: emailId.asString, - timeSaved: DateTime.now(), + timeSaved: createdTime, attachments: attachments?.toHiveCache(), headers: headers?.toList().toHiveCache(), keywords: keywords?.toMapString(), @@ -26,6 +26,7 @@ extension DetailedEmailExtension on DetailedEmail { DetailedEmail fromEmailContentPath(String path) { return DetailedEmail( emailId: emailId, + createdTime: createdTime, attachments: attachments, headers: headers, keywords: keywords, diff --git a/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart b/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart index 4234ec6cc..2f468adcd 100644 --- a/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart +++ b/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart @@ -10,6 +10,7 @@ extension DetailedEmailHiveCacheExtension on DetailedEmailHiveCache { DetailedEmail toDetailedEmailWithContent(String emailContent) { return DetailedEmail( emailId: EmailId(Id(emailId)), + createdTime: timeSaved, attachments: attachments?.toAttachment(), headers: headers?.toSetEmailHeader(), keywords: keywords != null diff --git a/lib/features/email/domain/extensions/email_extension.dart b/lib/features/email/domain/extensions/email_extension.dart index a0f35f0f3..d5f3c151e 100644 --- a/lib/features/email/domain/extensions/email_extension.dart +++ b/lib/features/email/domain/extensions/email_extension.dart @@ -7,6 +7,7 @@ extension EmailExtension on Email { DetailedEmail toDetailedEmail({String? htmlEmailContent}) { return DetailedEmail( emailId: id!, + createdTime: DateTime.now(), attachments: allAttachments, headers: headers, keywords: keywords, diff --git a/lib/features/email/domain/model/detailed_email.dart b/lib/features/email/domain/model/detailed_email.dart index 7b29504b0..93fdfd264 100644 --- a/lib/features/email/domain/model/detailed_email.dart +++ b/lib/features/email/domain/model/detailed_email.dart @@ -11,9 +11,11 @@ class DetailedEmail with EquatableMixin { final Map? keywords; final String? htmlEmailContent; final String? emailContentPath; + final DateTime createdTime; DetailedEmail({ required this.emailId, + required this.createdTime, this.attachments, this.headers, this.keywords, @@ -24,6 +26,7 @@ class DetailedEmail with EquatableMixin { @override List get props => [ emailId, + createdTime, attachments, headers, keywords, diff --git a/lib/features/email/domain/usecases/get_email_content_interactor.dart b/lib/features/email/domain/usecases/get_email_content_interactor.dart index 7de49cdf7..b37561cfc 100644 --- a/lib/features/email/domain/usecases/get_email_content_interactor.dart +++ b/lib/features/email/domain/usecases/get_email_content_interactor.dart @@ -97,6 +97,7 @@ class GetEmailContentInteractor { } ) async* { try { + log('GetEmailContentInteractor::_getStoredOpenedEmail(): CALLED'); final detailedEmail = await emailRepository.getStoredOpenedEmail(session, accountId, emailId); yield Right(GetEmailContentFromCacheSuccess( emailContent: detailedEmail.htmlEmailContent ?? "", @@ -130,6 +131,7 @@ class GetEmailContentInteractor { } ) async* { try { + log('GetEmailContentInteractor::_getStoredNewEmail():CALLED'); final detailedEmail = await emailRepository.getStoredNewEmail(session, accountId, emailId); yield Right(GetEmailContentFromCacheSuccess( emailContent: detailedEmail.htmlEmailContent ?? "", diff --git a/lib/features/email/domain/usecases/store_new_email_interator.dart b/lib/features/email/domain/usecases/store_new_email_interator.dart index fe354fedf..51a6e0d1d 100644 --- a/lib/features/email/domain/usecases/store_new_email_interator.dart +++ b/lib/features/email/domain/usecases/store_new_email_interator.dart @@ -1,5 +1,6 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; +import 'package:core/utils/app_logger.dart'; import 'package:dartz/dartz.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; @@ -25,6 +26,7 @@ class StoreNewEmailInteractor { _emailRepository.storeEmail(session, accountId, email), _emailRepository.storeDetailedNewEmail(session, accountId, detailedEmail), ]); + log('StoreNewEmailInteractor::execute():Store Success | EMAIL: ${detailedEmail.htmlEmailContent} | TIME: ${detailedEmail.createdTime}'); yield Right(StoreNewEmailSuccess()); } catch (e) { yield Left(StoreNewEmailFailure(e)); diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index fbbfd2a50..c618fdd45 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -347,7 +347,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin { if (emailLoaded != null) { dispatchState(Right(GetEmailContentLoading())); - await Future.delayed(const Duration(milliseconds: 300)); consumeState(Stream.value(Right( GetEmailContentSuccess( emailContent: emailLoaded.emailContent, @@ -407,6 +406,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin { if (PlatformInfo.isMobile) { final detailedEmail = DetailedEmail( emailId: currentEmail!.id!, + createdTime: DateTime.now(), attachments: attachments, headers: currentEmail?.emailHeader?.toSet(), keywords: currentEmail?.keywords, diff --git a/lib/features/email/presentation/email_bindings.dart b/lib/features/email/presentation/email_bindings.dart index dd9486235..3c03de51a 100644 --- a/lib/features/email/presentation/email_bindings.dart +++ b/lib/features/email/presentation/email_bindings.dart @@ -43,8 +43,8 @@ import 'package:tmail_ui_user/features/mailbox/data/repository/mailbox_repositor import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/identity_interactors_bindings.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; @@ -103,7 +103,7 @@ class EmailBindings extends BaseBindings { Get.lazyPut(() => EmailHiveCacheDataSourceImpl( Get.find(), Get.find(), - Get.find(), + Get.find(), Get.find(), Get.find(), Get.find(), 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 cedff2665..49f8b85dd 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -94,8 +94,8 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart'; import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; @@ -250,7 +250,7 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => EmailHiveCacheDataSourceImpl( Get.find(), Get.find(), - Get.find(), + Get.find(), Get.find(), Get.find(), Get.find(), diff --git a/lib/features/offline_mode/bindings/sending_email_interactor_bindings.dart b/lib/features/offline_mode/bindings/sending_email_interactor_bindings.dart index 22cb54d38..d272d0d85 100644 --- a/lib/features/offline_mode/bindings/sending_email_interactor_bindings.dart +++ b/lib/features/offline_mode/bindings/sending_email_interactor_bindings.dart @@ -24,8 +24,8 @@ import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart'; import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart'; import 'package:tmail_ui_user/features/mailbox/data/repository/mailbox_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; @@ -65,7 +65,7 @@ class SendEmailInteractorBindings extends InteractorsBindings { Get.lazyPut(() => EmailHiveCacheDataSourceImpl( Get.find(), Get.find(), - Get.find(), + Get.find(), Get.find(), Get.find(), Get.find(), diff --git a/lib/features/offline_mode/manager/detailed_email_cache_worker_queue.dart b/lib/features/offline_mode/manager/detailed_email_cache_worker_queue.dart deleted file mode 100644 index 03b0d0f88..000000000 --- a/lib/features/offline_mode/manager/detailed_email_cache_worker_queue.dart +++ /dev/null @@ -1,8 +0,0 @@ - -import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_worker_queue.dart'; - -class DetailedEmailCacheWorkerQueue extends WorkerQueue { - - @override - String get workerName => 'DetailedEmailCache'; -} \ No newline at end of file diff --git a/lib/features/offline_mode/manager/new_email_cache_manager.dart b/lib/features/offline_mode/manager/new_email_cache_manager.dart index 5046bdf24..83bf38b53 100644 --- a/lib/features/offline_mode/manager/new_email_cache_manager.dart +++ b/lib/features/offline_mode/manager/new_email_cache_manager.dart @@ -1,4 +1,5 @@ +import 'package:core/utils/app_logger.dart'; import 'package:core/utils/file_utils.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/user_name.dart'; @@ -24,20 +25,19 @@ class NewEmailCacheManager { DetailedEmailHiveCache detailedEmailCache ) async { final listDetailedEmails = await getAllDetailedEmails(accountId, userName); - + log('NewEmailCacheManager::storeDetailedNewEmail():listDetailedEmails: $listDetailedEmails'); if (listDetailedEmails.length >= CachingConstants.maxNumberNewEmailsForOffline) { - final lastElementsListEmail = listDetailedEmails.sublist( - CachingConstants.maxNumberNewEmailsForOffline - 1, - listDetailedEmails.length); + final lastElementsListEmail = listDetailedEmails.sublist(CachingConstants.maxNumberNewEmailsForOffline - 1); for (var email in lastElementsListEmail) { if (email.emailContentPath != null) { await _deleteFileExisted(email.emailContentPath!); } await removeDetailedEmail(accountId, userName, email.emailId); } + log('NewEmailCacheManager::storeDetailedNewEmail(): DELETE COMPLETED'); } await insertDetailedEmail(accountId, userName, detailedEmailCache); - + log('NewEmailCacheManager::storeDetailedNewEmail(): INSERT COMPLETED'); return detailedEmailCache; } @@ -82,4 +82,6 @@ class NewEmailCacheManager { throw NotFoundStoredNewEmailException(); } } + + Future closeNewEmailHiveCacheBox() => _cacheClient.closeBox(); } \ No newline at end of file diff --git a/lib/features/offline_mode/manager/new_email_cache_worker_queue.dart b/lib/features/offline_mode/manager/new_email_cache_worker_queue.dart new file mode 100644 index 000000000..50f346f87 --- /dev/null +++ b/lib/features/offline_mode/manager/new_email_cache_worker_queue.dart @@ -0,0 +1,8 @@ + +import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_worker_queue.dart'; + +class NewEmailCacheWorkerQueue extends WorkerQueue { + + @override + String get workerName => 'NewEmailCache'; +} \ No newline at end of file diff --git a/lib/features/offline_mode/manager/opened_email_cache_manager.dart b/lib/features/offline_mode/manager/opened_email_cache_manager.dart index f24cf7eef..b6f791ab1 100644 --- a/lib/features/offline_mode/manager/opened_email_cache_manager.dart +++ b/lib/features/offline_mode/manager/opened_email_cache_manager.dart @@ -54,9 +54,7 @@ class OpenedEmailCacheManager { final listDetailedEmails = await getAllDetailedEmails(accountId, userName); if (listDetailedEmails.length >= CachingConstants.maxNumberOpenedEmailsForOffline) { - final lastElementsListEmail = listDetailedEmails.sublist( - CachingConstants.maxNumberOpenedEmailsForOffline - 1, - listDetailedEmails.length); + final lastElementsListEmail = listDetailedEmails.sublist(CachingConstants.maxNumberOpenedEmailsForOffline - 1); for (var email in lastElementsListEmail) { if (email.emailContentPath != null) { await _deleteFileExisted(email.emailContentPath!); diff --git a/lib/features/offline_mode/manager/opened_email_cache_worker_queue.dart b/lib/features/offline_mode/manager/opened_email_cache_worker_queue.dart index 623f15c79..2712cc810 100644 --- a/lib/features/offline_mode/manager/opened_email_cache_worker_queue.dart +++ b/lib/features/offline_mode/manager/opened_email_cache_worker_queue.dart @@ -3,5 +3,5 @@ import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_worker_queu class OpenedEmailCacheWorkerQueue extends WorkerQueue { @override - String get workerName => 'OpenedEmailCacheQueue'; + String get workerName => 'OpenedEmailCache'; } \ No newline at end of file diff --git a/lib/features/push_notification/presentation/bindings/fcm_interactor_bindings.dart b/lib/features/push_notification/presentation/bindings/fcm_interactor_bindings.dart index 59e11f4fb..6f17fa9e8 100644 --- a/lib/features/push_notification/presentation/bindings/fcm_interactor_bindings.dart +++ b/lib/features/push_notification/presentation/bindings/fcm_interactor_bindings.dart @@ -23,8 +23,8 @@ import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/state_dataso import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart'; import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart'; import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; @@ -106,7 +106,7 @@ class FcmInteractorBindings extends InteractorsBindings { Get.lazyPut(() => EmailHiveCacheDataSourceImpl( Get.find(), Get.find(), - Get.find(), + Get.find(), Get.find(), Get.find(), Get.find(), diff --git a/lib/features/push_notification/presentation/controller/fcm_message_controller.dart b/lib/features/push_notification/presentation/controller/fcm_message_controller.dart index 591c3873a..f1db98bcf 100644 --- a/lib/features/push_notification/presentation/controller/fcm_message_controller.dart +++ b/lib/features/push_notification/presentation/controller/fcm_message_controller.dart @@ -24,6 +24,7 @@ import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.d import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart'; import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; import 'package:tmail_ui_user/features/push_notification/presentation/action/fcm_action.dart'; import 'package:tmail_ui_user/features/push_notification/presentation/bindings/fcm_interactor_bindings.dart'; import 'package:tmail_ui_user/features/push_notification/presentation/controller/fcm_base_controller.dart'; @@ -50,6 +51,7 @@ class FcmMessageController extends FcmBaseController { DynamicUrlInterceptors? _dynamicUrlInterceptors; AuthorizationInterceptors? _authorizationInterceptors; GetSessionInteractor? _getSessionInteractor; + NewEmailCacheManager? _newEmailCacheManager; FcmMessageController._internal() { _listenFcmStream(); @@ -197,7 +199,9 @@ class FcmMessageController extends FcmBaseController { FcmInteractorBindings().dependencies(); }); - return await _getInteractorBindings(); + await _getInteractorBindings(); + + await _newEmailCacheManager?.closeNewEmailHiveCacheBox(); } Future _getInteractorBindings() { @@ -206,6 +210,7 @@ class FcmMessageController extends FcmBaseController { _dynamicUrlInterceptors = getBinding(); _authorizationInterceptors = getBinding(); _getSessionInteractor = getBinding(); + _newEmailCacheManager = getBinding(); FcmTokenController.instance.initialize(); } catch (e) { logError('FcmMessageController::_getBindings(): ${e.toString()}'); diff --git a/lib/features/sending_queue/presentation/bindings/sending_queue_interactor_bindings.dart b/lib/features/sending_queue/presentation/bindings/sending_queue_interactor_bindings.dart index 68cad9185..ad6043930 100644 --- a/lib/features/sending_queue/presentation/bindings/sending_queue_interactor_bindings.dart +++ b/lib/features/sending_queue/presentation/bindings/sending_queue_interactor_bindings.dart @@ -4,12 +4,12 @@ import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/interactors_bindings.dart'; import 'package:tmail_ui_user/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/sending_queue/data/repository/sending_queue_repository_impl.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/repository/sending_queue_repository.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_multiple_sending_email_interactor.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_sending_email_interactor.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/usecases/get_all_sending_email_interactor.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; @@ -29,7 +29,7 @@ class SendingQueueInteractorBindings extends InteractorsBindings { Get.lazyPut(() => EmailHiveCacheDataSourceImpl( Get.find(), Get.find(), - Get.find(), + Get.find(), Get.find(), Get.find(), Get.find(), diff --git a/lib/main/bindings/local/local_bindings.dart b/lib/main/bindings/local/local_bindings.dart index 722bcfc79..158b1367b 100644 --- a/lib/main/bindings/local/local_bindings.dart +++ b/lib/main/bindings/local/local_bindings.dart @@ -31,8 +31,8 @@ import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart'; import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart'; -import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; @@ -105,7 +105,7 @@ class LocalBindings extends Bindings { } void _bindingWorkerQueue() { - Get.put(DetailedEmailCacheWorkerQueue()); + Get.put(NewEmailCacheWorkerQueue()); Get.put(OpenedEmailCacheWorkerQueue()); } } \ No newline at end of file