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.core.app.NotificationManagerCompat
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.compose.LifecycleEventEffect
import androidx.lifecycle.viewModelScope
import androidx.navigation.NavController
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) {
snapshotFlow { drawerState.currentValue }
.distinctUntilChanged()