TF-1857 Add headerCalendarEvent to PresentationEmail

(cherry picked from commit 4c8d47ecd6e4f399fbac828eb80e6f7360cb1822)
This commit is contained in:
dab246
2023-07-19 16:35:13 +07:00
committed by Dat Vu
parent c2a2e7efc4
commit 1fa7f49bb3
3 changed files with 31 additions and 15 deletions
+15 -7
View File
@@ -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_part.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_body_value.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/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/email/keyword_identifier.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/email_content.dart'; import 'package:model/email/email_content.dart';
@@ -38,6 +39,7 @@ class PresentationEmail with EquatableMixin {
final List<EmailHeader>? emailHeader; final List<EmailHeader>? emailHeader;
final Set<EmailBodyPart>? htmlBody; final Set<EmailBodyPart>? htmlBody;
final Map<PartId, EmailBodyValue>? bodyValues; final Map<PartId, EmailBodyValue>? bodyValues;
final Map<IndividualHeaderIdentifier, String?>? headerCalendarEvent;
PresentationEmail({ PresentationEmail({
this.id, this.id,
@@ -60,6 +62,7 @@ class PresentationEmail with EquatableMixin {
this.emailHeader, this.emailHeader,
this.htmlBody, this.htmlBody,
this.bodyValues, this.bodyValues,
this.headerCalendarEvent,
}); });
String getSenderName() { String getSenderName() {
@@ -99,6 +102,8 @@ class PresentationEmail with EquatableMixin {
bool get pushNotificationActivated => !isDraft && !hasRead; bool get pushNotificationActivated => !isDraft && !hasRead;
bool get hasCalendarEvent => headerCalendarEvent?[IndividualHeaderIdentifier.headerCalendarEvent]?.isNotEmpty == true;
List<EmailContent> get emailContentList { List<EmailContent> get emailContentList {
final newHtmlBody = htmlBody final newHtmlBody = htmlBody
?.where((emailBody) => emailBody.partId != null && emailBody.type != null) ?.where((emailBody) => emailBody.partId != null && emailBody.type != null)
@@ -116,22 +121,25 @@ class PresentationEmail with EquatableMixin {
@override @override
List<Object?> get props => [ List<Object?> get props => [
id, id,
keywords,
size,
receivedAt,
hasAttachment,
preview,
subject, subject,
sentAt,
from, from,
to, to,
cc, cc,
bcc, bcc,
keywords,
size,
receivedAt,
sentAt,
replyTo, replyTo,
preview,
hasAttachment,
mailboxIds, mailboxIds,
selectMode, selectMode,
routeWeb, routeWeb,
mailboxContain, mailboxContain,
emailHeader emailHeader,
htmlBody,
bodyValues,
headerCalendarEvent,
]; ];
} }
+4 -2
View File
@@ -76,7 +76,8 @@ extension EmailExtension on Email {
replyTo: replyTo, replyTo: replyTo,
mailboxIds: mailboxIds, mailboxIds: mailboxIds,
selectMode: selectMode, selectMode: selectMode,
emailHeader: headers?.toList() emailHeader: headers?.toList(),
headerCalendarEvent: headerCalendarEvent
); );
} }
@@ -160,7 +161,8 @@ extension EmailExtension on Email {
selectMode: selectMode, selectMode: selectMode,
emailHeader: headers?.toList(), emailHeader: headers?.toList(),
bodyValues: bodyValues, bodyValues: bodyValues,
htmlBody: htmlBody htmlBody: htmlBody,
headerCalendarEvent: headerCalendarEvent
); );
} }
} }
@@ -52,7 +52,8 @@ extension PresentationEmailExtension on PresentationEmail {
mailboxIds: mailboxIds, mailboxIds: mailboxIds,
selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE, selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE,
routeWeb: routeWeb, routeWeb: routeWeb,
mailboxContain: mailboxContain mailboxContain: mailboxContain,
headerCalendarEvent: headerCalendarEvent
); );
} }
@@ -74,7 +75,8 @@ extension PresentationEmailExtension on PresentationEmail {
mailboxIds: mailboxIds, mailboxIds: mailboxIds,
selectMode: selectMode, selectMode: selectMode,
routeWeb: routeWeb, routeWeb: routeWeb,
mailboxContain: mailboxContain mailboxContain: mailboxContain,
headerCalendarEvent: headerCalendarEvent
); );
} }
@@ -150,7 +152,8 @@ extension PresentationEmailExtension on PresentationEmail {
mailboxIds: mailboxIds, mailboxIds: mailboxIds,
selectMode: selectMode, selectMode: selectMode,
routeWeb: routeWeb, routeWeb: routeWeb,
mailboxContain: matchedMailbox mailboxContain: matchedMailbox,
headerCalendarEvent: headerCalendarEvent
); );
} }
@@ -185,7 +188,8 @@ extension PresentationEmailExtension on PresentationEmail {
mailboxIds: mailboxIds, mailboxIds: mailboxIds,
selectMode: selectMode, selectMode: selectMode,
routeWeb: routeWeb, routeWeb: routeWeb,
mailboxContain: mailboxContain mailboxContain: mailboxContain,
headerCalendarEvent: headerCalendarEvent
); );
} }
@@ -207,7 +211,8 @@ extension PresentationEmailExtension on PresentationEmail {
mailboxIds: mailboxIds, mailboxIds: mailboxIds,
selectMode: selectMode, selectMode: selectMode,
routeWeb: routeWeb, routeWeb: routeWeb,
mailboxContain: mailboxContain mailboxContain: mailboxContain,
headerCalendarEvent: headerCalendarEvent
); );
} }
@@ -229,7 +234,8 @@ extension PresentationEmailExtension on PresentationEmail {
mailboxIds: mailboxIds, mailboxIds: mailboxIds,
selectMode: selectMode, selectMode: selectMode,
routeWeb: routeWeb, routeWeb: routeWeb,
mailboxContain: mailboxContain mailboxContain: mailboxContain,
headerCalendarEvent: headerCalendarEvent
); );
} }