From db5cc6a47bcae77d08b6b9a07f40d705b2167ffa Mon Sep 17 00:00:00 2001 From: HuyNguyen Date: Tue, 10 Jan 2023 00:25:21 +0700 Subject: [PATCH] TF-1362: [Presentation] Create UI for all device and Add Action dismiss --- assets/images/ic_info_circle_outline.svg | 8 ++ .../extensions/color_extension.dart | 1 + .../presentation/resources/image_paths.dart | 1 + .../spam_report_repository_impl.dart | 2 +- .../repository/spam_report_repository.dart | 2 +- ...st_time_dismissed_spam_reported_state.dart | 21 ++++ .../domain/state/store_spam_report_state.dart | 21 ---- ...e_dismissed_spam_reported_interactor.dart} | 6 +- ...e_dismissed_spam_reported_interactor.dart} | 10 +- .../bindings/mailbox_dashboard_bindings.dart | 4 +- .../mailbox_dashboard_controller.dart | 2 + .../controller/spam_report_controller.dart | 14 +++ .../mailbox_dashboard_view_web.dart | 77 ++++++++++++++- .../presentation/thread_controller.dart | 5 + .../thread/presentation/thread_view.dart | 98 +++++++++++++++++++ lib/main/localizations/app_localizations.dart | 24 ++++- ...ails_in_mailbox_interactor_test.mocks.dart | 2 +- ...ails_in_mailbox_interactor_test.mocks.dart | 2 +- 18 files changed, 264 insertions(+), 36 deletions(-) create mode 100644 assets/images/ic_info_circle_outline.svg create mode 100644 lib/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart delete mode 100644 lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart rename lib/features/mailbox_dashboard/domain/usecases/{get_spam_report_interactor.dart => get_last_time_dismissed_spam_reported_interactor.dart} (81%) rename lib/features/mailbox_dashboard/domain/usecases/{store_spam_report_interactor.dart => store_last_time_dismissed_spam_reported_interactor.dart} (63%) create mode 100644 lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart diff --git a/assets/images/ic_info_circle_outline.svg b/assets/images/ic_info_circle_outline.svg new file mode 100644 index 000000000..a5805cd1a --- /dev/null +++ b/assets/images/ic_info_circle_outline.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/core/lib/presentation/extensions/color_extension.dart b/core/lib/presentation/extensions/color_extension.dart index 6ded7869e..55e4a849b 100644 --- a/core/lib/presentation/extensions/color_extension.dart +++ b/core/lib/presentation/extensions/color_extension.dart @@ -170,6 +170,7 @@ extension AppColor on Color { static const colorOutOfStorageQuotasWarning = Color(0xffE64646); static const colorThumbScrollBar = Color(0xFFAEB7C2); static const colorCreateNewIdentityButton = Color(0xFFEBEDF0); + static const colorSpamReportBox = Color(0xFFBFDEFF); static const mapGradientColor = [ [Color(0xFF21D4FD), Color(0xFFB721FF)], diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart index de00cbe38..51ef0576c 100644 --- a/core/lib/presentation/resources/image_paths.dart +++ b/core/lib/presentation/resources/image_paths.dart @@ -163,6 +163,7 @@ class ImagePaths { String get icQuickCreatingRule => _getImagePath('ic_quick_creating_rule.svg'); String get icPageNotFound => _getImagePath('ic_page_not_found.svg'); String get icOpenInNewTab => _getImagePath('ic_open_in_new_tab.svg'); + String get icInfoCircleOutline => _getImagePath('ic_info_circle_outline.svg'); String _getImagePath(String imageName) { return AssetsPaths.images + imageName; 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 b81fab46c..a50510400 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 @@ -2,7 +2,7 @@ import 'package:core/data/model/source_type/data_source_type.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart'; -class SpamReportRepositoryImpl extends SpamReportRepository { +class SpamReportRepositoryImpl extends StoreLastTimeDismissedSpamReportInteractor { final Map mapDataSource; SpamReportRepositoryImpl(this.mapDataSource); 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 6a735d4fb..dc9d2a0c8 100644 --- a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart +++ b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart @@ -1,4 +1,4 @@ -abstract class SpamReportRepository { +abstract class StoreLastTimeDismissedSpamReportInteractor { Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported); Future getLastTimeDismissedSpamReported(); diff --git a/lib/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart b/lib/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart new file mode 100644 index 000000000..7a9509984 --- /dev/null +++ b/lib/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart @@ -0,0 +1,21 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; + +class StoreLastTimeDismissedSpamReportLoading extends UIState {} + +class StoreLastTimeDismissedSpamReportSuccess extends UIState { + + StoreLastTimeDismissedSpamReportSuccess(); + + @override + List get props => []; +} + +class StoreLastTimeDismissedSpamReportFailure extends FeatureFailure { + final dynamic exception; + + StoreLastTimeDismissedSpamReportFailure(this.exception); + + @override + List get props => [exception]; +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart b/lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart deleted file mode 100644 index b5841631f..000000000 --- a/lib/features/mailbox_dashboard/domain/state/store_spam_report_state.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:core/presentation/state/failure.dart'; -import 'package:core/presentation/state/success.dart'; - -class StoreSpamReportLoading extends UIState {} - -class StoreSpamReportSuccess extends UIState { - - StoreSpamReportSuccess(); - - @override - List get props => []; -} - -class StoreSpamReportFailure extends FeatureFailure { - final dynamic exception; - - StoreSpamReportFailure(this.exception); - - @override - List get props => [exception]; -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_spam_report_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/get_last_time_dismissed_spam_reported_interactor.dart similarity index 81% rename from lib/features/mailbox_dashboard/domain/usecases/get_spam_report_interactor.dart rename to lib/features/mailbox_dashboard/domain/usecases/get_last_time_dismissed_spam_reported_interactor.dart index 9773dd350..f0d7730c3 100644 --- a/lib/features/mailbox_dashboard/domain/usecases/get_spam_report_interactor.dart +++ b/lib/features/mailbox_dashboard/domain/usecases/get_last_time_dismissed_spam_reported_interactor.dart @@ -5,10 +5,10 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_last_time_dismissed_spam_reported_state.dart'; -class GetSpamReportInteractor { - final SpamReportRepository _spamReportRepository; +class GetLastTimeDismissedSpamReportInteractor { + final StoreLastTimeDismissedSpamReportInteractor _spamReportRepository; - GetSpamReportInteractor(this._spamReportRepository); + GetLastTimeDismissedSpamReportInteractor(this._spamReportRepository); Stream> execute() async* { try { diff --git a/lib/features/mailbox_dashboard/domain/usecases/store_spam_report_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart similarity index 63% rename from lib/features/mailbox_dashboard/domain/usecases/store_spam_report_interactor.dart rename to lib/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart index 76145c43c..c1735228a 100644 --- a/lib/features/mailbox_dashboard/domain/usecases/store_spam_report_interactor.dart +++ b/lib/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart @@ -2,20 +2,20 @@ 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/store_spam_report_state.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart'; class StoreSpamReportInteractor { - final SpamReportRepository _spamReportRepository; + final StoreLastTimeDismissedSpamReportInteractor _spamReportRepository; StoreSpamReportInteractor(this._spamReportRepository); Stream> execute(DateTime lastTimeDismissedSpamReported) async* { try { - yield Right(StoreSpamReportLoading()); + yield Right(StoreLastTimeDismissedSpamReportLoading()); await _spamReportRepository.storeLastTimeDismissedSpamReported(lastTimeDismissedSpamReported); - yield Right(StoreSpamReportSuccess()); + yield Right(StoreLastTimeDismissedSpamReportSuccess()); } catch (e) { - yield Left(StoreSpamReportFailure(e)); + yield Left(StoreLastTimeDismissedSpamReportFailure(e)); } } } \ No newline at end of file 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 4d3643191..02ff34bff 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -81,6 +81,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; 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/quotas/presentation/quotas_controller_bindings.dart'; import 'package:tmail_ui_user/features/search/domain/usecases/refresh_changes_search_email_interactor.dart'; @@ -126,6 +127,7 @@ class MailboxDashBoardBindings extends BaseBindings { Get.find(), Get.find(), )); + Get.put(SpamReportController()); Get.put(MailboxDashBoardController( Get.find(), Get.find(), @@ -281,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 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 f694d05b9..d5bb3a201 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -57,6 +57,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/m import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart'; 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/mailbox_dashboard/presentation/model/composer_overlay_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/download/download_task_state.dart'; @@ -114,6 +115,7 @@ class MailboxDashBoardController extends ReloadableController { final DownloadController downloadController = Get.find(); final NetworkConnectionController networkConnectionController = Get.find(); final AppGridDashboardController appGridDashboardController = Get.find(); + final SpamReportController spamReportController = Get.find(); final MoveToMailboxInteractor _moveToMailboxInteractor; final DeleteEmailPermanentlyInteractor _deleteEmailPermanentlyInteractor; diff --git a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart new file mode 100644 index 000000000..2fa550314 --- /dev/null +++ b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart @@ -0,0 +1,14 @@ +import 'package:get/get_rx/get_rx.dart'; +import 'package:tmail_ui_user/features/base/base_controller.dart'; + +class SpamReportController extends BaseController { + + final dismissedSpamReported = RxBool(false); + + @override + void onDone() {} + + void dismissSpamReportAction() { + dismissedSpamReported.value = true; + } +} diff --git a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart index b5708c610..37a80773f 100644 --- a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart +++ b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart @@ -13,6 +13,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailb import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/app_grid_dashboard_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; 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/mailbox_dashboard/presentation/model/composer_overlay_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart'; @@ -41,6 +42,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { final SearchController searchController = Get.find(); final AppGridDashboardController appGridDashboardController = Get.find(); final mailBoxDashboardController = Get.find(); + final spamReportController = Get.find(); @override Widget build(BuildContext context) { @@ -105,6 +107,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { children: [ SizedBox(child: MailboxView(), width: responsiveUtils.defaultSizeMenu), Expanded(child: Column(children: [ + _buildSpamReportBoxWebWidget(context), _buildEmptyTrashButton(context), const QuotasWarningBannerWidget( margin: EdgeInsets.only(right: 16, top: 8), @@ -196,7 +199,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { Widget _buildThreadViewForWebDesktop(BuildContext context) { return Container( - margin: const EdgeInsets.only(right: 16, top: 16, bottom: 16), + margin: const EdgeInsets.only(right: 16, top: 8, bottom: 16), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), border: Border.all(color: AppColor.colorBorderBodyThread, width: 1), @@ -692,4 +695,76 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { } }); } + + Widget _buildSpamReportBoxWebWidget(BuildContext context) { + return Obx(() { + if (spamReportController.dismissedSpamReported.value) { + return const SizedBox( + height: 8, + ); + } + return Container( + height: 84, + margin: const EdgeInsets.only(right: 16, top: 16), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + border: Border.all(color: AppColor.colorBorderBodyThread, width: 1), + color: AppColor.colorSpamReportBox.withOpacity(0.12)), + child: Stack( + alignment: AlignmentDirectional.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + children: [ + SvgPicture.asset( + imagePaths.icInfoCircleOutline, + width: 28, + height: 28, + color: AppColor.primaryColor, + ), + const SizedBox( + width: 8, + ), + Text( + AppLocalizations.of(context).countNewSpamEmails(5), + style: const TextStyle( + fontSize: 16, + color: AppColor.primaryColor, + fontWeight: FontWeight.w500), + ), + ], + ), + Padding( + padding: const EdgeInsets.only( + left: 32, + ), + child: buildTextButton( + AppLocalizations.of(context).showDetails, + height: 36, + width: 115, + textStyle: const TextStyle( + fontSize: 15, + color: AppColor.primaryColor, + fontWeight: FontWeight.w400), + backgroundColor: AppColor.colorCreateNewIdentityButton, + radius: 10, + ), + ), + ], + ), + Positioned( + top: 16, + right: 16, + child: buildSVGIconButton( + icon: imagePaths.icCloseComposer, + onTap: () => spamReportController.dismissSpamReportAction(), + ), + ), + ], + ), + ); + }); + } } \ No newline at end of file diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index f91b7a1ec..409b3f4c5 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -34,6 +34,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart'; 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/mailbox_dashboard/presentation/model/dashboard_routes.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart'; import 'package:tmail_ui_user/features/search/presentation/search_email_bindings.dart'; @@ -117,6 +118,10 @@ class ThreadController extends BaseController with EmailActionController { SearchQuery? get searchQuery => searchController.searchEmailFilter.value.text; + RxList get emailList => mailboxDashBoardController.emailsInCurrentMailbox; + + SpamReportController get spamReportController => mailboxDashBoardController.spamReportController; + ThreadController( this._getEmailsInMailboxInteractor, this._refreshChangesEmailsInMailboxInteractor, diff --git a/lib/features/thread/presentation/thread_view.dart b/lib/features/thread/presentation/thread_view.dart index e010891dd..ca5fe5ca6 100644 --- a/lib/features/thread/presentation/thread_view.dart +++ b/lib/features/thread/presentation/thread_view.dart @@ -61,6 +61,7 @@ class ThreadView extends GetWidget ... [ _buildAppBarNormal(context), _buildSearchBarView(context), + _buildSpamReportBoxWidget(context), const QuotasWarningBannerWidget(), _buildVacationNotificationMessage(context), ], @@ -654,4 +655,101 @@ class ThreadView extends GetWidget }); }); } + + Widget _buildSpamReportBoxWidget(BuildContext context) { + return Obx(() { + if (controller.spamReportController.dismissedSpamReported.value) { + return const SizedBox.shrink(); + } + return Container( + height: 124, + margin: const EdgeInsets.only(right: 16, top: 16, left: 16), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + border: Border.all(color: AppColor.colorBorderBodyThread, width: 1), + color: AppColor.colorSpamReportBox.withOpacity(0.12)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(top: 24), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + _imagePaths.icInfoCircleOutline, + width: 28, + height: 28, + color: AppColor.primaryColor, + ), + const SizedBox( + width: 8, + ), + Text( + AppLocalizations.of(context).countNewSpamEmails(5), + style: const TextStyle( + fontSize: 16, + color: AppColor.primaryColor, + fontWeight: FontWeight.w500), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.only(left: 16, right: 16, bottom: 16), + child: Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: _spamReportButtonAction( + context, + AppLocalizations.of(context).showDetails, + AppColor.primaryColor, + () {}), + ), + const SizedBox( + width: 8, + ), + Expanded( + child: _spamReportButtonAction( + context, + AppLocalizations.of(context).dismiss, + AppColor.textFieldErrorBorderColor, + () => controller.spamReportController + .dismissSpamReportAction()), + ), + ], + ), + ), + ), + ], + ), + ); + }); + } + + Widget _spamReportButtonAction(BuildContext context, String title, Color colorText, Function()? onTap) { + return GestureDetector( + onTap: onTap, + child: Container( + height: 36, + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: AppColor.colorCreateNewIdentityButton), + child: Expanded( + child: Center( + child: Text( + title, + style: TextStyle( + fontSize: 15, + color: colorText, + fontWeight: FontWeight.w400), + ), + ), + ), + ), + ); + } } \ No newline at end of file diff --git a/lib/main/localizations/app_localizations.dart b/lib/main/localizations/app_localizations.dart index 4fbc5142f..6a0160bf7 100644 --- a/lib/main/localizations/app_localizations.dart +++ b/lib/main/localizations/app_localizations.dart @@ -2644,7 +2644,29 @@ class AppLocalizations { String get privacyPolicy { return Intl.message( 'Privacy policy', - name: 'privacyPolicy' + name: 'privacyPolicy', + ); + } + + String countNewSpamEmails(int count,) { + return Intl.message( + 'You have $count new spam emails!', + name: 'countNewSpamEmails', + args: [count] + ); + } + + String get showDetails { + return Intl.message( + 'Show Details', + name: 'showDetails', + ); + } + + String get dismiss { + return Intl.message( + 'Dismiss', + name: 'dismiss', ); } } \ No newline at end of file diff --git a/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart b/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart index cb5e7f139..3aa58ed33 100644 --- a/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart +++ b/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.mocks.dart @@ -109,4 +109,4 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository { Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]), returnValue: Future>.value(<_i12.EmailId>[])) as _i3.Future>); -} +} \ No newline at end of file diff --git a/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart b/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart index 498a5b734..d55f1162c 100644 --- a/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart +++ b/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.mocks.dart @@ -109,4 +109,4 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository { Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]), returnValue: Future>.value(<_i12.EmailId>[])) as _i3.Future>); -} +} \ No newline at end of file