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 27c4274fb..44ff54005 100644 --- a/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart +++ b/lib/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart @@ -1,7 +1,20 @@ +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; + abstract class SpamReportDataSource { - Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported); + Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported); Future getLastTimeDismissedSpamReported(); - Future deleteLastTimeDismissedSpamReported(); + Future deleteLastTimeDismissedSpamReported(); + + Future findNumberOfUnreadSpamEmails( + AccountId accountId, + { + MailboxFilterCondition? mailboxFilterCondition, + UnsignedInt? limit + } + ); } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/local_spam_report_datasource_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/local_spam_report_datasource_impl.dart index 4383c7df1..81a9f9b8d 100644 --- a/lib/features/mailbox_dashboard/data/datasource_impl/local_spam_report_datasource_impl.dart +++ b/lib/features/mailbox_dashboard/data/datasource_impl/local_spam_report_datasource_impl.dart @@ -1,16 +1,20 @@ +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/spam_report_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/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart'; class LocalSpamReportDataSourceImpl extends SpamReportDataSource { - final SpamReportCacheManager _spamReportCacheManager; + final SharePreferenceSpamReportDataSource _sharePreferenceSpamReportDataSource; final ExceptionThrower _exceptionThrower; - LocalSpamReportDataSourceImpl(this._spamReportCacheManager, this._exceptionThrower); + LocalSpamReportDataSourceImpl(this._sharePreferenceSpamReportDataSource, this._exceptionThrower); @override Future getLastTimeDismissedSpamReported() async { return Future.sync(() async { - return await _spamReportCacheManager.getlastTimeDismissedSpamReported(); + return await _sharePreferenceSpamReportDataSource.getLastTimeDismissedSpamReported(); }).catchError((error) { _exceptionThrower.throwException(error); }); @@ -19,7 +23,7 @@ class LocalSpamReportDataSourceImpl extends SpamReportDataSource { @override Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) async { return Future.sync(() async { - return await _spamReportCacheManager.storelastTimeDismissedSpamReported(lastTimeDismissedSpamReported); + return await _sharePreferenceSpamReportDataSource.storeLastTimeDismissedSpamReported(lastTimeDismissedSpamReported); }).catchError((error) { _exceptionThrower.throwException(error); }); @@ -28,9 +32,20 @@ class LocalSpamReportDataSourceImpl extends SpamReportDataSource { @override Future deleteLastTimeDismissedSpamReported() { return Future.sync(() async { - return await _spamReportCacheManager.deleteLastTimeDismissedSpamReported(); + return await _sharePreferenceSpamReportDataSource.deleteLastTimeDismissedSpamReported(); }).catchError((error) { _exceptionThrower.throwException(error); }); } + + @override + Future findNumberOfUnreadSpamEmails( + AccountId accountId, + { + MailboxFilterCondition? mailboxFilterCondition, + UnsignedInt? limit + } + ) { + throw UnimplementedError(); + } } 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 new file mode 100644 index 000000000..20707ba3f --- /dev/null +++ b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart @@ -0,0 +1,48 @@ + +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; +import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart'; + +class SpamReportDataSourceImpl extends SpamReportDataSource { + final SpamReportApi _spamReportApi; + final ExceptionThrower _exceptionThrower; + + SpamReportDataSourceImpl(this._spamReportApi, this._exceptionThrower); + + @override + Future deleteLastTimeDismissedSpamReported() { + throw UnimplementedError(); + } + + @override + Future findNumberOfUnreadSpamEmails( + AccountId accountId, + { + MailboxFilterCondition? mailboxFilterCondition, + UnsignedInt? limit + } + ) { + return Future.sync(() async { + final _unreadSpamEmailsResponse = await _spamReportApi.findNumberOfUnreadSpamEmails( + accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit); + return _unreadSpamEmailsResponse; + }).catchError((error) { + _exceptionThrower.throwException(error); + }); + } + + @override + Future getLastTimeDismissedSpamReported() { + throw UnimplementedError(); + } + + @override + Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) { + 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 new file mode 100644 index 000000000..4d749551c --- /dev/null +++ b/lib/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.dart @@ -0,0 +1,42 @@ +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/utils/mailbox_dashboard_constant.dart'; + +class SharePreferenceSpamReportDataSource extends SpamReportDataSource { + final SharedPreferences _sharedPreferences; + + SharePreferenceSpamReportDataSource(this._sharedPreferences); + + @override + Future getLastTimeDismissedSpamReported() async { + final _timeStamp = _sharedPreferences.getInt(MailboxDashboardConstant.keyLastTimeDismissedSpamReported) ?? 0; + final _lastTimeDismissedSpamReported = DateTime.fromMillisecondsSinceEpoch(_timeStamp); + return _lastTimeDismissedSpamReported; + } + + @override + Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) async { + final _timeStamp = lastTimeDismissedSpamReported.microsecondsSinceEpoch; + return await _sharedPreferences.setInt(MailboxDashboardConstant.keyLastTimeDismissedSpamReported,_timeStamp); + } + + @override + Future deleteLastTimeDismissedSpamReported() async { + return await _sharedPreferences.remove(MailboxDashboardConstant.keyLastTimeDismissedSpamReported); + } + + @override + Future findNumberOfUnreadSpamEmails( + AccountId accountId, + { + MailboxFilterCondition? mailboxFilterCondition, + UnsignedInt? limit + } + ) { + throw UnimplementedError(); + } +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/local/spam_report_cache_manager.dart b/lib/features/mailbox_dashboard/data/local/spam_report_cache_manager.dart deleted file mode 100644 index 4fdc4af63..000000000 --- a/lib/features/mailbox_dashboard/data/local/spam_report_cache_manager.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:shared_preferences/shared_preferences.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/utils/mailbox_dashboard_constant.dart'; - -class SpamReportCacheManager { - final SharedPreferences _sharedPreferences; - - SpamReportCacheManager(this._sharedPreferences); - - Future getlastTimeDismissedSpamReported() async { - final _timeStamp = _sharedPreferences.getInt(MailboxDashboardConstant.keyLastTimeDismissedSpamReported) ?? 0; - final _lastTimeDismissedSpamReported = DateTime.fromMillisecondsSinceEpoch(_timeStamp); - return _lastTimeDismissedSpamReported; - } - - Future storelastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) async { - final _timeStamp = lastTimeDismissedSpamReported.microsecondsSinceEpoch; - return await _sharedPreferences.setInt(MailboxDashboardConstant.keyLastTimeDismissedSpamReported,_timeStamp); - } - - Future deleteLastTimeDismissedSpamReported() async { - return await _sharedPreferences.remove(MailboxDashboardConstant.keyLastTimeDismissedSpamReported); - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/network/spam_report_api.dart b/lib/features/mailbox_dashboard/data/network/spam_report_api.dart new file mode 100644 index 000000000..b9daa4ea8 --- /dev/null +++ b/lib/features/mailbox_dashboard/data/network/spam_report_api.dart @@ -0,0 +1,54 @@ + +import 'package:jmap_dart_client/http/http_client.dart'; +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/request/reference_path.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/jmap_request.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/get/get_mailbox_method.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/get/get_mailbox_response.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/query/query_mailbox_method.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; + +class SpamReportApi { + final HttpClient _httpClient; + + SpamReportApi(this._httpClient); + + Future findNumberOfUnreadSpamEmails( + AccountId accountId, + { + MailboxFilterCondition? mailboxFilterCondition, + UnsignedInt? limit + } + ) async { + final processingInvocation = ProcessingInvocation(); + final requestBuilder = JmapRequestBuilder(_httpClient, processingInvocation); + + final spamReportQueryMethod = QueryMailboxMethod(accountId)..addLimit(limit ?? UnsignedInt(1)); + + final spamReportQueryMethodInvocation = requestBuilder.invocation(spamReportQueryMethod); + + final getMailBoxMethod = GetMailboxMethod(accountId) + ..addReferenceIds(processingInvocation.createResultReference( + spamReportQueryMethodInvocation.methodCallId, + ReferencePath.idsPath, + )); + final getMailboxInvocation = requestBuilder.invocation(getMailBoxMethod); + final result = await (requestBuilder + ..usings(getMailBoxMethod.requiredCapabilities)) + .build() + .execute(); + + final _mailboxResponse = result + .parse(getMailboxInvocation.methodCallId, GetMailboxResponse.deserialize); + + final _unreadSpamEmailNumber = _mailboxResponse?.list.first.unreadEmails?.value.value.toInt(); + + return Future.sync(() async { + return UnreadSpamEmailsResponse(unreadSpamEmailNumber: _unreadSpamEmailNumber); + }).catchError((error) { + throw error; + }); + } +} \ 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 a50510400..24ccb8c0c 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 @@ -1,8 +1,12 @@ import 'package:core/data/model/source_type/data_source_type.dart'; +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart'; -class SpamReportRepositoryImpl extends StoreLastTimeDismissedSpamReportInteractor { +class SpamReportRepositoryImpl extends SpamReportRepository { final Map mapDataSource; SpamReportRepositoryImpl(this.mapDataSource); @@ -21,4 +25,16 @@ class SpamReportRepositoryImpl extends StoreLastTimeDismissedSpamReportInteracto Future deleteLastTimeDismissedSpamReported() { return mapDataSource[DataSourceType.local]!.deleteLastTimeDismissedSpamReported(); } + + @override + Future findNumberOfUnreadSpamEmails( + AccountId accountId, + { + MailboxFilterCondition? mailboxFilterCondition, + UnsignedInt? limit + } + ) { + return mapDataSource[DataSourceType.network]!.findNumberOfUnreadSpamEmails( + accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit); + } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/model/spam_report.dart b/lib/features/mailbox_dashboard/domain/model/spam_report.dart deleted file mode 100644 index a029700cd..000000000 --- a/lib/features/mailbox_dashboard/domain/model/spam_report.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:equatable/equatable.dart'; - -class SpamReport with EquatableMixin { - - final DateTime lastTimeDismissedSpamReported; - - SpamReport(this.lastTimeDismissedSpamReported); - - @override - List get props => [lastTimeDismissedSpamReported]; -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart b/lib/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart new file mode 100644 index 000000000..a96933643 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart @@ -0,0 +1,13 @@ + +import 'package:equatable/equatable.dart'; + +class UnreadSpamEmailsResponse with EquatableMixin { + final int? unreadSpamEmailNumber; + + UnreadSpamEmailsResponse({ + this.unreadSpamEmailNumber, + }); + + @override + List get props => [unreadSpamEmailNumber]; +} \ 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 dc9d2a0c8..76fd2f00e 100644 --- a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart +++ b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart @@ -1,7 +1,20 @@ -abstract class StoreLastTimeDismissedSpamReportInteractor { +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; + +abstract class SpamReportRepository { Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported); Future getLastTimeDismissedSpamReported(); Future deleteLastTimeDismissedSpamReported(); + + Future findNumberOfUnreadSpamEmails( + AccountId accountId, + { + MailboxFilterCondition? mailboxFilterCondition, + UnsignedInt? limit + } + ); } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/state/get_last_time_dismissed_spam_reported_state.dart b/lib/features/mailbox_dashboard/domain/state/get_last_time_dismissed_spam_reported_state.dart deleted file mode 100644 index 3f73d874e..000000000 --- a/lib/features/mailbox_dashboard/domain/state/get_last_time_dismissed_spam_reported_state.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:core/presentation/state/failure.dart'; -import 'package:core/presentation/state/success.dart'; - -class GetLastTimeDismissedSpamReportedLoading extends UIState {} - -class GetLastTimeDismissedSpamReportedSuccess extends UIState { - final DateTime lastTimeDismissedSpamReported; - - GetLastTimeDismissedSpamReportedSuccess(this.lastTimeDismissedSpamReported); - - @override - List get props => []; -} - -class GetLastTimeDismissedSpamReportedFailure extends FeatureFailure { - final dynamic exception; - - GetLastTimeDismissedSpamReportedFailure(this.exception); - - @override - List get props => [exception]; -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart b/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart new file mode 100644 index 000000000..f575b9068 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart @@ -0,0 +1,27 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; + +class GetNumberOfUnreadSpamEmailsLoading extends UIState {} + +class GetNumberOfUnreadSpamEmailsSuccess extends UIState { + final int unreadSpamEmailNumber; + + GetNumberOfUnreadSpamEmailsSuccess(this.unreadSpamEmailNumber); + + @override + List get props => [unreadSpamEmailNumber]; +} + +class InvalidSpamReportCondition extends FeatureFailure { + @override + List get props => []; +} + +class GetNumberOfUnreadSpamEmailsFailure extends FeatureFailure { + final dynamic exception; + + GetNumberOfUnreadSpamEmailsFailure(this.exception); + + @override + List get props => [exception]; +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_last_time_dismissed_spam_reported_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/get_last_time_dismissed_spam_reported_interactor.dart deleted file mode 100644 index f0d7730c3..000000000 --- a/lib/features/mailbox_dashboard/domain/usecases/get_last_time_dismissed_spam_reported_interactor.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:core/presentation/state/failure.dart'; -import 'package:core/presentation/state/success.dart'; -import 'package:dartz/dartz.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_last_time_dismissed_spam_reported_state.dart'; - -class GetLastTimeDismissedSpamReportInteractor { - final StoreLastTimeDismissedSpamReportInteractor _spamReportRepository; - - GetLastTimeDismissedSpamReportInteractor(this._spamReportRepository); - - Stream> execute() async* { - try { - yield Right(GetLastTimeDismissedSpamReportedLoading()); - final _lastTimeDismissedSpamReported = await _spamReportRepository.getLastTimeDismissedSpamReported(); - yield Right(GetLastTimeDismissedSpamReportedSuccess(_lastTimeDismissedSpamReported)); - } catch (e) { - yield Left(GetLastTimeDismissedSpamReportedFailure(e)); - } - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_number_of_unread_spam_emails_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/get_number_of_unread_spam_emails_interactor.dart new file mode 100644 index 000000000..b4e41b208 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/usecases/get_number_of_unread_spam_emails_interactor.dart @@ -0,0 +1,43 @@ + +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:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.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'; + +class GetNumberOfUnreadSpamEmails { + static const int conditionsForDisplayingSpamReportBanner = 4; + final SpamReportRepository _spamReportRepository; + + GetNumberOfUnreadSpamEmails(this._spamReportRepository); + + Stream> execute( + AccountId accountId, + { + UnsignedInt? limit, + MailboxFilterCondition? mailboxFilterCondition, + } + ) async* { + try { + yield Right(GetNumberOfUnreadSpamEmailsLoading()); + + final _lastTimeDissmissedSpamReported = await _spamReportRepository.getLastTimeDismissedSpamReported(); + + final _checkTimeCondition = (_lastTimeDissmissedSpamReported.hour - DateTime.now().hour) > conditionsForDisplayingSpamReportBanner; + + if (_checkTimeCondition) { + final _response = await _spamReportRepository.findNumberOfUnreadSpamEmails(accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit); + final _unreadSpamEmailNumber = _response.unreadSpamEmailNumber ?? 0; + + yield Right(GetNumberOfUnreadSpamEmailsSuccess(_unreadSpamEmailNumber)); + } else { + yield Left(InvalidSpamReportCondition()); + } + } catch (e) { + yield Left(GetNumberOfUnreadSpamEmailsFailure(e)); + } + } +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart index c1735228a..cb0220e05 100644 --- a/lib/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart +++ b/lib/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart @@ -5,7 +5,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart'; class StoreSpamReportInteractor { - final StoreLastTimeDismissedSpamReportInteractor _spamReportRepository; + final SpamReportRepository _spamReportRepository; StoreSpamReportInteractor(this._spamReportRepository); 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 02ff34bff..08ccfd9f1 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -61,7 +61,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_re import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/local_spam_report_datasource_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/local/spam_report_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/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/search_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart'; @@ -200,7 +200,7 @@ class MailboxDashBoardBindings extends BaseBindings { )); Get.lazyPut(() => SessionStorageComposerDatasourceImpl()); Get.lazyPut(() => LocalSpamReportDataSourceImpl( - Get.find(), + Get.find(), Get.find(), )); } @@ -283,7 +283,7 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); + Get.lazyPut(() => Get.find()); } @override