feat: reconnect disconnected WS when app goes into foreground

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2025-01-23 00:52:16 +01:00
parent 05265476d1
commit 765ce2b3fa
1 changed files with 9 additions and 0 deletions

View File

@ -54,7 +54,9 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.core.app.NotificationManagerCompat import androidx.core.app.NotificationManagerCompat
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.compose.LifecycleEventEffect
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import androidx.navigation.NavController import androidx.navigation.NavController
import chat.revolt.BuildConfig import chat.revolt.BuildConfig
@ -307,6 +309,13 @@ fun ChatRouterScreen(
} }
} }
LifecycleEventEffect(Lifecycle.Event.ON_RESUME) {
if (RealtimeSocket.disconnectionState == DisconnectionState.Disconnected) {
RealtimeSocket.updateDisconnectionState(DisconnectionState.Reconnecting)
scope.launch { RevoltAPI.connectWS() }
}
}
LaunchedEffect(drawerState) { LaunchedEffect(drawerState) {
snapshotFlow { drawerState.currentValue } snapshotFlow { drawerState.currentValue }
.distinctUntilChanged() .distinctUntilChanged()