From d53c83920bd7b6e15643bfbe3dc69edbe31a1fc4 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 20 Sep 2023 15:23:55 +0700 Subject: [PATCH] TF-1608 Set `references` and `inReplyTo` fields for forward email (cherry picked from commit 45eff180f9330937497c17ee1f3c145e1af005db) --- .../composer/presentation/composer_controller.dart | 3 ++- .../controller/single_email_controller.dart | 12 +++++++++--- .../email/presentation/model/composer_arguments.dart | 8 +++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index a5f105939..4c27bc4ae 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -714,7 +714,8 @@ class ComposerController extends BaseController { MessageIdsHeaderValue? _generateReferences(ComposerArguments? arguments) { if (arguments?.emailActionType == EmailActionType.reply || - arguments?.emailActionType == EmailActionType.replyAll) { + arguments?.emailActionType == EmailActionType.replyAll || + arguments?.emailActionType == EmailActionType.forward) { Set ids = {}; if (arguments?.messageId?.ids.isNotEmpty == true) { ids.addAll(arguments!.messageId!.ids); diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index 2a0345989..9e02299e7 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -1186,7 +1186,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin { ComposerArguments.replyEmail( presentationEmail: presentationEmail, content: _currentEmailLoaded?.htmlContent ?? '', - mailboxRole: presentationEmail.mailboxContain?.role + mailboxRole: presentationEmail.mailboxContain?.role, + messageId: _currentEmailLoaded?.emailCurrent?.messageId, + references: _currentEmailLoaded?.emailCurrent?.references, ) ); break; @@ -1195,7 +1197,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin { ComposerArguments.replyAllEmail( presentationEmail: presentationEmail, content: _currentEmailLoaded?.htmlContent ?? '', - mailboxRole: presentationEmail.mailboxContain?.role + mailboxRole: presentationEmail.mailboxContain?.role, + messageId: _currentEmailLoaded?.emailCurrent?.messageId, + references: _currentEmailLoaded?.emailCurrent?.references, ) ); break; @@ -1204,7 +1208,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin { ComposerArguments.forwardEmail( presentationEmail: presentationEmail, content: _currentEmailLoaded?.htmlContent ?? '', - attachments: attachments + attachments: attachments, + messageId: _currentEmailLoaded?.emailCurrent?.messageId, + references: _currentEmailLoaded?.emailCurrent?.references, ) ); break; diff --git a/lib/features/email/presentation/model/composer_arguments.dart b/lib/features/email/presentation/model/composer_arguments.dart index 7860bd0b8..785982708 100644 --- a/lib/features/email/presentation/model/composer_arguments.dart +++ b/lib/features/email/presentation/model/composer_arguments.dart @@ -118,12 +118,16 @@ class ComposerArguments extends RouterArguments { required PresentationEmail presentationEmail, required String content, required List attachments, + MessageIdsHeaderValue? messageId, + MessageIdsHeaderValue? references, }) => ComposerArguments( emailActionType: EmailActionType.forward, presentationEmail: presentationEmail, emailContents: content, attachments: attachments, - mailboxRole: presentationEmail.mailboxContain?.role + mailboxRole: presentationEmail.mailboxContain?.role, + messageId: messageId, + references: references, ); @override @@ -137,5 +141,7 @@ class ComposerArguments extends RouterArguments { listSharedMediaFile, sendingEmail, uri, + messageId, + references, ]; } \ No newline at end of file