From 765ce2b3faf3e008e4ab3412520edf007dd99565 Mon Sep 17 00:00:00 2001 From: Infi Date: Thu, 23 Jan 2025 00:52:16 +0100 Subject: [PATCH] feat: reconnect disconnected WS when app goes into foreground Signed-off-by: Infi --- .../java/chat/revolt/screens/chat/ChatRouterScreen.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt index 6ac1aed3..c5331dbf 100644 --- a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt +++ b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt @@ -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()