TF-153 Combine moveToMailbox and moveToTrash to moveToMailbox using EmailActionType object

This commit is contained in:
dab246
2022-04-15 15:51:37 +07:00
committed by Dat H. Pham
parent 60aabfb6d1
commit 16c5aed64e
45 changed files with 268 additions and 722 deletions
+3 -3
View File
@@ -6,9 +6,9 @@ enum EmailActionType {
compose,
markAsRead,
markAsUnread,
markAsStar,
markAsUnStar,
move,
markAsStarred,
unMarkAsStarred,
moveToMailbox,
edit,
composeFromEmailAddress,
moveToTrash,
+4 -4
View File
@@ -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;
}
}
}
-6
View File
@@ -1,6 +0,0 @@
enum MoveAction {
moveTo,
moveToTrash,
undo
}
+2 -4
View File
@@ -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;
+2 -4
View File
@@ -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,
-1
View File
@@ -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';