TF-1718 Handle unsubscribe mail by https links

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 7f8843fae854a2ed8ba7ea43b80de84044923d28)
This commit is contained in:
dab246
2023-11-16 00:29:24 +07:00
committed by Dat Vu
parent 0b49cf36ee
commit 67f0b702ab
4 changed files with 31 additions and 4 deletions
@@ -1404,7 +1404,11 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
context,
'',
AppLocalizations.of(context).unsubscribe,
onConfirmAction: () => {},
onConfirmAction: () {
if (emailUnsubscribe.value?.httpLinks.isNotEmpty == true) {
_handleUnsubscribeMailByHttpsLink(context, emailUnsubscribe.value!.httpLinks);
}
},
showAsBottomSheet: true,
title: AppLocalizations.of(context).unsubscribeMail,
icon: SvgPicture.asset(imagePaths.icEmpty),
@@ -1427,4 +1431,14 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
]
);
}
void _handleUnsubscribeMailByHttpsLink(BuildContext context, List<String> httpLinks) async {
log('SingleEmailController::_handleUnsubscribeMailByHttpsLink:httpLinks: $httpLinks');
final result = await AppUtils.launchLink(httpLinks.first);
if (result && context.mounted) {
_appToast.showToastSuccessMessage(
context,
AppLocalizations.of(context).unsubscribedFromThisMailingList);
}
}
}
+7 -1
View File
@@ -1,5 +1,5 @@
{
"@@last_modified": "2023-11-16T00:13:28.374001",
"@@last_modified": "2023-11-16T00:29:04.650547",
"initializing_data": "Initializing data...",
"@initializing_data": {
"type": "text",
@@ -3511,5 +3511,11 @@
"type": "text",
"placeholders_order": [],
"placeholders": {}
},
"unsubscribedFromThisMailingList": "Unsubscribed from this mailing list",
"@unsubscribedFromThisMailingList": {
"type": "text",
"placeholders_order": [],
"placeholders": {}
}
}
@@ -3645,4 +3645,11 @@ class AppLocalizations {
name: 'unsubscribeMailDialogMessage',
);
}
String get unsubscribedFromThisMailingList {
return Intl.message(
'Unsubscribed from this mailing list',
name: 'unsubscribedFromThisMailingList',
);
}
}
+2 -2
View File
@@ -25,8 +25,8 @@ class AppUtils {
);
}
static Future<void> launchLink(String url, {bool isNewTab = true}) async {
await launchUrl(
static Future<bool> launchLink(String url, {bool isNewTab = true}) async {
return await launchUrl(
Uri.parse(url),
webOnlyWindowName: isNewTab ? '_blank' : '_self',
mode: LaunchMode.externalApplication