TF-359 Open a web address and mailto link from EmailView

This commit is contained in:
dab246
2022-04-05 18:49:30 +07:00
committed by Dat H. Pham
parent 8cdb2c6fa4
commit c456cde7a8
11 changed files with 69 additions and 55 deletions
@@ -484,11 +484,11 @@ class EmailController extends BaseController {
showDialog(
context: context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (BuildContext context) => (EmailAddressDialogBuilder(context, imagePaths, emailAddress)
builder: (BuildContext context) => PointerInterceptor(child: (EmailAddressDialogBuilder(context, imagePaths, emailAddress)
..addOnCloseContextMenuAction(() => popBack())
..addOnCopyEmailAddressAction((emailAddress) => copyEmailAddress(context, emailAddress))
..addOnComposeEmailAction((emailAddress) => composeEmailFromEmailAddress(emailAddress)))
.build());
.build()));
}
}
@@ -518,6 +518,29 @@ class EmailController extends BaseController {
}
}
void openMailToLink(Uri? uri) {
log('EmailController::openMailToLink(): ${uri.toString()}');
String address = uri?.path ?? '';
log('EmailController::openMailToLink(): address: $address');
if (address.isNotEmpty) {
final emailAddress = EmailAddress(null, address);
final arguments = ComposerArguments(
emailActionType: EmailActionType.composeFromEmailAddress,
emailAddress: emailAddress,
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role);
if (kIsWeb) {
if (mailboxDashBoardController.dashBoardAction != DashBoardAction.compose) {
mailboxDashBoardController.dispatchDashBoardAction(DashBoardAction.compose, arguments: arguments);
}
if (Get.currentRoute == AppRoutes.EMAIL) {
popBack();
}
} else {
push(AppRoutes.COMPOSER, arguments: arguments);
}
}
}
void deleteEmailPermanently(BuildContext context, PresentationEmail email) {
if (responsiveUtils.isMobile(context)) {
(ConfirmationDialogActionSheetBuilder(context)