From 9b735ebf597864a923619625dbda31161166e833 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 27 Jun 2023 21:55:46 +0700 Subject: [PATCH] TF-1933 Combine cache and server when get session (cherry picked from commit 05e8ba3d5110c311eae5db0120ea3a9128b7b5d5) --- .../session/domain/state/get_session_state.dart | 2 ++ .../domain/usecases/get_session_interactor.dart | 1 + .../session/presentation/session_controller.dart | 12 ++++++------ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/features/session/domain/state/get_session_state.dart b/lib/features/session/domain/state/get_session_state.dart index 0dc643183..f490a6a5d 100644 --- a/lib/features/session/domain/state/get_session_state.dart +++ b/lib/features/session/domain/state/get_session_state.dart @@ -1,6 +1,8 @@ import 'package:core/core.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; +class GetSessionLoading extends UIState {} + class GetSessionSuccess extends UIState { final Session session; diff --git a/lib/features/session/domain/usecases/get_session_interactor.dart b/lib/features/session/domain/usecases/get_session_interactor.dart index b65a02e95..c108a28be 100644 --- a/lib/features/session/domain/usecases/get_session_interactor.dart +++ b/lib/features/session/domain/usecases/get_session_interactor.dart @@ -11,6 +11,7 @@ class GetSessionInteractor { Stream> execute() async* { try { + yield Right(GetSessionLoading()); final session = await sessionRepository.getSession(); yield Right(GetSessionSuccess(session)); } catch (e) { diff --git a/lib/features/session/presentation/session_controller.dart b/lib/features/session/presentation/session_controller.dart index 47d97c6dd..4986f3e46 100644 --- a/lib/features/session/presentation/session_controller.dart +++ b/lib/features/session/presentation/session_controller.dart @@ -1,9 +1,9 @@ -import 'package:core/core.dart'; import 'package:core/data/network/config/dynamic_url_interceptors.dart'; import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/utils/app_logger.dart'; +import 'package:core/utils/platform_info.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart'; @@ -88,6 +88,11 @@ class SessionController extends ReloadableController { arguments: session); } + void _handleGetStoredSession() { + log('SessionController::_handleGetStoredSession():'); + consumeState(_getStoredSessionInteractor.execute()); + } + void _getSession() async { consumeState(_getSessionInteractor.execute()); } @@ -137,9 +142,4 @@ class SessionController extends ReloadableController { performInvokeLogoutAction(); } } - - void _handleGetStoredSession() { - log('SessionController::_handleGetStoredSession():'); - consumeState(_getStoredSessionInteractor.execute()); - } } \ No newline at end of file