TF-3834 Implement remember user sort order after search

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-29 16:06:59 +07:00
committed by Dat H. Pham
parent ec4b618a32
commit 1293c1a997
25 changed files with 312 additions and 23 deletions
@@ -3,15 +3,22 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:tmail_ui_user/features/cleanup/data/local/recent_search_cache_manager.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/search_datasource.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/local_sort_order_manager.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
class SearchDataSourceImpl extends SearchDataSource {
final RecentSearchCacheManager _recentSearchCacheManager;
final LocalSortOrderManager _localSortOrderManager;
final ExceptionThrower _exceptionThrower;
SearchDataSourceImpl(this._recentSearchCacheManager, this._exceptionThrower);
SearchDataSourceImpl(
this._recentSearchCacheManager,
this._localSortOrderManager,
this._exceptionThrower,
);
@override
Future<void> saveRecentSearch(
@@ -46,4 +53,18 @@ class SearchDataSourceImpl extends SearchDataSource {
);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<void> storeEmailSortOrder(EmailSortOrderType sortOrderType) {
return Future.sync(() async {
return await _localSortOrderManager.storeEmailSortOrderIfChanged(sortOrderType);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<EmailSortOrderType> getStoredEmailSortOrder() {
return Future.sync(() {
return _localSortOrderManager.getStoredEmailSortOrder();
}).catchError(_exceptionThrower.throwException);
}
}