TF-3767 Clean up recent searches whenever re-login and exceeds limit

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-11 12:59:13 +07:00
committed by Dat H. Pham
parent a02435c9f5
commit 6fef6190e0
13 changed files with 136 additions and 61 deletions
@@ -11,6 +11,7 @@ import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/caching/utils/local_storage_manager.dart';
import 'package:tmail_ui_user/features/caching/utils/session_storage_manager.dart';
import 'package:tmail_ui_user/features/cleanup/data/local/recent_search_cache_manager.dart';
import 'package:tmail_ui_user/features/cleanup/presentation/cleanup_bindings.dart';
import 'package:tmail_ui_user/features/composer/data/repository/contact_repository_impl.dart';
import 'package:tmail_ui_user/features/composer/domain/repository/contact_repository.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
@@ -144,6 +145,7 @@ class MailboxDashBoardBindings extends BaseBindings {
@override
void dependencies() {
CleanupBindings().dependencies();
super.dependencies();
SendingQueueBindings().dependencies();
MailboxBindings().dependencies();
@@ -102,6 +102,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/download/download_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart' as search;
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/cleanup_recent_search_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/delete_emails_in_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_clear_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_create_filter_for_folder.dart';
@@ -781,6 +782,7 @@ class MailboxDashBoardController extends ReloadableController
spamReportController.getSpamReportStateAction();
_getAllIdentities();
getServerSetting();
cleanupRecentSearch();
if (PlatformInfo.isMobile) {
getAllSendingEmails();
@@ -0,0 +1,24 @@
import 'package:core/utils/app_logger.dart';
import 'package:tmail_ui_user/features/cleanup/domain/model/recent_search_cleanup_rule.dart';
import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_search_cache_interactor.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
extension CleanupRecentSearchExtension on MailboxDashBoardController {
void cleanupRecentSearch() {
final cleanupRecentSearchCacheInteractor =
getBinding<CleanupRecentSearchCacheInteractor>();
final accountId = this.accountId.value;
final username = sessionCurrent?.username;
if (accountId == null || username == null || cleanupRecentSearchCacheInteractor == null) {
logError('CleanupRecentSearchExtension::cleanupRecentSearch: accountId == null || username == null || cleanupRecentSearchCacheInteractor == null');
return;
}
consumeState(cleanupRecentSearchCacheInteractor.execute(
RecentSearchCleanupRule(accountId, username),
));
}
}