From 1fa7f49bb3fd1dd7f76a6ced7073240c6794d335 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 19 Jul 2023 16:35:13 +0700 Subject: [PATCH] TF-1857 Add headerCalendarEvent to PresentationEmail (cherry picked from commit 4c8d47ecd6e4f399fbac828eb80e6f7360cb1822) --- model/lib/email/presentation_email.dart | 22 +++++++++++++------ model/lib/extensions/email_extension.dart | 6 +++-- .../presentation_email_extension.dart | 18 ++++++++++----- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/model/lib/email/presentation_email.dart b/model/lib/email/presentation_email.dart index 2c8962919..2d4945239 100644 --- a/model/lib/email/presentation_email.dart +++ b/model/lib/email/presentation_email.dart @@ -8,6 +8,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_body_value.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_header.dart'; +import 'package:jmap_dart_client/jmap/mail/email/individual_header_identifier.dart'; import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:model/email/email_content.dart'; @@ -38,6 +39,7 @@ class PresentationEmail with EquatableMixin { final List? emailHeader; final Set? htmlBody; final Map? bodyValues; + final Map? headerCalendarEvent; PresentationEmail({ this.id, @@ -60,6 +62,7 @@ class PresentationEmail with EquatableMixin { this.emailHeader, this.htmlBody, this.bodyValues, + this.headerCalendarEvent, }); String getSenderName() { @@ -99,6 +102,8 @@ class PresentationEmail with EquatableMixin { bool get pushNotificationActivated => !isDraft && !hasRead; + bool get hasCalendarEvent => headerCalendarEvent?[IndividualHeaderIdentifier.headerCalendarEvent]?.isNotEmpty == true; + List get emailContentList { final newHtmlBody = htmlBody ?.where((emailBody) => emailBody.partId != null && emailBody.type != null) @@ -116,22 +121,25 @@ class PresentationEmail with EquatableMixin { @override List get props => [ id, + keywords, + size, + receivedAt, + hasAttachment, + preview, subject, + sentAt, from, to, cc, bcc, - keywords, - size, - receivedAt, - sentAt, replyTo, - preview, - hasAttachment, mailboxIds, selectMode, routeWeb, mailboxContain, - emailHeader + emailHeader, + htmlBody, + bodyValues, + headerCalendarEvent, ]; } \ No newline at end of file diff --git a/model/lib/extensions/email_extension.dart b/model/lib/extensions/email_extension.dart index 254a32e9a..63d57e8e8 100644 --- a/model/lib/extensions/email_extension.dart +++ b/model/lib/extensions/email_extension.dart @@ -76,7 +76,8 @@ extension EmailExtension on Email { replyTo: replyTo, mailboxIds: mailboxIds, selectMode: selectMode, - emailHeader: headers?.toList() + emailHeader: headers?.toList(), + headerCalendarEvent: headerCalendarEvent ); } @@ -160,7 +161,8 @@ extension EmailExtension on Email { selectMode: selectMode, emailHeader: headers?.toList(), bodyValues: bodyValues, - htmlBody: htmlBody + htmlBody: htmlBody, + headerCalendarEvent: headerCalendarEvent ); } } \ No newline at end of file diff --git a/model/lib/extensions/presentation_email_extension.dart b/model/lib/extensions/presentation_email_extension.dart index 58379e4c5..aa57db66f 100644 --- a/model/lib/extensions/presentation_email_extension.dart +++ b/model/lib/extensions/presentation_email_extension.dart @@ -52,7 +52,8 @@ extension PresentationEmailExtension on PresentationEmail { mailboxIds: mailboxIds, selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE, routeWeb: routeWeb, - mailboxContain: mailboxContain + mailboxContain: mailboxContain, + headerCalendarEvent: headerCalendarEvent ); } @@ -74,7 +75,8 @@ extension PresentationEmailExtension on PresentationEmail { mailboxIds: mailboxIds, selectMode: selectMode, routeWeb: routeWeb, - mailboxContain: mailboxContain + mailboxContain: mailboxContain, + headerCalendarEvent: headerCalendarEvent ); } @@ -150,7 +152,8 @@ extension PresentationEmailExtension on PresentationEmail { mailboxIds: mailboxIds, selectMode: selectMode, routeWeb: routeWeb, - mailboxContain: matchedMailbox + mailboxContain: matchedMailbox, + headerCalendarEvent: headerCalendarEvent ); } @@ -185,7 +188,8 @@ extension PresentationEmailExtension on PresentationEmail { mailboxIds: mailboxIds, selectMode: selectMode, routeWeb: routeWeb, - mailboxContain: mailboxContain + mailboxContain: mailboxContain, + headerCalendarEvent: headerCalendarEvent ); } @@ -207,7 +211,8 @@ extension PresentationEmailExtension on PresentationEmail { mailboxIds: mailboxIds, selectMode: selectMode, routeWeb: routeWeb, - mailboxContain: mailboxContain + mailboxContain: mailboxContain, + headerCalendarEvent: headerCalendarEvent ); } @@ -229,7 +234,8 @@ extension PresentationEmailExtension on PresentationEmail { mailboxIds: mailboxIds, selectMode: selectMode, routeWeb: routeWeb, - mailboxContain: mailboxContain + mailboxContain: mailboxContain, + headerCalendarEvent: headerCalendarEvent ); }