diff --git a/lib/features/mailbox/data/local/mailbox_cache_manager.dart b/lib/features/mailbox/data/local/mailbox_cache_manager.dart index 37d4aa16c..78e07331d 100644 --- a/lib/features/mailbox/data/local/mailbox_cache_manager.dart +++ b/lib/features/mailbox/data/local/mailbox_cache_manager.dart @@ -7,7 +7,6 @@ import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart'; import 'package:tmail_ui_user/features/mailbox/data/extensions/list_mailbox_cache_extension.dart'; import 'package:tmail_ui_user/features/mailbox/data/extensions/list_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/data/extensions/list_mailbox_id_extension.dart'; -import 'package:tmail_ui_user/features/mailbox/data/extensions/mailbox_cache_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart'; class MailboxCacheManager { @@ -42,12 +41,13 @@ class MailboxCacheManager { final createdCacheMailboxes = created?.toMapCache(accountId) ?? {}; await _mailboxCacheClient.insertMultipleItem(createdCacheMailboxes); } + return Future.value(); } - Future getSpamMailbox() async { - final mailboxCachedList = await _mailboxCacheClient.getAll(); + Future getSpamMailbox(AccountId accountId) async { + final mailboxCachedList = await _mailboxCacheClient.getListByCollectionId(accountId.asString); final listSpamMailboxCached = mailboxCachedList - .map((mailboxCached) => mailboxCached.toMailbox()) + .toMailboxList() .where((mailbox) => mailbox.role == PresentationMailbox.roleSpam) .toList(); diff --git a/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart b/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart index aa68112c2..18e6032ed 100644 --- a/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart +++ b/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart @@ -28,5 +28,5 @@ abstract class SpamReportDataSource { Future deleteSpamReportState(); - Future getSpamMailboxCached(); + Future getSpamMailboxCached(AccountId accountId); } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart index 5d03c5bd6..4f62e18ba 100644 --- a/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart +++ b/lib/features/mailbox_dashboard/data/datasource_impl/share_preference_spam_report_data_source_impl.dart @@ -70,7 +70,7 @@ class SharePreferenceSpamReportDataSourceImpl extends SpamReportDataSource { } @override - Future getSpamMailboxCached() { + Future getSpamMailboxCached(AccountId accountId) { throw UnimplementedError(); } } diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_cache_datasource_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_cache_datasource_impl.dart index ab32df007..ab37579d3 100644 --- a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_cache_datasource_impl.dart +++ b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_cache_datasource_impl.dart @@ -37,9 +37,9 @@ class SpamReportCacheDataSourceImpl extends SpamReportDataSource { } @override - Future getSpamMailboxCached() { + Future getSpamMailboxCached(AccountId accountId) { return Future.sync(() async { - return await _mailboxCacheManager.getSpamMailbox(); + return await _mailboxCacheManager.getSpamMailbox(accountId); }).catchError(_exceptionThrower.throwException); } diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart index 6f8b4bf8f..1d26bb87e 100644 --- a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart +++ b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart @@ -66,7 +66,7 @@ class SpamReportDataSourceImpl extends SpamReportDataSource { } @override - Future getSpamMailboxCached() { + Future getSpamMailboxCached(AccountId accountId) { throw UnimplementedError(); } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart b/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart index cfacf06b7..b44c2d0da 100644 --- a/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart +++ b/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart @@ -62,7 +62,7 @@ class SharePreferenceSpamReportDataSource extends SpamReportDataSource { } @override - Future getSpamMailboxCached() { + Future getSpamMailboxCached(AccountId accountId) { throw UnimplementedError(); } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart b/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart index 0b5e522d1..15bf5e5bf 100644 --- a/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart +++ b/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart @@ -61,7 +61,7 @@ class SpamReportRepositoryImpl extends SpamReportRepository { } @override - Future getSpamMailboxCached() { - return mapDataSource[DataSourceType.cache]!.getSpamMailboxCached(); + Future getSpamMailboxCached(AccountId accountId) { + return mapDataSource[DataSourceType.cache]!.getSpamMailboxCached(accountId); } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart index 08a87b65a..7b15d34fc 100644 --- a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart +++ b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart @@ -28,5 +28,5 @@ abstract class SpamReportRepository { Future deleteSpamReportState(); - Future getSpamMailboxCached(); + Future getSpamMailboxCached(AccountId accountId); } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart index dda19a299..e5703b1c4 100644 --- a/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart +++ b/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart @@ -2,6 +2,7 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:dartz/dartz.dart'; +import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart'; @@ -12,7 +13,7 @@ class GetSpamMailboxCachedInteractor { GetSpamMailboxCachedInteractor(this._spamReportRepository); - Stream> execute() async* { + Stream> execute(AccountId accountId) async* { try { yield Right(GetSpamMailboxCachedLoading()); @@ -21,7 +22,7 @@ class GetSpamMailboxCachedInteractor { final checkTimeCondition = timeLast.inHours > MailboxDashboardConstant.spamReportBannerDisplayTimeOut; if (checkTimeCondition) { - final spamMailbox = await _spamReportRepository.getSpamMailboxCached(); + final spamMailbox = await _spamReportRepository.getSpamMailboxCached(accountId); final countUnreadSpamMailbox = spamMailbox.unreadEmails?.value.value.toInt() ?? 0; if (countUnreadSpamMailbox > 0) { yield Right(GetSpamMailboxCachedSuccess(spamMailbox)); 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 4d6e5e9dd..fc8e96224 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -1579,8 +1579,8 @@ class MailboxDashBoardController extends ReloadableController { } void refreshSpamReportBanner() { - if (spamReportController.enableSpamReport) { - spamReportController.getSpamMailboxCached(); + if (spamReportController.enableSpamReport && accountId.value != null) { + spamReportController.getSpamMailboxCached(accountId.value!); } } diff --git a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart index bb190954b..2e2483caf 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart @@ -92,8 +92,8 @@ class SpamReportController extends BaseController { mailboxFilterCondition: MailboxFilterCondition(role: Role('Spam')))); } - void getSpamMailboxCached() { - consumeState(_getSpamMailboxCachedInteractor.execute()); + void getSpamMailboxCached(AccountId accountId) { + consumeState(_getSpamMailboxCachedInteractor.execute(accountId)); } void _storeLastTimeDismissedSpamReportedAction() {