TF-1715 Load emails in favorite folder with filters
This commit is contained in:
+1
-1
@@ -1348,7 +1348,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
.map((e) => MapEntry(e.id!, e.hasRead))
|
||||
);
|
||||
if (searchController.isSearchEmailRunning ||
|
||||
selectedMailbox.value?.id.isFavoriteMailboxId == true) {
|
||||
selectedMailbox.value?.isFavorite == true) {
|
||||
final Map<MailboxId,List<EmailId>> mapListEmailSelectedByMailBoxId = {};
|
||||
for (var element in listEmails) {
|
||||
final mailbox = element.findMailboxContain(mapMailboxById);
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/email_action_type.dart';
|
||||
import 'package:model/email/presentation_email.dart';
|
||||
import 'package:model/extensions/list_presentation_email_extension.dart';
|
||||
import 'package:model/extensions/mailbox_id_extension.dart';
|
||||
import 'package:model/extensions/presentation_email_extension.dart';
|
||||
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||
@@ -50,7 +50,7 @@ extension HandleActionTypeForEmailSelection on MailboxDashBoardController {
|
||||
final mapEmailIdsByMailboxId = <MailboxId, List<EmailId>>{};
|
||||
|
||||
if (searchController.isSearchEmailRunning ||
|
||||
selectedMailbox.value?.id.isFavoriteMailboxId == true) {
|
||||
selectedMailbox.value?.isFavorite == true) {
|
||||
for (final email in emails) {
|
||||
final mailboxId = email.firstMailboxIdAvailable;
|
||||
final emailId = email.id;
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/presentation_email.dart';
|
||||
import 'package:model/extensions/mailbox_id_extension.dart';
|
||||
import 'package:model/extensions/presentation_mailbox_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
|
||||
extension MoveEmailsToMailboxExtension on MailboxDashBoardController {
|
||||
@@ -11,7 +11,7 @@ extension MoveEmailsToMailboxExtension on MailboxDashBoardController {
|
||||
required MailboxId destinationMailboxId,
|
||||
}) {
|
||||
if (destinationMailboxId == selectedMailbox.value?.id ||
|
||||
selectedMailbox.value?.id.isFavoriteMailboxId == true) {
|
||||
selectedMailbox.value?.isFavorite == true) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -545,7 +545,8 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
if (!controller.searchController.isSearchEmailRunning)
|
||||
FilterMessageOption.attachments,
|
||||
FilterMessageOption.unread,
|
||||
FilterMessageOption.starred,
|
||||
if (controller.selectedMailbox.value?.isFavorite != true)
|
||||
FilterMessageOption.starred,
|
||||
].map((filterOption) {
|
||||
return PopupMenuItem(
|
||||
padding: EdgeInsets.zero,
|
||||
|
||||
@@ -198,8 +198,8 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
|
||||
to.isNotEmpty ||
|
||||
text?.value.trim().isNotEmpty == true ||
|
||||
subject?.trim().isNotEmpty == true ||
|
||||
hasKeyword.isNotEmpty == true ||
|
||||
notKeyword.isNotEmpty == true ||
|
||||
hasKeyword.isNotEmpty ||
|
||||
notKeyword.isNotEmpty ||
|
||||
emailReceiveTimeType != EmailReceiveTimeType.allTime ||
|
||||
sortOrderType != SearchEmailFilter.defaultSortOrder ||
|
||||
(mailbox != null && mailbox?.id != PresentationMailbox.unifiedMailbox.id) ||
|
||||
@@ -208,6 +208,18 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
|
||||
|
||||
bool get isContainFlagged => hasKeyword.contains(KeyWordIdentifier.emailFlagged.value);
|
||||
|
||||
bool get isOnlyStarredApplied => from.isEmpty &&
|
||||
to.isEmpty &&
|
||||
text?.value.trim().isNotEmpty != true &&
|
||||
subject?.trim().isNotEmpty != true &&
|
||||
hasKeyword.firstOrNull == KeyWordIdentifier.emailFlagged.value &&
|
||||
notKeyword.isEmpty &&
|
||||
emailReceiveTimeType == EmailReceiveTimeType.allTime &&
|
||||
sortOrderType == SearchEmailFilter.defaultSortOrder &&
|
||||
(mailbox == null || mailbox?.id == PresentationMailbox.unifiedMailbox.id) &&
|
||||
!hasAttachment &&
|
||||
!unread;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
from,
|
||||
|
||||
Reference in New Issue
Block a user