TF-153 Combine moveToMailbox and moveToTrash to moveToMailbox using EmailActionType object
This commit is contained in:
@@ -6,9 +6,9 @@ enum EmailActionType {
|
||||
compose,
|
||||
markAsRead,
|
||||
markAsUnread,
|
||||
markAsStar,
|
||||
markAsUnStar,
|
||||
move,
|
||||
markAsStarred,
|
||||
unMarkAsStarred,
|
||||
moveToMailbox,
|
||||
edit,
|
||||
composeFromEmailAddress,
|
||||
moveToTrash,
|
||||
|
||||
@@ -17,11 +17,11 @@ extension FilterMessageOptionExtension on FilterMessageOption {
|
||||
case FilterMessageOption.all:
|
||||
return true;
|
||||
case FilterMessageOption.unread:
|
||||
return email.isUnReadEmail();
|
||||
return !email.hasRead;
|
||||
case FilterMessageOption.attachments:
|
||||
return email.withAttachments;
|
||||
case FilterMessageOption.starred:
|
||||
return email.isFlaggedEmail();
|
||||
return email.hasStarred;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,11 +30,11 @@ extension FilterMessageOptionExtension on FilterMessageOption {
|
||||
case FilterMessageOption.all:
|
||||
return true;
|
||||
case FilterMessageOption.unread:
|
||||
return email.isUnReadEmail();
|
||||
return !email.hasRead;
|
||||
case FilterMessageOption.attachments:
|
||||
return email.withAttachments;
|
||||
case FilterMessageOption.starred:
|
||||
return email.isFlaggedEmail();
|
||||
return email.hasStarred;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
|
||||
enum MoveAction {
|
||||
moveTo,
|
||||
moveToTrash,
|
||||
undo
|
||||
}
|
||||
@@ -80,11 +80,9 @@ class PresentationEmail with EquatableMixin {
|
||||
|
||||
String getPartialContent() => preview ?? '';
|
||||
|
||||
bool isUnReadEmail() => !(keywords?.containsKey(KeyWordIdentifier.emailSeen) == true);
|
||||
bool get hasRead => keywords?.containsKey(KeyWordIdentifier.emailSeen) == true;
|
||||
|
||||
bool isReadEmail() => keywords?.containsKey(KeyWordIdentifier.emailSeen) == true;
|
||||
|
||||
bool isFlaggedEmail() => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true;
|
||||
bool get hasStarred => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true;
|
||||
|
||||
bool get withAttachments => hasAttachment == true;
|
||||
|
||||
|
||||
@@ -8,11 +8,9 @@ import 'package:model/model.dart';
|
||||
|
||||
extension EmailExtension on Email {
|
||||
|
||||
bool isUnReadEmail() => !(keywords?.containsKey(KeyWordIdentifier.emailSeen) == true);
|
||||
bool get hasRead => keywords?.containsKey(KeyWordIdentifier.emailSeen) == true;
|
||||
|
||||
bool isReadEmail() => keywords?.containsKey(KeyWordIdentifier.emailSeen) == true;
|
||||
|
||||
bool isFlaggedEmail() => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true;
|
||||
bool get hasStarred => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true;
|
||||
|
||||
bool get withAttachments => hasAttachment == true;
|
||||
|
||||
|
||||
@@ -32,4 +32,12 @@ extension ListEmailIdExtension on List<EmailId> {
|
||||
});
|
||||
return maps;
|
||||
}
|
||||
|
||||
Map<Id, PatchObject> generateMapUpdateObjectMarkAsSpam(MailboxId spamMailboxId) {
|
||||
final Map<Id, PatchObject> maps = {};
|
||||
forEach((emailId) {
|
||||
maps[emailId.id] = spamMailboxId.generateActionPath();
|
||||
});
|
||||
return maps;
|
||||
}
|
||||
}
|
||||
@@ -3,11 +3,11 @@ import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/model.dart';
|
||||
|
||||
extension ListPresentationEmailExtension on List<PresentationEmail> {
|
||||
bool get isAllEmailRead => every((email) => email.isReadEmail());
|
||||
bool get isAllEmailRead => every((email) => email.hasRead);
|
||||
|
||||
bool get isAllEmailStarred => every((email) => email.isFlaggedEmail());
|
||||
bool get isAllEmailStarred => every((email) => email.hasStarred);
|
||||
|
||||
List<PresentationEmail> get allEmailUnread => where((email) => email.isUnReadEmail()).toList();
|
||||
List<PresentationEmail> get allEmailUnread => where((email) => !email.hasRead).toList();
|
||||
|
||||
PresentationEmail? findEmail(EmailId emailId) {
|
||||
try {
|
||||
|
||||
@@ -12,4 +12,10 @@ extension MailboxIdExtension on MailboxId {
|
||||
destinationMailboxId.generatePath(): true
|
||||
});
|
||||
}
|
||||
|
||||
PatchObject generateActionPath() {
|
||||
return PatchObject({
|
||||
generatePath(): true,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ class PresentationMailbox with EquatableMixin {
|
||||
static final roleTemplates = Role('templates');
|
||||
static final roleOutbox = Role('outbox');
|
||||
static final roleDrafts = Role('drafts');
|
||||
static final roleSpam = Role('spam');
|
||||
|
||||
final MailboxId id;
|
||||
final MailboxName? name;
|
||||
@@ -56,6 +57,8 @@ class PresentationMailbox with EquatableMixin {
|
||||
return unreadEmails!.value.value <= 999 ? '${unreadEmails!.value.value}' : '999+';
|
||||
}
|
||||
|
||||
bool get isSpam => role == roleSpam;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
id,
|
||||
|
||||
@@ -25,7 +25,6 @@ export 'email/presentation_email_address.dart';
|
||||
export 'email/email_address_cache.dart';
|
||||
export 'email/read_actions.dart';
|
||||
export 'email/attachment.dart';
|
||||
export 'email/move_action.dart';
|
||||
export 'email/mark_star_action.dart';
|
||||
export 'email/email_property.dart';
|
||||
export 'email/email_filter.dart';
|
||||
|
||||
Reference in New Issue
Block a user