TF-2134 Open composer from mailto uri

(cherry picked from commit 964013fb35ee6a7ab98f7d7c4a1146d87843dd81)
This commit is contained in:
dab246
2023-09-12 02:17:54 +07:00
committed by Dat Vu
parent 623102d96f
commit 5f053be2de
5 changed files with 24 additions and 2 deletions
@@ -470,6 +470,16 @@ class ComposerController extends BaseController {
toAddressExpandMode.value = ExpandMode.COLLAPSE;
_updateStatusEmailSendButton();
break;
case EmailActionType.composeFromMailtoURL:
if (GetUtils.isEmail(arguments.uri ?? '')) {
listToEmailAddress.add(EmailAddress(null, arguments.uri));
} else {
listToEmailAddress.add(EmailAddress(null, 'invalid'));
}
isInitialRecipient.value = true;
toAddressExpandMode.value = ExpandMode.COLLAPSE;
_updateStatusEmailSendButton();
break;
case EmailActionType.reply:
case EmailActionType.replyAll:
_initEmailAddress(
@@ -278,6 +278,7 @@ class ComposerView extends BaseComposerView {
switch(argsComposer.emailActionType) {
case EmailActionType.compose:
case EmailActionType.composeFromEmailAddress:
case EmailActionType.composeFromMailtoURL:
case EmailActionType.composeFromFileShared:
return _buildHtmlEditor(
context,
@@ -387,6 +387,7 @@ class ComposerView extends BaseComposerView {
switch(argsComposer.emailActionType) {
case EmailActionType.compose:
case EmailActionType.composeFromEmailAddress:
case EmailActionType.composeFromMailtoURL:
case EmailActionType.composeFromFileShared:
return _buildHtmlEditor(
context,
@@ -15,6 +15,7 @@ class ComposerArguments extends RouterArguments {
final List<Attachment>? attachments;
final Role? mailboxRole;
final SendingEmail? sendingEmail;
final String? uri;
ComposerArguments({
this.emailActionType = EmailActionType.compose,
@@ -24,7 +25,8 @@ class ComposerArguments extends RouterArguments {
this.mailboxRole,
this.emailAddress,
this.listSharedMediaFile,
this.sendingEmail
this.sendingEmail,
this.uri,
});
factory ComposerArguments.fromSendingEmail(SendingEmail sendingEmail) =>
@@ -51,6 +53,12 @@ class ComposerArguments extends RouterArguments {
emailAddress: emailAddress
);
factory ComposerArguments.fromMailtoURL(String? uri) =>
ComposerArguments(
emailActionType: EmailActionType.composeFromMailtoURL,
uri: uri
);
factory ComposerArguments.editDraftEmail(PresentationEmail presentationEmail) =>
ComposerArguments(
emailActionType: EmailActionType.editDraft,
@@ -114,6 +122,7 @@ class ComposerArguments extends RouterArguments {
mailboxRole,
emailAddress,
listSharedMediaFile,
sendingEmail
sendingEmail,
uri,
];
}
+1
View File
@@ -14,6 +14,7 @@ enum EmailActionType {
composeFromContentShared,
composeFromFileShared,
composeFromEmailAddress,
composeFromMailtoURL,
reopenComposerBrowser,
moveToTrash,
deletePermanently,