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()