From 3eb68cedad7b233a2e2a815789f950c89c894bab Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 9 Mar 2026 15:27:58 +0300 Subject: [PATCH] android: keep session authenticated on startup when offline --- android/CHANGELOG.md | 4 ++++ .../java/ru/daemonlord/messenger/ui/auth/AuthViewModel.kt | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/android/CHANGELOG.md b/android/CHANGELOG.md index d8d892a..1d2d81d 100644 --- a/android/CHANGELOG.md +++ b/android/CHANGELOG.md @@ -343,3 +343,7 @@ - Added paged local history reading path by introducing configurable message observe limit (`observeMessages(chatId, limit)`). - Updated chat screen loading strategy to expand local Room-backed history first when loading older messages. - Added network-failure fallback in message sync/load-more: if network is unavailable but local cache exists, chat remains readable without blocking error. + +### Step 58 - Keep authenticated session when offline at app start +- Updated auth restore flow in `AuthViewModel`: network errors during session restore no longer force logout when local tokens exist. +- App now opens authenticated flow in offline mode instead of redirecting to login. diff --git a/android/app/src/main/java/ru/daemonlord/messenger/ui/auth/AuthViewModel.kt b/android/app/src/main/java/ru/daemonlord/messenger/ui/auth/AuthViewModel.kt index b061400..7c03ce4 100644 --- a/android/app/src/main/java/ru/daemonlord/messenger/ui/auth/AuthViewModel.kt +++ b/android/app/src/main/java/ru/daemonlord/messenger/ui/auth/AuthViewModel.kt @@ -101,10 +101,11 @@ class AuthViewModel @Inject constructor( } is AppResult.Error -> { + val keepAuthenticatedOffline = result.reason is AppError.Network _uiState.update { it.copy( isCheckingSession = false, - isAuthenticated = false, + isAuthenticated = keepAuthenticatedOffline, errorMessage = null, ) }