diff --git a/lib/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart b/lib/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart index 0753b01ff..a781452b2 100644 --- a/lib/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart +++ b/lib/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart @@ -88,6 +88,7 @@ enum EmailSortOrderType { return this == EmailSortOrderType.subjectDescending || this == EmailSortOrderType.subjectAscending || this == EmailSortOrderType.senderDescending || - this == EmailSortOrderType.senderAscending; + this == EmailSortOrderType.senderAscending || + this == EmailSortOrderType.relevance; } } \ No newline at end of file diff --git a/lib/features/search/email/presentation/search_email_controller.dart b/lib/features/search/email/presentation/search_email_controller.dart index 42fb85132..f0ae9252f 100644 --- a/lib/features/search/email/presentation/search_email_controller.dart +++ b/lib/features/search/email/presentation/search_email_controller.dart @@ -397,7 +397,7 @@ class SearchEmailController extends BaseController session!, accountId!, limit: ThreadConstants.defaultLimit, - sort: simpleSearchFilter.value.sortOrder, + sort: emailSortOrderType.value.getSortOrder().toNullable(), position: simpleSearchFilter.value.position, filter: simpleSearchFilter.value.mappingToEmailFilterCondition(sortOrderType: emailSortOrderType.value), properties: EmailUtils.getPropertiesForEmailGetMethod(session!, accountId!), diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index b498aab27..956dfe27a 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -8,12 +8,9 @@ import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; -import 'package:jmap_dart_client/jmap/core/sort/comparator.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; 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/email/email_comparator.dart'; -import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart'; import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; @@ -110,10 +107,6 @@ class ThreadController extends BaseController with EmailActionController { final FocusNode focusNodeKeyBoard = FocusNode(); final latestEmailSelectedOrUnselected = Rxn(); - Set? get _sortOrder => {} - ..add(EmailComparator(EmailComparatorProperty.receivedAt) - ..setIsAscending(false)); - AccountId? get _accountId => mailboxDashBoardController.accountId.value; Session? get _session => mailboxDashBoardController.sessionCurrent; @@ -439,7 +432,7 @@ class ThreadController extends BaseController with EmailActionController { _session!, _accountId!, limit: ThreadConstants.defaultLimit, - sort: _searchEmailFilter.sortOrder ?? _sortOrder, + sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(), emailFilter: EmailFilter( filter: _getFilterCondition(mailboxIdSelected: _currentMailboxId), filterOption: mailboxDashBoardController.filterMessageOption.value, @@ -512,7 +505,7 @@ class ThreadController extends BaseController with EmailActionController { _session!, _accountId!, newEmailState, - sort: _searchEmailFilter.sortOrder ?? _sortOrder, + sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(), propertiesCreated: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!), propertiesUpdated: ThreadConstants.propertiesUpdatedDefault, emailFilter: EmailFilter( @@ -537,7 +530,7 @@ class ThreadController extends BaseController with EmailActionController { _accountId!, limit: ThreadConstants.defaultLimit, position: _searchEmailFilter.position, - sort: _searchEmailFilter.sortOrder ?? _sortOrder, + sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(), filterOption: mailboxDashBoardController.filterMessageOption.value, filter: _getFilterCondition(oldestEmail: oldestEmail, mailboxIdSelected: _currentMailboxId), properties: EmailUtils.getPropertiesForEmailGetMethod(_session!, _accountId!), @@ -747,7 +740,7 @@ class ThreadController extends BaseController with EmailActionController { _accountId!, limit: limit ?? ThreadConstants.defaultLimit, position: _searchEmailFilter.position, - sort: _searchEmailFilter.sortOrder, + sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(), filter: _searchEmailFilter.mappingToEmailFilterCondition( sortOrderType: searchController.sortOrderFiltered.value, moreFilterCondition: _getFilterCondition() @@ -817,7 +810,7 @@ class ThreadController extends BaseController with EmailActionController { _session!, _accountId!, limit: ThreadConstants.defaultLimit, - sort: _searchEmailFilter.sortOrder ?? _sortOrder, + sort: searchController.sortOrderFiltered.value.getSortOrder().toNullable(), position: _searchEmailFilter.position, filter: _searchEmailFilter.mappingToEmailFilterCondition( sortOrderType: searchController.sortOrderFiltered.value,