TF-1708 Improvement search mailbox by display name at locale

(cherry picked from commit f3efbe715c06b87ce3006dc936be26dd272a643c)
This commit is contained in:
dab246
2023-07-06 19:35:11 +07:00
committed by Dat Vu
parent e94f1959f1
commit 36f13051bd
11 changed files with 122 additions and 47 deletions
@@ -12,7 +12,7 @@ class SearchMailboxInteractor {
yield Right<Failure, Success>(LoadingSearchMailbox());
final resultList = mailboxes
.where((mailbox) => mailbox.name?.name.toLowerCase().contains(searchQuery.value.toLowerCase()) == true)
.where((mailbox) => _matchMailboxByQuery(mailbox, searchQuery))
.toList();
yield Right<Failure, Success>(SearchMailboxSuccess(resultList));
@@ -20,4 +20,13 @@ class SearchMailboxInteractor {
yield Left<Failure, Success>(SearchMailboxFailure(exception));
}
}
bool _matchMailboxByQuery(PresentationMailbox mailbox, SearchQuery searchQuery) {
if (mailbox.displayName == null) {
return false;
} else {
return mailbox.displayName!.toLowerCase().contains(searchQuery.value.toLowerCase()) ||
searchQuery.value.toLowerCase().contains(mailbox.displayName!.toLowerCase());
}
}
}
@@ -1,5 +1,4 @@
import 'package:core/utils/app_logger.dart';
import 'package:flutter/material.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -8,7 +7,6 @@ extension PresentationMailboxExtension on PresentationMailbox {
String getDisplayName(BuildContext context) {
if (isDefault) {
log("PresentationMailboxExtension::getDisplayName:Role: $role | MailboxName: $name");
switch(role!.value.toLowerCase()) {
case PresentationMailbox.inboxRole:
return AppLocalizations.of(context).inboxMailboxDisplayName;
@@ -998,12 +998,18 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
currentMailboxState = success.currentMailboxState;
final listMailboxDisplayed = success.mailboxList.listSubscribedMailboxesAndDefaultMailboxes;
await buildTree(listMailboxDisplayed);
if (currentContext != null) {
await syncAllMailboxWithDisplayName(currentContext!);
}
}
void _handleRefreshChangesAllMailboxSuccess(RefreshChangesAllMailboxSuccess success) async {
currentMailboxState = success.currentMailboxState;
final listMailboxDisplayed = success.mailboxList.listSubscribedMailboxesAndDefaultMailboxes;
await refreshTree(listMailboxDisplayed);
if (currentContext != null) {
await syncAllMailboxWithDisplayName(currentContext!);
}
}
void _unsubscribeMailboxAction(MailboxId mailboxId) {