diff --git a/lib/features/email/domain/extensions/detailed_email_extension.dart b/lib/features/email/domain/extensions/detailed_email_extension.dart index a017ab8cd..c7b9396db 100644 --- a/lib/features/email/domain/extensions/detailed_email_extension.dart +++ b/lib/features/email/domain/extensions/detailed_email_extension.dart @@ -15,7 +15,9 @@ extension DetailedEmailExtension on DetailedEmail { attachments: attachments?.toHiveCache(), headers: headers?.toList().toHiveCache(), keywords: keywords?.toMapString(), - emailContentPath: emailContentPath + emailContentPath: emailContentPath, + messageId: messageId?.ids.toList(), + references: references?.ids.toList(), ); } @@ -32,6 +34,8 @@ extension DetailedEmailExtension on DetailedEmail { keywords: keywords, htmlEmailContent: htmlEmailContent, emailContentPath: path, + messageId: messageId, + references: references, ); } } \ No newline at end of file diff --git a/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart b/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart index 2f468adcd..1a3280305 100644 --- a/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart +++ b/lib/features/email/domain/extensions/detailed_email_hive_cache_extension.dart @@ -17,6 +17,12 @@ extension DetailedEmailHiveCacheExtension on DetailedEmailHiveCache { ? Map.fromIterables(keywords!.keys.map((value) => KeyWordIdentifier(value)), keywords!.values) : null, htmlEmailContent: emailContent, + messageId: messageId != null + ? MessageIdsHeaderValue(messageId!.toSet()) + : null, + references: references != null + ? MessageIdsHeaderValue(references!.toSet()) + : null ); } } \ No newline at end of file diff --git a/lib/features/email/domain/extensions/email_extension.dart b/lib/features/email/domain/extensions/email_extension.dart index 03fb68d8a..d7df25e63 100644 --- a/lib/features/email/domain/extensions/email_extension.dart +++ b/lib/features/email/domain/extensions/email_extension.dart @@ -11,7 +11,9 @@ extension EmailExtension on Email { attachments: allAttachments, headers: headers, keywords: keywords, - htmlEmailContent: htmlEmailContent + htmlEmailContent: htmlEmailContent, + messageId: messageId, + references: references ); } } \ No newline at end of file diff --git a/lib/features/email/domain/model/detailed_email.dart b/lib/features/email/domain/model/detailed_email.dart index 93fdfd264..008e19df7 100644 --- a/lib/features/email/domain/model/detailed_email.dart +++ b/lib/features/email/domain/model/detailed_email.dart @@ -12,6 +12,8 @@ class DetailedEmail with EquatableMixin { final String? htmlEmailContent; final String? emailContentPath; final DateTime createdTime; + final MessageIdsHeaderValue? messageId; + final MessageIdsHeaderValue? references; DetailedEmail({ required this.emailId, @@ -20,7 +22,9 @@ class DetailedEmail with EquatableMixin { this.headers, this.keywords, this.htmlEmailContent, - this.emailContentPath + this.emailContentPath, + this.messageId, + this.references, }); @override @@ -31,6 +35,8 @@ class DetailedEmail with EquatableMixin { headers, keywords, htmlEmailContent, - emailContentPath + emailContentPath, + messageId, + references, ]; } \ No newline at end of file diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index 9e02299e7..d401e7880 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -475,7 +475,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin { attachments: success.attachments, headers: currentEmail?.emailHeader?.toSet(), keywords: currentEmail?.keywords, - htmlEmailContent: success.htmlEmailContent + htmlEmailContent: success.htmlEmailContent, + messageId: success.emailCurrent?.messageId, + references: success.emailCurrent?.references, ); _storeOpenedEmailAction( diff --git a/lib/features/offline_mode/model/detailed_email_hive_cache.dart b/lib/features/offline_mode/model/detailed_email_hive_cache.dart index 19995a874..f15f266db 100644 --- a/lib/features/offline_mode/model/detailed_email_hive_cache.dart +++ b/lib/features/offline_mode/model/detailed_email_hive_cache.dart @@ -29,6 +29,12 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin { @HiveField(5) final Map? keywords; + @HiveField(6) + final List? messageId; + + @HiveField(7) + final List? references; + DetailedEmailHiveCache({ required this.emailId, required this.timeSaved, @@ -36,6 +42,8 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin { this.emailContentPath, this.headers, this.keywords, + this.messageId, + this.references, }); @override @@ -46,5 +54,7 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin { emailContentPath, headers, keywords, + messageId, + references, ]; } \ No newline at end of file diff --git a/lib/features/thread/domain/constants/thread_constants.dart b/lib/features/thread/domain/constants/thread_constants.dart index 0ba8e2a41..72c0957f7 100644 --- a/lib/features/thread/domain/constants/thread_constants.dart +++ b/lib/features/thread/domain/constants/thread_constants.dart @@ -47,7 +47,6 @@ class ThreadConstants { EmailProperty.keywords, EmailProperty.mailboxIds, EmailProperty.messageId, - EmailProperty.inReplyTo, EmailProperty.references, }); diff --git a/model/lib/email/email_property.dart b/model/lib/email/email_property.dart index ecada6f55..f705555db 100644 --- a/model/lib/email/email_property.dart +++ b/model/lib/email/email_property.dart @@ -20,6 +20,5 @@ class EmailProperty { static const String headers = 'headers'; static const String headerMdnKey = 'Disposition-Notification-To'; static const String messageId = 'messageId'; - static const String inReplyTo = 'inReplyTo'; static const String references = 'references'; } \ No newline at end of file