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; toAddressExpandMode.value = ExpandMode.COLLAPSE;
_updateStatusEmailSendButton(); _updateStatusEmailSendButton();
break; 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.reply:
case EmailActionType.replyAll: case EmailActionType.replyAll:
_initEmailAddress( _initEmailAddress(
@@ -278,6 +278,7 @@ class ComposerView extends BaseComposerView {
switch(argsComposer.emailActionType) { switch(argsComposer.emailActionType) {
case EmailActionType.compose: case EmailActionType.compose:
case EmailActionType.composeFromEmailAddress: case EmailActionType.composeFromEmailAddress:
case EmailActionType.composeFromMailtoURL:
case EmailActionType.composeFromFileShared: case EmailActionType.composeFromFileShared:
return _buildHtmlEditor( return _buildHtmlEditor(
context, context,
@@ -387,6 +387,7 @@ class ComposerView extends BaseComposerView {
switch(argsComposer.emailActionType) { switch(argsComposer.emailActionType) {
case EmailActionType.compose: case EmailActionType.compose:
case EmailActionType.composeFromEmailAddress: case EmailActionType.composeFromEmailAddress:
case EmailActionType.composeFromMailtoURL:
case EmailActionType.composeFromFileShared: case EmailActionType.composeFromFileShared:
return _buildHtmlEditor( return _buildHtmlEditor(
context, context,
@@ -15,6 +15,7 @@ class ComposerArguments extends RouterArguments {
final List<Attachment>? attachments; final List<Attachment>? attachments;
final Role? mailboxRole; final Role? mailboxRole;
final SendingEmail? sendingEmail; final SendingEmail? sendingEmail;
final String? uri;
ComposerArguments({ ComposerArguments({
this.emailActionType = EmailActionType.compose, this.emailActionType = EmailActionType.compose,
@@ -24,7 +25,8 @@ class ComposerArguments extends RouterArguments {
this.mailboxRole, this.mailboxRole,
this.emailAddress, this.emailAddress,
this.listSharedMediaFile, this.listSharedMediaFile,
this.sendingEmail this.sendingEmail,
this.uri,
}); });
factory ComposerArguments.fromSendingEmail(SendingEmail sendingEmail) => factory ComposerArguments.fromSendingEmail(SendingEmail sendingEmail) =>
@@ -51,6 +53,12 @@ class ComposerArguments extends RouterArguments {
emailAddress: emailAddress emailAddress: emailAddress
); );
factory ComposerArguments.fromMailtoURL(String? uri) =>
ComposerArguments(
emailActionType: EmailActionType.composeFromMailtoURL,
uri: uri
);
factory ComposerArguments.editDraftEmail(PresentationEmail presentationEmail) => factory ComposerArguments.editDraftEmail(PresentationEmail presentationEmail) =>
ComposerArguments( ComposerArguments(
emailActionType: EmailActionType.editDraft, emailActionType: EmailActionType.editDraft,
@@ -114,6 +122,7 @@ class ComposerArguments extends RouterArguments {
mailboxRole, mailboxRole,
emailAddress, emailAddress,
listSharedMediaFile, listSharedMediaFile,
sendingEmail sendingEmail,
uri,
]; ];
} }
+1
View File
@@ -14,6 +14,7 @@ enum EmailActionType {
composeFromContentShared, composeFromContentShared,
composeFromFileShared, composeFromFileShared,
composeFromEmailAddress, composeFromEmailAddress,
composeFromMailtoURL,
reopenComposerBrowser, reopenComposerBrowser,
moveToTrash, moveToTrash,
deletePermanently, deletePermanently,