diff --git a/assets/images/ic_move_folder_content.svg b/assets/images/ic_move_folder_content.svg new file mode 100644 index 000000000..b3fd99d9a --- /dev/null +++ b/assets/images/ic_move_folder_content.svg @@ -0,0 +1,5 @@ + + + diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart index 2a5d2cb7e..0cfd8d637 100644 --- a/core/lib/presentation/resources/image_paths.dart +++ b/core/lib/presentation/resources/image_paths.dart @@ -255,6 +255,7 @@ class ImagePaths { String get icMessage => _getImagePath('ic_message.svg'); String get icNavigation => _getImagePath('ic_navigation.svg'); String get icReading => _getImagePath('ic_reading.svg'); + String get icMoveFolderContent => _getImagePath('ic_move_folder_content.svg'); String _getImagePath(String imageName) { return AssetsPaths.images + imageName; diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index 752867eea..9cbf0b771 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -1265,6 +1265,8 @@ class MailboxController extends BaseMailboxController case MailboxActions.recoverDeletedMessages: mailboxDashBoardController.gotoEmailRecovery(); break; + case MailboxActions.moveFolderContent: + break; default: break; } diff --git a/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart b/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart index a29a2e371..842eb7d06 100644 --- a/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart +++ b/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart @@ -21,7 +21,6 @@ mixin MailboxWidgetMixin { bool spamReportEnabled, bool deletedMessageVaultSupported ) { - return [ if (PlatformInfo.isWeb) MailboxActions.openInNewTab, @@ -30,18 +29,23 @@ mixin MailboxWidgetMixin { MailboxActions.createFilter, if (mailbox.isTrash) ...[ + MailboxActions.moveFolderContent, MailboxActions.emptyTrash, if (deletedMessageVaultSupported) MailboxActions.recoverDeletedMessages, ] else if (mailbox.isSpam) ...[ + MailboxActions.moveFolderContent, _mailboxActionForSpam(spamReportEnabled), MailboxActions.confirmMailSpam, MailboxActions.emptySpam ] else if (mailbox.countUnReadEmailsAsString.isNotEmpty) - MailboxActions.markAsRead + ...[ + MailboxActions.markAsRead, + MailboxActions.moveFolderContent, + ] ]; } @@ -54,6 +58,7 @@ mixin MailboxWidgetMixin { if (mailbox.countUnReadEmailsAsString.isNotEmpty) MailboxActions.markAsRead, MailboxActions.move, + MailboxActions.moveFolderContent, MailboxActions.rename, if (subaddressingSupported) ...[ if (mailbox.isSubaddressingAllowed) diff --git a/lib/features/mailbox/presentation/model/mailbox_actions.dart b/lib/features/mailbox/presentation/model/mailbox_actions.dart index ad53d139f..38f56b02c 100644 --- a/lib/features/mailbox/presentation/model/mailbox_actions.dart +++ b/lib/features/mailbox/presentation/model/mailbox_actions.dart @@ -10,6 +10,7 @@ enum MailboxActions { delete, rename, move, + moveFolderContent, markAsRead, selectForRuleAction, openInNewTab, @@ -63,6 +64,8 @@ extension MailboxActionsExtension on MailboxActions { return appLocalizations.mark_as_read; case MailboxActions.move: return appLocalizations.moveFolder; + case MailboxActions.moveFolderContent: + return appLocalizations.moveFolderContent; case MailboxActions.rename: return appLocalizations.renameFolder; case MailboxActions.delete: @@ -106,6 +109,8 @@ extension MailboxActionsExtension on MailboxActions { return imagePaths.icMarkAsRead; case MailboxActions.move: return imagePaths.icMoveMailbox; + case MailboxActions.moveFolderContent: + return imagePaths.icMoveFolderContent; case MailboxActions.rename: return imagePaths.icRenameMailbox; case MailboxActions.delete: @@ -172,6 +177,7 @@ extension MailboxActionsExtension on MailboxActions { case MailboxActions.create: case MailboxActions.moveEmail: case MailboxActions.move: + case MailboxActions.moveFolderContent: case MailboxActions.select: case MailboxActions.selectForRuleAction: return true; @@ -190,16 +196,4 @@ extension MailboxActionsExtension on MailboxActions { return false; } } - - bool canCollapseMailboxGroup() { - switch(this) { - case MailboxActions.moveEmail: - case MailboxActions.move: - case MailboxActions.select: - case MailboxActions.selectForRuleAction: - return false; - default: - return true; - } - } } \ No newline at end of file diff --git a/lib/l10n/intl_messages.arb b/lib/l10n/intl_messages.arb index ec8801bf9..083dc4899 100644 --- a/lib/l10n/intl_messages.arb +++ b/lib/l10n/intl_messages.arb @@ -5051,5 +5051,11 @@ "type": "text", "placeholders_order": [], "placeholders": {} + }, + "moveFolderContent": "Move folder content", + "@moveFolderContent": { + "type": "text", + "placeholders_order": [], + "placeholders": {} } } \ No newline at end of file diff --git a/lib/main/localizations/app_localizations.dart b/lib/main/localizations/app_localizations.dart index 33def3be6..951bbad18 100644 --- a/lib/main/localizations/app_localizations.dart +++ b/lib/main/localizations/app_localizations.dart @@ -5345,4 +5345,11 @@ class AppLocalizations { name: 'deleteMessage', ); } + + String get moveFolderContent { + return Intl.message( + 'Move folder content', + name: 'moveFolderContent', + ); + } }