diff --git a/assets/images/ic_thumbs_up.svg b/assets/images/ic_thumbs_up.svg
new file mode 100644
index 000000000..6783c7c53
--- /dev/null
+++ b/assets/images/ic_thumbs_up.svg
@@ -0,0 +1,3 @@
+
diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart
index d220549a7..cea0e2cdf 100644
--- a/core/lib/presentation/resources/image_paths.dart
+++ b/core/lib/presentation/resources/image_paths.dart
@@ -277,6 +277,7 @@ class ImagePaths {
String get icAiMorePolite => _getImagePath('ic_ai_more_polite.svg');
String get icTag => _getImagePath('ic_tag.svg');
String get icColorPicker => _getImagePath('ic_color_picker.svg');
+ String get icThumbsUp => _getImagePath('ic_thumbs_up.svg');
String _getImagePath(String imageName) {
return AssetsPaths.images + imageName;
diff --git a/lib/features/composer/presentation/extensions/email_action_type_extension.dart b/lib/features/composer/presentation/extensions/email_action_type_extension.dart
index 99263639d..0a1ba7414 100644
--- a/lib/features/composer/presentation/extensions/email_action_type_extension.dart
+++ b/lib/features/composer/presentation/extensions/email_action_type_extension.dart
@@ -175,6 +175,8 @@ extension EmailActionTypeExtension on EmailActionType {
case EmailActionType.moveToTrash:
case EmailActionType.deletePermanently:
return imagePaths.icDeleteComposer;
+ case EmailActionType.labelAs:
+ return imagePaths.icTag;
default:
return '';
}
@@ -222,6 +224,8 @@ extension EmailActionTypeExtension on EmailActionType {
return appLocalizations.move_to_trash;
case EmailActionType.deletePermanently:
return appLocalizations.delete_permanently;
+ case EmailActionType.labelAs:
+ return appLocalizations.labelAs;
default:
return '';
}
diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart
index 4a9cffda1..ec1378ad0 100644
--- a/lib/features/email/presentation/controller/single_email_controller.dart
+++ b/lib/features/email/presentation/controller/single_email_controller.dart
@@ -1551,4 +1551,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
_threadDetailController?.onNextMobile();
}
}
+
+ bool get isLabelFeatureEnabled {
+ return mailboxDashBoardController.isLabelCapabilitySupported &&
+ mailboxDashBoardController.labelController.isLabelSettingEnabled.isTrue;
+ }
}
\ No newline at end of file
diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart
index baf1b26cc..c6688fb05 100644
--- a/lib/features/email/presentation/email_view.dart
+++ b/lib/features/email/presentation/email_view.dart
@@ -102,6 +102,7 @@ class EmailView extends GetWidget {
handleEmailAction: controller.handleEmailAction,
additionalActions: [],
emailIsRead: presentationEmail.hasRead,
+ isLabelFeatureEnabled: controller.isLabelFeatureEnabled,
openBottomSheetContextMenu: controller.mailboxDashBoardController.openBottomSheetContextMenu,
openPopupMenu: controller.mailboxDashBoardController.openPopupMenuActionGroup,
);
@@ -307,6 +308,7 @@ class EmailView extends GetWidget {
EmailActionType.deletePermanently,
],
emailIsRead: presentationEmail.hasRead,
+ isLabelFeatureEnabled: controller.isLabelFeatureEnabled,
openBottomSheetContextMenu: controller.mailboxDashBoardController.openBottomSheetContextMenu,
openPopupMenu: controller.mailboxDashBoardController.openPopupMenuActionGroup,
),
diff --git a/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart b/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart
index 35cd624e1..7d4f5341b 100644
--- a/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart
+++ b/lib/features/email/presentation/utils/email_action_reactor/email_action_reactor.dart
@@ -483,6 +483,7 @@ class EmailActionReactor {
) handleEmailAction,
required List additionalActions,
required bool emailIsRead,
+ required bool isLabelFeatureEnabled,
required OpenBottomSheetContextMenuAction openBottomSheetContextMenu,
required OpenPopupMenuActionGroup openPopupMenu,
}) {
@@ -499,6 +500,8 @@ class EmailActionReactor {
if (EmailUtils.isReplyToListEnabled(presentationEmail.listPost ?? '') &&
additionalActions.contains(EmailActionType.replyToList))
EmailActionType.replyToList,
+ if (isLabelFeatureEnabled)
+ EmailActionType.labelAs,
if (PlatformInfo.isWeb &&
PlatformInfo.isCanvasKit &&
additionalActions.contains(EmailActionType.printAll))
diff --git a/lib/l10n/intl_messages.arb b/lib/l10n/intl_messages.arb
index 8175408a6..3ea2816d4 100644
--- a/lib/l10n/intl_messages.arb
+++ b/lib/l10n/intl_messages.arb
@@ -5289,5 +5289,11 @@
"type": "text",
"placeholders_order": [],
"placeholders": {}
+ },
+ "labelAs": "Label as",
+ "@labelAs": {
+ "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 69baf4746..9fb49d18b 100644
--- a/lib/main/localizations/app_localizations.dart
+++ b/lib/main/localizations/app_localizations.dart
@@ -5619,4 +5619,11 @@ class AppLocalizations {
name: 'theLabelFeatureIsNowAvailable',
);
}
+
+ String get labelAs {
+ return Intl.message(
+ 'Label as',
+ name: 'labelAs',
+ );
+ }
}
diff --git a/model/lib/email/email_action_type.dart b/model/lib/email/email_action_type.dart
index b56c6d057..30cba1d76 100644
--- a/model/lib/email/email_action_type.dart
+++ b/model/lib/email/email_action_type.dart
@@ -4,6 +4,7 @@ enum EmailActionType {
replyToList(1),
forward(1),
replyAll(1),
+ labelAs(1),
compose(),
markAsRead(2),
markAsUnread(2),