TF-2323 Handle search sort by Relevance

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 20efa6dc9960c8e90bed4f05f1b3d86d0c42d0f4)
This commit is contained in:
dab246
2023-12-18 12:09:25 +07:00
committed by Dat H. Pham
parent 19fd4e625d
commit a3b711a659
3 changed files with 8 additions and 14 deletions
@@ -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;
}
}
@@ -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!),
@@ -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<PresentationEmail>();
Set<Comparator>? get _sortOrder => <Comparator>{}
..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,