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, ) }