Add object for model and core module

This commit is contained in:
dab246
2021-08-18 17:43:22 +07:00
committed by Dat H. Pham
parent 063fd73fb0
commit 6b31252e7a
22 changed files with 306 additions and 26 deletions
+30
View File
@@ -0,0 +1,30 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.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';
class EmailContent with EquatableMixin {
final EmailId id;
final Set<EmailBodyPart>? htmlBody;
final Set<EmailBodyPart>? attachments;
final Map<PartId, EmailBodyValue>? bodyValues;
EmailContent(
this.id,
{
this.htmlBody,
this.attachments,
this.bodyValues
}
);
@override
List<Object?> get props => [
id,
htmlBody,
attachments,
bodyValues
];
}
+9 -10
View File
@@ -1,7 +1,5 @@
import 'package:equatable/equatable.dart';
import 'package:intl/intl.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
@@ -12,8 +10,6 @@ import 'package:model/extensions/email_address_extension.dart';
class PresentationEmail with EquatableMixin {
static PresentationEmail presentationEmailEmpty = PresentationEmail(EmailId(Id('empty')));
final EmailId id;
final Map<KeyWordIdentifier, bool>? keywords;
final UnsignedInt? size;
@@ -55,17 +51,20 @@ class PresentationEmail with EquatableMixin {
return '';
}
String getAvatarText() {
if (getSenderName().isNotEmpty) {
return getSenderName().substring(0, 1).toUpperCase();
}
return '';
}
String getEmailTitle() => subject != null ? subject! : '';
String getPartialContent() => preview != null ? preview! : '';
String getTimeForToday() => receivedAt != null ? DateFormat('h:mm a').format(receivedAt!.value) : '';
bool isUnReadEmail() => !(keywords?.containsKey(KeyWordIdentifier.emailSeen) == true);
String getTimeForYesterday() => receivedAt != null ? DateFormat('EEE').format(receivedAt!.value) : '';
String getTimeThisYear() => receivedAt != null ? DateFormat('MMMd').format(receivedAt!.value) : '';
String getTimeOtherYear() => receivedAt != null ? DateFormat('yMMMd').format(receivedAt!.value) : '';
bool isFlaggedEmail() => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true;
@override
List<Object?> get props => [