TF-4066 Display Unread, Starred in list quick search button in dashboard view

This commit is contained in:
dab246
2025-09-26 18:12:27 +07:00
committed by Dat H. Pham
parent efc2d80efc
commit d05904229b
9 changed files with 92 additions and 10 deletions
@@ -17,6 +17,7 @@ enum QuickSearchFilter {
last7Days,
fromMe,
starred,
unread,
sortBy,
dateTime,
from,
@@ -58,6 +59,8 @@ enum QuickSearchFilter {
return AppLocalizations.of(context).to_email_address_prefix;
case QuickSearchFilter.starred:
return AppLocalizations.of(context).starred;
case QuickSearchFilter.unread:
return AppLocalizations.of(context).unread;
}
}
@@ -80,7 +83,9 @@ enum QuickSearchFilter {
case QuickSearchFilter.folder:
return imagePaths.icFolderMailbox;
case QuickSearchFilter.starred:
return isSelected ? imagePaths.icSelectedSB : imagePaths.icStar;
return isSelected ? imagePaths.icSelectedSB : imagePaths.icUnStar;
case QuickSearchFilter.unread:
return isSelected ? imagePaths.icSelectedSB : imagePaths.icUnread;
}
}
@@ -112,11 +117,7 @@ enum QuickSearchFilter {
if (isSelected) {
return AppColor.primaryColor;
} else {
if (this == QuickSearchFilter.starred) {
return AppColor.colorStarredSearchFilterIcon;
} else {
return AppColor.colorSearchFilterIcon;
}
return AppColor.colorSearchFilterIcon;
}
}
@@ -149,6 +150,8 @@ enum QuickSearchFilter {
return searchFilter.mailbox != null;
case QuickSearchFilter.starred:
return searchFilter.hasKeyword.contains(KeyWordIdentifier.emailFlagged.value) == true;
case QuickSearchFilter.unread:
return searchFilter.unread;
}
}
@@ -29,6 +29,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
final PresentationMailbox? mailbox;
final EmailReceiveTimeType emailReceiveTimeType;
final bool hasAttachment;
final bool unread;
final UTCDate? before;
final UTCDate? startDate;
final UTCDate? endDate;
@@ -52,6 +53,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
Set<String>? to,
EmailReceiveTimeType? emailReceiveTimeType,
bool? hasAttachment,
bool? unread,
Set<String>? notKeyword,
Set<String>? hasKeyword,
EmailSortOrderType? sortOrderType,
@@ -60,6 +62,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
notKeyword = notKeyword ?? <String>{},
hasKeyword = hasKeyword ?? <String>{},
hasAttachment = hasAttachment ?? false,
unread = unread ?? false,
emailReceiveTimeType =
emailReceiveTimeType ?? EmailReceiveTimeType.allTime,
sortOrderType = sortOrderType ?? defaultSortOrder;
@@ -74,6 +77,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
Option<PresentationMailbox>? mailboxOption,
Option<EmailReceiveTimeType>? emailReceiveTimeTypeOption,
Option<bool>? hasAttachmentOption,
Option<bool>? unreadOption,
Option<UTCDate>? beforeOption,
Option<UTCDate>? startDateOption,
Option<UTCDate>? endDateOption,
@@ -90,6 +94,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
mailbox: getOptionParam(mailboxOption, mailbox),
emailReceiveTimeType: getOptionParam(emailReceiveTimeTypeOption, emailReceiveTimeType),
hasAttachment: getOptionParam(hasAttachmentOption, hasAttachment),
unread: getOptionParam(unreadOption, unread),
before: getOptionParam(beforeOption, before),
startDate: getOptionParam(startDateOption, startDate),
endDate: getOptionParam(endDateOption, endDate),
@@ -118,6 +123,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
hasKeyword: hasKeyword.length == 1
? hasKeyword.first
: null,
notKeyword: unread ? KeyWordIdentifier.emailSeen.value : null,
);
final listEmailCondition = {
@@ -197,7 +203,8 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
emailReceiveTimeType != EmailReceiveTimeType.allTime ||
sortOrderType != SearchEmailFilter.defaultSortOrder ||
(mailbox != null && mailbox?.id != PresentationMailbox.unifiedMailbox.id) ||
hasAttachment;
hasAttachment ||
unread;
bool get isContainFlagged => hasKeyword.contains(KeyWordIdentifier.emailFlagged.value);
@@ -212,6 +219,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
mailbox,
emailReceiveTimeType,
hasAttachment,
unread,
before,
startDate,
endDate,