From ca1ba459a16dd5cb977407df40cf90db6f1c4681 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 18 Jun 2025 17:01:59 +0700 Subject: [PATCH] Fix cannot auto refresh when back to app Signed-off-by: dab246 --- .../controller/mailbox_dashboard_controller.dart | 10 +++++----- .../email/presentation/search_email_controller.dart | 6 +++--- .../presentation/search_mailbox_controller.dart | 2 +- .../thread/presentation/thread_controller.dart | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 5518e06c4..95b37489e 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -1862,7 +1862,7 @@ class MailboxDashBoardController extends ReloadableController if (result.value1 is VacationResponse) { vacationResponse.value = result.value1; dispatchMailboxUIAction(RefreshChangeMailboxAction( - newState: jmap.State('vacation-updated-state'), + newState: jmap.State('vacation-updated-state-${DateTime.now().millisecondsSinceEpoch}'), )); } await Future.delayed( @@ -1930,7 +1930,7 @@ class MailboxDashBoardController extends ReloadableController if (result.value1 is VacationResponse) { vacationResponse.value = result.value1; dispatchMailboxUIAction(RefreshChangeMailboxAction( - newState: jmap.State('vacation-updated-state'), + newState: jmap.State('vacation-updated-state-${DateTime.now().millisecondsSinceEpoch}'), )); } await Future.delayed( @@ -2165,10 +2165,10 @@ class MailboxDashBoardController extends ReloadableController void _handleRefreshActionWhenBackToApp(RefreshActionViewEvent viewEvent) { log('MailboxDashBoardController::_handleRefreshActionWhenBackToApp():'); dispatchEmailUIAction(RefreshChangeEmailAction( - newState: jmap.State('refresh-action-when-back-to-app-state'), + newState: jmap.State('refresh-action-when-back-to-app-state-${DateTime.now().millisecondsSinceEpoch}'), )); dispatchMailboxUIAction(RefreshChangeMailboxAction( - newState: jmap.State('refresh-action-when-back-to-app-state'), + newState: jmap.State('refresh-action-when-back-to-app-state-${DateTime.now().millisecondsSinceEpoch}'), )); } @@ -2988,7 +2988,7 @@ class MailboxDashBoardController extends ReloadableController void _handleGetRestoredDeletedMessageSuccess(GetRestoredDeletedMessageSuccess success) async { if (selectedMailbox.value != null && selectedMailbox.value!.isRecovered) { dispatchEmailUIAction(RefreshChangeEmailAction( - newState: jmap.State('restored-deleted-message-success-state'), + newState: jmap.State('restored-deleted-message-success-state-${DateTime.now().millisecondsSinceEpoch}'), )); } diff --git a/lib/features/search/email/presentation/search_email_controller.dart b/lib/features/search/email/presentation/search_email_controller.dart index d46546ff4..c6d979870 100644 --- a/lib/features/search/email/presentation/search_email_controller.dart +++ b/lib/features/search/email/presentation/search_email_controller.dart @@ -288,16 +288,16 @@ class SearchEmailController extends BaseController }); } - void _refreshEmailChanges({jmap.State? newState}) { + void _refreshEmailChanges({required jmap.State newState}) { log('SearchEmailController::_refreshEmailChanges(): newState: $newState'); if (accountId == null || session == null || mailboxDashBoardController.currentEmailState == null || - newState == null || + mailboxDashBoardController.currentEmailState == newState || searchIsRunning.isFalse) { return; } - + log('SearchEmailController::_refreshEmailChanges: websocket enqueue message'); _webSocketQueueHandler?.enqueue(WebSocketMessage(newState: newState)); } diff --git a/lib/features/search/mailbox/presentation/search_mailbox_controller.dart b/lib/features/search/mailbox/presentation/search_mailbox_controller.dart index 2e93190d6..e509c0a88 100644 --- a/lib/features/search/mailbox/presentation/search_mailbox_controller.dart +++ b/lib/features/search/mailbox/presentation/search_mailbox_controller.dart @@ -221,7 +221,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa } } - void _refreshMailboxChanges({jmap.State? newState}) { + void _refreshMailboxChanges({required jmap.State newState}) { if (accountId == null || session == null || currentMailboxState == null || diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index 8d39de3db..43530c534 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -627,7 +627,7 @@ class ThreadController extends BaseController with EmailActionController { mailboxDashBoardController.currentEmailState == newState) { return; } - + log('ThreadController::_refreshEmailChanges: websocket enqueue message:'); _webSocketQueueHandler?.enqueue(WebSocketMessage(newState: newState)); }