TF-1718 Show dialog unsubscribe mail

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit d29ea95dc63719c35676fd87a82c73c55ee9db0d)
This commit is contained in:
dab246
2023-11-16 00:14:40 +07:00
committed by Dat Vu
parent 94909470af
commit 0b49cf36ee
6 changed files with 83 additions and 6 deletions
@@ -440,6 +440,12 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
if (isShowMessageReadReceipt) {
_handleReadReceipt();
}
if (success.emailCurrent?.hasListUnsubscribe == true) {
_handleUnsubscribe(success.emailCurrent!.listUnsubscribe);
} else {
emailUnsubscribe.value = null;
}
}
}
@@ -956,7 +962,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
void handleEmailAction(BuildContext context, PresentationEmail presentationEmail, EmailActionType actionType) {
switch(actionType) {
case EmailActionType.markAsUnread:
popBack();
markAsEmailRead(presentationEmail, ReadActions.markAsUnread, MarkReadAction.tap);
break;
case EmailActionType.markAsStarred:
@@ -975,16 +980,17 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
deleteEmailPermanently(context, presentationEmail);
break;
case EmailActionType.moveToSpam:
popBack();
moveToSpam(context, presentationEmail);
break;
case EmailActionType.unSpam:
popBack();
unSpam(context, presentationEmail);
break;
case EmailActionType.createRule:
quickCreatingRule(context, presentationEmail.from!.first);
break;
case EmailActionType.unsubscribe:
_unsubscribeEmail(context, presentationEmail);
break;
default:
break;
}
@@ -1392,4 +1398,33 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
);
}
}
void _unsubscribeEmail(BuildContext context, PresentationEmail presentationEmail) {
showConfirmDialogAction(
context,
'',
AppLocalizations.of(context).unsubscribe,
onConfirmAction: () => {},
showAsBottomSheet: true,
title: AppLocalizations.of(context).unsubscribeMail,
icon: SvgPicture.asset(imagePaths.icEmpty),
messageStyle: const TextStyle(
color: AppColor.messageDialogColor,
fontSize: 14,
fontWeight: FontWeight.w500
),
listTextSpan: [
TextSpan(text: AppLocalizations.of(context).unsubscribeMailDialogMessage),
TextSpan(
text: ' ${presentationEmail.getSenderName()}',
style: const TextStyle(
color: AppColor.messageDialogHighlightColor,
fontSize: 15,
fontWeight: FontWeight.w500
),
),
const TextSpan(text: ' ?'),
]
);
}
}