TF-3334 Synchonize cache all the time have new changes even in search or not

This commit is contained in:
Dat PHAM HOANG
2024-12-26 15:00:55 +07:00
committed by Dat H. Pham
parent 2d976bed18
commit c63e3d2973
2 changed files with 23 additions and 3 deletions
@@ -557,6 +557,8 @@ class ThreadController extends BaseController with EmailActionController {
}
Future<void> _refreshChangeSearchEmail() async {
await _refreshChangeListEmailCache();
log('ThreadController::_refreshChangeSearchEmail:');
canSearchMore = false;
searchController.updateFilterEmail(
@@ -596,9 +598,8 @@ class ThreadController extends BaseController with EmailActionController {
}
}
Future<void> _refreshChangeListEmail() async {
log('ThreadController::_refreshChangeListEmail:');
final refreshViewState = await _refreshChangesEmailsInMailboxInteractor.execute(
Future<Either<Failure, Success>> _refreshChangeListEmailCache() async {
return _refreshChangesEmailsInMailboxInteractor.execute(
_session!,
_accountId!,
mailboxDashBoardController.currentEmailState!,
@@ -614,6 +615,11 @@ class ThreadController extends BaseController with EmailActionController {
mailboxId: selectedMailboxId,
),
).last;
}
Future<void> _refreshChangeListEmail() async {
log('ThreadController::_refreshChangeListEmail:');
final refreshViewState = await _refreshChangeListEmailCache();
final refreshState = refreshViewState
.foldSuccessWithResult<RefreshChangesAllEmailSuccess>();
@@ -35,6 +35,7 @@ import 'package:tmail_ui_user/features/network_connection/presentation/network_c
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
import 'package:tmail_ui_user/features/thread/domain/state/refresh_changes_all_email_state.dart';
import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart';
import 'package:tmail_ui_user/features/thread/domain/usecases/get_email_by_id_interactor.dart';
import 'package:tmail_ui_user/features/thread/domain/usecases/get_emails_in_mailbox_interactor.dart';
@@ -302,6 +303,19 @@ void main() {
properties: anyNamed('properties'),
needRefreshSearchState: anyNamed('needRefreshSearchState'),
)).thenAnswer((_) => Stream.value(Right(SearchEmailSuccess(emailList))));
when(mockRefreshChangesEmailsInMailboxInteractor.execute(
any,
any,
any,
sort: anyNamed('sort'),
propertiesCreated: anyNamed('propertiesCreated'),
propertiesUpdated: anyNamed('propertiesUpdated'),
emailFilter: anyNamed('emailFilter'),
)).thenAnswer((_) => Stream.value(Right(RefreshChangesAllEmailSuccess(
emailList: emailList,
currentEmailState: State('old-state'))))
);
// Act
threadController.onInit();