From 24d7eee69a61944bddbb582f4215849e12932114 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 6 Jul 2023 23:32:30 +0700 Subject: [PATCH] TF-1708 Sync use mailbox display name to show all mailbox name by in toast, dialog, label, path.. (cherry picked from commit 62137b655383199005c31d21fce46906fab451dc) --- .../base/base_mailbox_controller.dart | 4 +-- .../mixin/mailbox_action_handler_mixin.dart | 6 ++--- .../widgets/app_bar_mail_widget_builder.dart | 3 ++- .../presentation_mailbox_extension.dart | 20 +++++++------- .../domain/model/move_mailbox_request.dart | 6 ++--- .../state/mark_as_mailbox_read_state.dart | 12 ++++----- .../domain/state/move_mailbox_state.dart | 13 ++++++---- .../mark_as_mailbox_read_interactor.dart | 16 ++++++------ .../usecases/move_mailbox_interactor.dart | 2 +- .../presentation/mailbox_controller.dart | 17 ++++++++---- .../presentation/mailbox_creator_view.dart | 3 ++- .../advanced_filter_controller.dart | 10 +++++-- .../mailbox_dashboard_controller.dart | 26 ++++++++++++------- .../controller/spam_report_controller.dart | 6 +++-- .../mailbox_dashboard_view_web.dart | 2 +- .../spam_report_banner_web_widget.dart | 4 +-- .../rules_filter_creator_controller.dart | 5 ++-- .../widgets/rule_filter_button_field.dart | 3 ++- .../model/simple_search_filter.dart | 3 ++- .../email/presentation/search_email_view.dart | 4 +-- .../search_mailbox_controller.dart | 15 ++++++++--- .../mixin/base_email_item_tile.dart | 6 +++-- .../app_bar_thread_widget_builder.dart | 5 ++-- .../widgets/email_tile_builder.dart | 1 + .../widgets/email_tile_web_builder.dart | 3 +++ .../widgets/spam_report_banner_widget.dart | 3 +-- model/lib/email/presentation_email.dart | 11 -------- .../presentation_email_extension.dart | 18 ++----------- 28 files changed, 122 insertions(+), 105 deletions(-) diff --git a/lib/features/base/base_mailbox_controller.dart b/lib/features/base/base_mailbox_controller.dart index 156e504d4..78cfe838e 100644 --- a/lib/features/base/base_mailbox_controller.dart +++ b/lib/features/base/base_mailbox_controller.dart @@ -412,7 +412,7 @@ abstract class BaseMailboxController extends BaseController { }) { if (responsiveUtils.isLandscapeMobile(context) || responsiveUtils.isPortraitMobile(context)) { (ConfirmationDialogActionSheetBuilder(context) - ..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) + ..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.getDisplayName(context))) ..onCancelAction(AppLocalizations.of(context).cancel, () => popBack()) ..onConfirmAction(AppLocalizations.of(context).delete, () => onDeleteMailboxAction(presentationMailbox)) ).show(); @@ -424,7 +424,7 @@ abstract class BaseMailboxController extends BaseController { child: (ConfirmDialogBuilder(imagePaths) ..key(const Key('confirm_dialog_delete_mailbox')) ..title(AppLocalizations.of(context).delete_mailboxes) - ..content(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) + ..content(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.getDisplayName(context))) ..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog, fit: BoxFit.fill)) ..colorConfirmButton(AppColor.colorConfirmActionDialog) ..styleTextConfirmButton(const TextStyle( diff --git a/lib/features/base/mixin/mailbox_action_handler_mixin.dart b/lib/features/base/mixin/mailbox_action_handler_mixin.dart index 8fcfd3e78..a543cfb3a 100644 --- a/lib/features/base/mixin/mailbox_action_handler_mixin.dart +++ b/lib/features/base/mixin/mailbox_action_handler_mixin.dart @@ -6,6 +6,7 @@ import 'package:get/get.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -28,14 +29,13 @@ mixin MailboxActionHandlerMixin { final session = dashboardController.sessionCurrent; final accountId = dashboardController.accountId.value; final mailboxId = presentationMailbox.id; - final mailboxName = presentationMailbox.name; final countEmailsUnread = presentationMailbox.unreadEmails?.value.value ?? 0; - if (session != null && accountId != null && mailboxName != null) { + if (session != null && accountId != null) { dashboardController.markAsReadMailbox( session, accountId, mailboxId, - mailboxName, + presentationMailbox.getDisplayName(context), countEmailsUnread.toInt() ); diff --git a/lib/features/email/presentation/widgets/app_bar_mail_widget_builder.dart b/lib/features/email/presentation/widgets/app_bar_mail_widget_builder.dart index 457e80098..ca64f4f4d 100644 --- a/lib/features/email/presentation/widgets/app_bar_mail_widget_builder.dart +++ b/lib/features/email/presentation/widgets/app_bar_mail_widget_builder.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/utils/app_utils.dart'; @@ -74,7 +75,7 @@ class AppBarMailWidgetBuilder extends StatelessWidget { constraints: BoxConstraints( maxWidth: _responsiveUtils.getSizeScreenWidth(context) - 250), child: Text( - mailboxContain?.name?.name.capitalizeFirstEach ?? '', + mailboxContain?.getDisplayName(context) ?? '', maxLines: 1, overflow: CommonTextStyle.defaultTextOverFlow, softWrap: CommonTextStyle.defaultSoftWrap, diff --git a/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart b/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart index 9289f1d2c..1a7bce53b 100644 --- a/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart +++ b/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart @@ -1,5 +1,5 @@ -import 'package:core/core.dart'; -import 'package:model/model.dart'; +import 'package:core/presentation/resources/image_paths.dart'; +import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:tmail_ui_user/main/routes/app_routes.dart'; import 'package:tmail_ui_user/main/routes/navigation_router.dart'; import 'package:tmail_ui_user/main/routes/route_utils.dart'; @@ -9,21 +9,21 @@ extension PresentationMailboxExtension on PresentationMailbox { String getMailboxIcon(ImagePaths imagePaths) { if (hasRole()) { switch(role!.value) { - case 'inbox': + case PresentationMailbox.inboxRole: return imagePaths.icMailboxInbox; - case 'drafts': + case PresentationMailbox.draftsRole: return imagePaths.icMailboxDrafts; - case 'outbox': + case PresentationMailbox.outboxRole: return imagePaths.icMailboxOutbox; - case 'archive': + case PresentationMailbox.archiveRole: return imagePaths.icMailboxArchived; - case 'sent': + case PresentationMailbox.sentRole: return imagePaths.icMailboxSent; - case 'trash': + case PresentationMailbox.trashRole: return imagePaths.icMailboxTrash; - case 'spam': + case PresentationMailbox.spamRole: return imagePaths.icMailboxSpam; - case 'templates': + case PresentationMailbox.templatesRole: return imagePaths.icMailboxTemplate; case 'all_mail': return imagePaths.icMailboxAllMail; diff --git a/lib/features/mailbox/domain/model/move_mailbox_request.dart b/lib/features/mailbox/domain/model/move_mailbox_request.dart index 8b1f0130b..31c845e60 100644 --- a/lib/features/mailbox/domain/model/move_mailbox_request.dart +++ b/lib/features/mailbox/domain/model/move_mailbox_request.dart @@ -6,7 +6,7 @@ import 'package:tmail_ui_user/features/email/domain/model/move_action.dart'; class MoveMailboxRequest with EquatableMixin { final MailboxId? destinationMailboxId; - final MailboxName? destinationMailboxName; + final String? destinationMailboxDisplayName; final MailboxId? parentId; final MailboxId mailboxId; final MoveAction moveAction; @@ -17,7 +17,7 @@ class MoveMailboxRequest with EquatableMixin { { this.parentId, this.destinationMailboxId, - this.destinationMailboxName + this.destinationMailboxDisplayName } ); @@ -27,6 +27,6 @@ class MoveMailboxRequest with EquatableMixin { moveAction, parentId, destinationMailboxId, - destinationMailboxName + destinationMailboxDisplayName ]; } \ No newline at end of file diff --git a/lib/features/mailbox/domain/state/mark_as_mailbox_read_state.dart b/lib/features/mailbox/domain/state/mark_as_mailbox_read_state.dart index 483e84b97..129193458 100644 --- a/lib/features/mailbox/domain/state/mark_as_mailbox_read_state.dart +++ b/lib/features/mailbox/domain/state/mark_as_mailbox_read_state.dart @@ -28,9 +28,9 @@ class UpdatingMarkAsMailboxReadState extends UIState { class MarkAsMailboxReadAllSuccess extends UIActionState { - final MailboxName mailboxName; + final String mailboxDisplayName; - MarkAsMailboxReadAllSuccess(this.mailboxName, + MarkAsMailboxReadAllSuccess(this.mailboxDisplayName, { jmap.State? currentEmailState, jmap.State? currentMailboxState, @@ -38,16 +38,16 @@ class MarkAsMailboxReadAllSuccess extends UIActionState { ) : super(currentMailboxState, currentEmailState); @override - List get props => [mailboxName]; + List get props => [mailboxDisplayName]; } class MarkAsMailboxReadHasSomeEmailFailure extends UIActionState { - final MailboxName mailboxName; + final String mailboxDisplayName; final int countEmailsRead; MarkAsMailboxReadHasSomeEmailFailure( - this.mailboxName, + this.mailboxDisplayName, this.countEmailsRead, { jmap.State? currentEmailState, @@ -56,7 +56,7 @@ class MarkAsMailboxReadHasSomeEmailFailure extends UIActionState { ) : super(currentMailboxState, currentEmailState); @override - List get props => [mailboxName, countEmailsRead]; + List get props => [mailboxDisplayName, countEmailsRead]; } class MarkAsMailboxReadAllFailure extends FeatureFailure { diff --git a/lib/features/mailbox/domain/state/move_mailbox_state.dart b/lib/features/mailbox/domain/state/move_mailbox_state.dart index b4648d842..7893ac1fb 100644 --- a/lib/features/mailbox/domain/state/move_mailbox_state.dart +++ b/lib/features/mailbox/domain/state/move_mailbox_state.dart @@ -12,7 +12,7 @@ class MoveMailboxSuccess extends UIActionState { final MoveAction moveAction; final MailboxId? parentId; final MailboxId? destinationMailboxId; - final MailboxName? destinationMailboxName; + final String? destinationMailboxDisplayName; MoveMailboxSuccess( this.mailboxIdSelected, @@ -20,7 +20,7 @@ class MoveMailboxSuccess extends UIActionState { { this.parentId, this.destinationMailboxId, - this.destinationMailboxName, + this.destinationMailboxDisplayName, jmap.State? currentEmailState, jmap.State? currentMailboxState, } @@ -29,14 +29,17 @@ class MoveMailboxSuccess extends UIActionState { @override List get props => [ mailboxIdSelected, + moveAction, parentId, - destinationMailboxId]; + destinationMailboxId, + destinationMailboxDisplayName, + ...super.props + ]; } class MoveMailboxFailure extends FeatureFailure { - final dynamic exception; - MoveMailboxFailure(this.exception); + MoveMailboxFailure(dynamic exception) : super(exception: exception); @override List get props => [exception]; diff --git a/lib/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart b/lib/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart index cf9d4355f..b078d9061 100644 --- a/lib/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart +++ b/lib/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart @@ -19,7 +19,7 @@ class MarkAsMailboxReadInteractor { Session session, AccountId accountId, MailboxId mailboxId, - MailboxName mailboxName, + String mailboxDisplayName, int totalEmailUnread, StreamController> onProgressController ) async* { @@ -44,15 +44,15 @@ class MarkAsMailboxReadInteractor { if (totalEmailUnread == listEmails.length) { yield Right(MarkAsMailboxReadAllSuccess( - mailboxName, - currentEmailState: currentEmailState, - currentMailboxState: currentMailboxState)); + mailboxDisplayName, + currentEmailState: currentEmailState, + currentMailboxState: currentMailboxState)); } else if (listEmails.isNotEmpty) { yield Right(MarkAsMailboxReadHasSomeEmailFailure( - mailboxName, - listEmails.length, - currentEmailState: currentEmailState, - currentMailboxState: currentMailboxState)); + mailboxDisplayName, + listEmails.length, + currentEmailState: currentEmailState, + currentMailboxState: currentMailboxState)); } else { yield Left(MarkAsMailboxReadAllFailure()); } diff --git a/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart b/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart index fba31e751..acf3687af 100644 --- a/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart +++ b/lib/features/mailbox/domain/usecases/move_mailbox_interactor.dart @@ -23,7 +23,7 @@ class MoveMailboxInteractor { request.moveAction, parentId: request.parentId, destinationMailboxId: request.destinationMailboxId, - destinationMailboxName: request.destinationMailboxName, + destinationMailboxDisplayName: request.destinationMailboxDisplayName, currentMailboxState: currentMailboxState)); } else { yield Left(MoveMailboxFailure(null)); diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index 8585ac294..a937dc01a 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -51,6 +51,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/rename_mailbox_in import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_multiple_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories_expand_mode.dart'; @@ -615,7 +616,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM context, selectedMailboxList.first, mailboxDashBoardController, - onMovingMailboxAction: _invokeMovingMailboxAction + onMovingMailboxAction: (mailboxSelected, destinationMailbox) => _invokeMovingMailboxAction(context, mailboxSelected, destinationMailbox) ); break; default: @@ -769,6 +770,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM } void _handleMovingMailbox( + BuildContext context, Session session, AccountId accountId, MoveAction moveAction, @@ -782,7 +784,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM mailboxSelected.id, moveAction, destinationMailboxId: destinationMailbox?.id, - destinationMailboxName: destinationMailbox?.name, + destinationMailboxDisplayName: destinationMailbox?.getDisplayName(context), parentId: mailboxSelected.parentId))); } @@ -793,7 +795,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM _appToast.showToastMessage( currentOverlayContext!, AppLocalizations.of(currentContext!).moved_to_mailbox( - success.destinationMailboxName?.name ?? AppLocalizations.of(currentContext!).allMailboxes), + success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allMailboxes), actionName: AppLocalizations.of(currentContext!).undo, onActionClick: () { _undoMovingMailbox(MoveMailboxRequest( @@ -905,7 +907,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM context, mailbox, mailboxDashBoardController, - onMovingMailboxAction: _invokeMovingMailboxAction + onMovingMailboxAction: (mailboxSelected, destinationMailbox) => _invokeMovingMailboxAction(context, mailboxSelected, destinationMailbox) ); break; case MailboxActions.markAsRead: @@ -934,11 +936,16 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM } } - void _invokeMovingMailboxAction(PresentationMailbox mailboxSelected, PresentationMailbox? destinationMailbox) { + void _invokeMovingMailboxAction( + BuildContext context, + PresentationMailbox mailboxSelected, + PresentationMailbox? destinationMailbox + ) { final accountId = mailboxDashBoardController.accountId.value; final session = mailboxDashBoardController.sessionCurrent; if (session != null && accountId != null) { _handleMovingMailbox( + context, session, accountId, MoveAction.moving, diff --git a/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart b/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart index ab9a77c0a..2959b0cad 100644 --- a/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart +++ b/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart @@ -11,6 +11,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_controller.dart'; import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/app_bar_mailbox_creator_builder.dart'; import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/create_mailbox_name_input_decoration_builder.dart'; @@ -154,7 +155,7 @@ class MailboxCreatorView extends GetWidget { fit: BoxFit.fill)), const SizedBox(width: 12), Expanded(child: Obx(() => Text( - controller.selectedMailbox.value?.name?.name ?? AppLocalizations.of(context).allMailboxes, + controller.selectedMailbox.value?.getDisplayName(context) ?? AppLocalizations.of(context).allMailboxes, maxLines: 1, softWrap: CommonTextStyle.defaultSoftWrap, overflow: CommonTextStyle.defaultTextOverFlow, diff --git a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart index 3089698af..0de149bea 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart @@ -14,6 +14,7 @@ import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_st import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart'; import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart'; import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/input_field_focus_manager.dart'; @@ -143,7 +144,12 @@ class AdvancedFilterController extends BaseController { if (destinationMailbox is PresentationMailbox) { _destinationMailboxSelected = destinationMailbox; - final mailboxName = destinationMailbox.name?.name; + String? mailboxName; + if (context.mounted) { + mailboxName = _destinationMailboxSelected?.getDisplayName(context); + } else { + mailboxName = _destinationMailboxSelected?.name?.name; + } mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(mailboxName); } } @@ -246,7 +252,7 @@ class AdvancedFilterController extends BaseController { if (searchEmailFilter.mailbox == null) { mailBoxFilterInputController.text = AppLocalizations.of(context).allMailboxes; } else { - mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(searchEmailFilter.mailbox?.name?.name); + mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(searchEmailFilter.mailbox?.getDisplayName(context)); } hasAttachment.value = searchEmailFilter.hasAttachment; } 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 31dd203b5..9fa1775f3 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -53,6 +53,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_r import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart'; import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_app_dashboard_configuration_state.dart'; @@ -1062,7 +1063,7 @@ class MailboxDashBoardController extends ReloadableController { ..messageText(actionType.getContentDialog( context, count: listEmails?.length, - mailboxName: mailboxCurrent?.name?.name)) + mailboxName: mailboxCurrent?.getDisplayName(context))) ..onCancelAction(AppLocalizations.of(context).cancel, () => popBack()) ..onConfirmAction( actionType.getConfirmActionName(context), @@ -1081,7 +1082,7 @@ class MailboxDashBoardController extends ReloadableController { ..content(actionType.getContentDialog( context, count: listEmails?.length, - mailboxName: mailboxCurrent?.name?.name)) + mailboxName: mailboxCurrent?.getDisplayName(context))) ..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, fit: BoxFit.fill)) ..colorConfirmButton(AppColor.colorConfirmActionDialog) ..styleTextConfirmButton(const TextStyle( @@ -1253,14 +1254,19 @@ class MailboxDashBoardController extends ReloadableController { filterMessageOption.value = FilterMessageOption.all; } - void markAsReadMailboxAction() { + void markAsReadMailboxAction(BuildContext context) { final session = sessionCurrent; final currentAccountId = accountId.value; final mailboxId = selectedMailbox.value?.id; - final mailboxName = selectedMailbox.value?.name; final countEmailsUnread = selectedMailbox.value?.unreadEmails?.value.value ?? 0; - if (session != null && currentAccountId != null && mailboxId != null && mailboxName != null) { - markAsReadMailbox(session, currentAccountId, mailboxId, mailboxName, countEmailsUnread.toInt()); + if (session != null && currentAccountId != null && mailboxId != null) { + markAsReadMailbox( + session, + currentAccountId, + mailboxId, + selectedMailbox.value?.getDisplayName(context) ?? '', + countEmailsUnread.toInt() + ); } } @@ -1268,14 +1274,14 @@ class MailboxDashBoardController extends ReloadableController { Session session, AccountId accountId, MailboxId mailboxId, - MailboxName mailboxName, + String mailboxDisplayName, int totalEmailsUnread ) { consumeState(_markAsMailboxReadInteractor.execute( session, accountId, mailboxId, - mailboxName, + mailboxDisplayName, totalEmailsUnread, _progressStateController)); } @@ -1287,14 +1293,14 @@ class MailboxDashBoardController extends ReloadableController { if (currentContext != null && currentOverlayContext != null) { _appToast.showToastSuccessMessage( currentOverlayContext!, - AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadSuccess(success.mailboxName.name), + AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadSuccess(success.mailboxDisplayName), leadingSVGIcon: _imagePaths.icReadToast); } } else if (success is MarkAsMailboxReadHasSomeEmailFailure) { if (currentContext != null && currentOverlayContext != null) { _appToast.showToastSuccessMessage( currentOverlayContext!, - AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadHasSomeEmailFailure(success.mailboxName.name, success.countEmailsRead), + AppLocalizations.of(currentContext!).toastMessageMarkAsMailboxReadHasSomeEmailFailure(success.mailboxDisplayName, success.countEmailsRead), leadingSVGIcon: _imagePaths.icReadToast); } } 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 d498f599a..e646f9d03 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart @@ -1,5 +1,6 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; +import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; @@ -9,6 +10,7 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart import 'package:model/extensions/mailbox_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.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'; @@ -64,7 +66,7 @@ class SpamReportController extends BaseController { } } - void dismissSpamReportAction() { + void dismissSpamReportAction(BuildContext context) { if (Get.isRegistered()) { final mailboxDashBoardController = Get.find(); final spamMailbox = _presentationSpamMailbox.value; @@ -78,7 +80,7 @@ class SpamReportController extends BaseController { session, accountId, spamMailbox.id, - spamMailbox.name ?? MailboxName(''), + spamMailbox.getDisplayName(context), spamMailbox.unreadEmails?.value.value.toInt() ?? 0 ); _presentationSpamMailbox.value = null; 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 c8627eaf3..611cd0807 100644 --- a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart +++ b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart @@ -393,7 +393,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { ..textStyle(const TextStyle( fontSize: 12, color: AppColor.colorTextButtonHeaderThread)) - ..onPressActionClick(() => controller.markAsReadMailboxAction()) + ..onPressActionClick(() => controller.markAsReadMailboxAction(context)) ..text(AppLocalizations.of(context).mark_all_as_read, isVertical: false)) .build(), ), diff --git a/lib/features/mailbox_dashboard/presentation/widgets/spam_report_banner_web_widget.dart b/lib/features/mailbox_dashboard/presentation/widgets/spam_report_banner_web_widget.dart index de70fb87e..7c86ba3a3 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/spam_report_banner_web_widget.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/spam_report_banner_web_widget.dart @@ -83,7 +83,7 @@ class SpamReportBannerWebWidget extends StatelessWidget { left: 16, child: buildSVGIconButton( icon: imagePaths.icCloseComposer, - onTap: spamReportController.dismissSpamReportAction, + onTap: () => spamReportController.dismissSpamReportAction(context), ), ) else @@ -92,7 +92,7 @@ class SpamReportBannerWebWidget extends StatelessWidget { right: 16, child: buildSVGIconButton( icon: imagePaths.icCloseComposer, - onTap: spamReportController.dismissSpamReportAction, + onTap: () => spamReportController.dismissSpamReportAction(context), ), ) ], diff --git a/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart b/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart index d760cfe32..d14edfef1 100644 --- a/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart +++ b/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart @@ -19,6 +19,7 @@ import 'package:tmail_ui_user/features/base/base_mailbox_controller.dart'; import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart'; import 'package:tmail_ui_user/features/mailbox/domain/state/get_all_mailboxes_state.dart'; import 'package:tmail_ui_user/features/mailbox/domain/usecases/get_all_mailbox_interactor.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart'; import 'package:tmail_ui_user/features/mailbox_creator/domain/model/verification/empty_name_validator.dart'; @@ -234,7 +235,7 @@ class RulesFilterCreatorController extends BaseMailboxController { mailboxSelected.value = destinationMailbox; errorRuleActionValue.value = _getErrorStringByInputValue( context, - mailboxSelected.value?.name?.name); + mailboxSelected.value?.getDisplayName(context)); } } } @@ -256,7 +257,7 @@ class RulesFilterCreatorController extends BaseMailboxController { return; } - final errorAction = _getErrorStringByInputValue(context, mailboxSelected.value?.name?.name); + final errorAction = _getErrorStringByInputValue(context, mailboxSelected.value?.getDisplayName(context)); if (errorAction?.isNotEmpty == true) { errorRuleActionValue.value = errorAction; if (currentOverlayContext != null && currentContext != null) { diff --git a/lib/features/rules_filter_creator/presentation/widgets/rule_filter_button_field.dart b/lib/features/rules_filter_creator/presentation/widgets/rule_filter_button_field.dart index ba2c8f806..6f1c19d34 100644 --- a/lib/features/rules_filter_creator/presentation/widgets/rule_filter_button_field.dart +++ b/lib/features/rules_filter_creator/presentation/widgets/rule_filter_button_field.dart @@ -7,6 +7,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/extensions/rule_condition_extensions.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart'; @@ -59,7 +60,7 @@ class RuleFilterButtonField extends StatelessWidget { String _getName(BuildContext context, T? value) { if (value is PresentationMailbox) { - return value.name?.name ?? ''; + return value.getDisplayName(context); } if (value is rule_condition.Field) { return value.getTitle(context); diff --git a/lib/features/search/email/presentation/model/simple_search_filter.dart b/lib/features/search/email/presentation/model/simple_search_filter.dart index 974ae997e..dd51c159a 100644 --- a/lib/features/search/email/presentation/model/simple_search_filter.dart +++ b/lib/features/search/email/presentation/model/simple_search_filter.dart @@ -9,6 +9,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart'; import 'package:model/email/prefix_email_address.dart'; import 'package:model/extensions/email_filter_condition_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart'; import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; @@ -165,5 +166,5 @@ extension SearchEmailFilterExtension on SimpleSearchFilter { } } - String get mailboxName => mailbox?.name?.name ?? ''; + String getMailboxName(BuildContext context) => mailbox?.getDisplayName(context) ?? ''; } \ No newline at end of file diff --git a/lib/features/search/email/presentation/search_email_view.dart b/lib/features/search/email/presentation/search_email_view.dart index 2a68e2b0d..b5d75e651 100644 --- a/lib/features/search/email/presentation/search_email_view.dart +++ b/lib/features/search/email/presentation/search_email_view.dart @@ -537,8 +537,8 @@ class SearchEmailView extends GetWidget const SizedBox(width: 4), Text( filterSelected - ? controller.simpleSearchFilter.value.mailboxName - : AppLocalizations.of(context).mailbox, + ? controller.simpleSearchFilter.value.getMailboxName(context) + : AppLocalizations.of(context).mailbox, maxLines: 1, overflow: CommonTextStyle.defaultTextOverFlow, softWrap: CommonTextStyle.defaultSoftWrap, diff --git a/lib/features/search/mailbox/presentation/search_mailbox_controller.dart b/lib/features/search/mailbox/presentation/search_mailbox_controller.dart index a3d9fe0da..0e1df4056 100644 --- a/lib/features/search/mailbox/presentation/search_mailbox_controller.dart +++ b/lib/features/search/mailbox/presentation/search_mailbox_controller.dart @@ -46,6 +46,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/search_mailbox_in import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/domain/usecases/subscribe_multiple_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_utils.dart'; @@ -264,7 +265,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa context, mailbox, dashboardController, - onMovingMailboxAction: _invokeMovingMailboxAction + onMovingMailboxAction: (mailboxSelected, destinationMailbox) => _invokeMovingMailboxAction(context, mailboxSelected, destinationMailbox) ); break; case MailboxActions.delete: @@ -310,11 +311,16 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa } } - void _invokeMovingMailboxAction(PresentationMailbox mailboxSelected, PresentationMailbox? destinationMailbox) { + void _invokeMovingMailboxAction( + BuildContext context, + PresentationMailbox mailboxSelected, + PresentationMailbox? destinationMailbox + ) { final accountId = dashboardController.accountId.value; final session = dashboardController.sessionCurrent; if (session != null && accountId != null) { _handleMovingMailbox( + context, session, accountId, MoveAction.moving, @@ -325,6 +331,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa } void _handleMovingMailbox( + BuildContext context, Session session, AccountId accountId, MoveAction moveAction, @@ -338,7 +345,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa mailboxSelected.id, moveAction, destinationMailboxId: destinationMailbox?.id, - destinationMailboxName: destinationMailbox?.name, + destinationMailboxDisplayName: destinationMailbox?.getDisplayName(context), parentId: mailboxSelected.parentId ) )); @@ -348,7 +355,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa if (success.moveAction == MoveAction.moving && currentOverlayContext != null && currentContext != null) { _appToast.showToastMessage( currentOverlayContext!, - AppLocalizations.of(currentContext!).moved_to_mailbox(success.destinationMailboxName?.name ?? AppLocalizations.of(currentContext!).allMailboxes), + AppLocalizations.of(currentContext!).moved_to_mailbox(success.destinationMailboxDisplayName ?? AppLocalizations.of(currentContext!).allMailboxes), actionName: AppLocalizations.of(currentContext!).undo, onActionClick: () { _undoMovingMailbox(MoveMailboxRequest( diff --git a/lib/features/thread/presentation/mixin/base_email_item_tile.dart b/lib/features/thread/presentation/mixin/base_email_item_tile.dart index 0a68cb89d..5a997cda0 100644 --- a/lib/features/thread/presentation/mixin/base_email_item_tile.dart +++ b/lib/features/thread/presentation/mixin/base_email_item_tile.dart @@ -15,6 +15,7 @@ import 'package:model/email/presentation_email.dart'; import 'package:model/extensions/presentation_email_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:model/mailbox/select_mode.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; @@ -27,6 +28,7 @@ mixin BaseEmailItemTile { final imagePaths = Get.find(); Widget buildMailboxContain( + BuildContext context, bool isSearchEmailRunning, PresentationEmail email ) { @@ -41,7 +43,7 @@ mixin BaseEmailItemTile { borderRadius: BorderRadius.circular(10), color: AppColor.backgroundCounterMailboxColor), child: TextOverflowBuilder( - email.mailboxName, + email.mailboxContain?.getDisplayName(context) ?? '', style: const TextStyle( fontSize: 10, color: AppColor.mailboxTextColor, @@ -64,7 +66,7 @@ mixin BaseEmailItemTile { email.hasRead ? AppColor.colorContentEmail : AppColor.colorNameEmail; bool hasMailboxLabel(bool isSearchEmailRunning, PresentationEmail email) { - return isSearchEmailRunning && email.mailboxName.isNotEmpty; + return isSearchEmailRunning && email.mailboxContain != null; } String informationSender(PresentationEmail email, PresentationMailbox? mailbox) { diff --git a/lib/features/thread/presentation/widgets/app_bar_thread_widget_builder.dart b/lib/features/thread/presentation/widgets/app_bar_thread_widget_builder.dart index a9c1d8ddd..d20831b14 100644 --- a/lib/features/thread/presentation/widgets/app_bar_thread_widget_builder.dart +++ b/lib/features/thread/presentation/widgets/app_bar_thread_widget_builder.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; @@ -75,7 +76,7 @@ class AppBarThreadWidgetBuilder extends StatelessWidget { child: _buildMenuButton(), ), Expanded(child: Text( - _currentMailbox?.name?.name.capitalizeFirstEach ?? '', + _currentMailbox?.getDisplayName(context) ?? '', maxLines: 1, overflow: CommonTextStyle.defaultTextOverFlow, softWrap: CommonTextStyle.defaultSoftWrap, @@ -380,7 +381,7 @@ class AppBarThreadWidgetBuilder extends StatelessWidget { Container( constraints: BoxConstraints(maxWidth: constraints.maxWidth - 220), child: Text( - _currentMailbox?.name?.name.capitalizeFirstEach ?? '', + _currentMailbox?.getDisplayName(context) ?? '', maxLines: 1, softWrap: CommonTextStyle.defaultSoftWrap, overflow: CommonTextStyle.defaultTextOverFlow, diff --git a/lib/features/thread/presentation/widgets/email_tile_builder.dart b/lib/features/thread/presentation/widgets/email_tile_builder.dart index f1c8eb60a..2480d0570 100644 --- a/lib/features/thread/presentation/widgets/email_tile_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_builder.dart @@ -111,6 +111,7 @@ class EmailTileBuilder with BaseEmailItemTile { isSearchEmailRunning, _searchQuery)), buildMailboxContain( + _context, isSearchEmailRunning, _presentationEmail), if (_presentationEmail.hasStarred) diff --git a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart index beba668a5..b18ca9db1 100644 --- a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart @@ -177,6 +177,7 @@ class EmailTileBuilder with BaseEmailItemTile { _searchQuery )), buildMailboxContain( + _context, isSearchEmailRunning, _presentationEmail ), @@ -265,6 +266,7 @@ class EmailTileBuilder with BaseEmailItemTile { _searchQuery )), buildMailboxContain( + _context, isSearchEmailRunning, _presentationEmail ), @@ -488,6 +490,7 @@ class EmailTileBuilder with BaseEmailItemTile { Widget _buildDateTimeForDesktopScreen() { return Row(children: [ buildMailboxContain( + _context, isSearchEmailRunning, _presentationEmail ), diff --git a/lib/features/thread/presentation/widgets/spam_report_banner_widget.dart b/lib/features/thread/presentation/widgets/spam_report_banner_widget.dart index 52a784b0d..e35565c2c 100644 --- a/lib/features/thread/presentation/widgets/spam_report_banner_widget.dart +++ b/lib/features/thread/presentation/widgets/spam_report_banner_widget.dart @@ -74,8 +74,7 @@ class SpamReportBannerWidget extends StatelessWidget { context, AppLocalizations.of(context).dismiss, AppColor.textFieldErrorBorderColor, - () => spamReportController - .dismissSpamReportAction()), + () => spamReportController.dismissSpamReportAction(context)), ), ], ), diff --git a/model/lib/email/presentation_email.dart b/model/lib/email/presentation_email.dart index 2ef1479cb..2c8962919 100644 --- a/model/lib/email/presentation_email.dart +++ b/model/lib/email/presentation_email.dart @@ -32,7 +32,6 @@ class PresentationEmail with EquatableMixin { final Set? bcc; final Set? replyTo; final Map? mailboxIds; - final List? mailboxNames; final SelectMode selectMode; final Uri? routeWeb; final PresentationMailbox? mailboxContain; @@ -55,7 +54,6 @@ class PresentationEmail with EquatableMixin { this.bcc, this.replyTo, this.mailboxIds, - this.mailboxNames, this.selectMode = SelectMode.INACTIVE, this.routeWeb, this.mailboxContain, @@ -97,14 +95,6 @@ class PresentationEmail with EquatableMixin { bool get withAttachments => hasAttachment == true; - String get mailboxName { - if (mailboxNames?.isNotEmpty == true) { - return mailboxNames?.first?.name ?? ''; - } else { - return ''; - } - } - String get routeWebAsString => routeWeb.toString(); bool get pushNotificationActivated => !isDraft && !hasRead; @@ -139,7 +129,6 @@ class PresentationEmail with EquatableMixin { preview, hasAttachment, mailboxIds, - mailboxNames, selectMode, routeWeb, mailboxContain, diff --git a/model/lib/extensions/presentation_email_extension.dart b/model/lib/extensions/presentation_email_extension.dart index a95308b96..58379e4c5 100644 --- a/model/lib/extensions/presentation_email_extension.dart +++ b/model/lib/extensions/presentation_email_extension.dart @@ -50,7 +50,6 @@ extension PresentationEmailExtension on PresentationEmail { bcc: bcc, replyTo: replyTo, mailboxIds: mailboxIds, - mailboxNames: mailboxNames, selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE, routeWeb: routeWeb, mailboxContain: mailboxContain @@ -73,7 +72,6 @@ extension PresentationEmailExtension on PresentationEmail { bcc: bcc, replyTo: replyTo, mailboxIds: mailboxIds, - mailboxNames: mailboxNames, selectMode: selectMode, routeWeb: routeWeb, mailboxContain: mailboxContain @@ -133,15 +131,7 @@ extension PresentationEmailExtension on PresentationEmail { PresentationEmail toSearchPresentationEmail(Map mapMailboxes) { mailboxIds?.removeWhere((key, value) => !value); - final listMailboxId = mailboxIds?.entries - .where((entry) => entry.value) - .map((entry) => entry.key) - .toList(); - - final listMailboxName = listMailboxId - ?.map((mailboxId) => mapMailboxes.containsKey(mailboxId) ? mapMailboxes[mailboxId]?.name : null) - .where((mailboxName) => mailboxName != null) - .toList(); + final matchedMailbox = findMailboxContain(mapMailboxes); return PresentationEmail( id: this.id, @@ -158,10 +148,9 @@ extension PresentationEmailExtension on PresentationEmail { bcc: bcc, replyTo: replyTo, mailboxIds: mailboxIds, - mailboxNames: listMailboxName, selectMode: selectMode, routeWeb: routeWeb, - mailboxContain: mailboxContain + mailboxContain: matchedMailbox ); } @@ -194,7 +183,6 @@ extension PresentationEmailExtension on PresentationEmail { bcc: bcc, replyTo: replyTo, mailboxIds: mailboxIds, - mailboxNames: mailboxNames, selectMode: selectMode, routeWeb: routeWeb, mailboxContain: mailboxContain @@ -217,7 +205,6 @@ extension PresentationEmailExtension on PresentationEmail { bcc: bcc, replyTo: replyTo, mailboxIds: mailboxIds, - mailboxNames: mailboxNames, selectMode: selectMode, routeWeb: routeWeb, mailboxContain: mailboxContain @@ -240,7 +227,6 @@ extension PresentationEmailExtension on PresentationEmail { bcc: bcc, replyTo: replyTo, mailboxIds: mailboxIds, - mailboxNames: mailboxNames, selectMode: selectMode, routeWeb: routeWeb, mailboxContain: mailboxContain