From 226b45573060f2d46c03b363d29bb1610bc839f4 Mon Sep 17 00:00:00 2001 From: Infi Date: Mon, 29 Jan 2024 23:43:31 +0100 Subject: [PATCH] fix: some websocket related crash Signed-off-by: Infi --- app/src/main/java/chat/revolt/api/RevoltAPI.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/chat/revolt/api/RevoltAPI.kt b/app/src/main/java/chat/revolt/api/RevoltAPI.kt index 32a9d9ef..afc043b0 100644 --- a/app/src/main/java/chat/revolt/api/RevoltAPI.kt +++ b/app/src/main/java/chat/revolt/api/RevoltAPI.kt @@ -39,6 +39,7 @@ import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.Serializable import kotlinx.serialization.cbor.Cbor import kotlinx.serialization.json.Json +import java.net.SocketException import chat.revolt.api.schemas.Channel as ChannelSchema const val REVOLT_BASE = "https://api.revolt.chat" @@ -156,7 +157,19 @@ object RevoltAPI { socketCoroutine = CoroutineScope(Dispatchers.IO).launch { try { withContext(realtimeContext) { - RealtimeSocket.connect(sessionToken) + try { + RealtimeSocket.connect(sessionToken) + } catch (e: Exception) { + if (e is SocketException) { + Log.d( + "RevoltAPI", + "Socket closed, probably no big deal /// " + e.message + ) + } else { + Log.e("RevoltAPI", "WebSocket error", e) + } + RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected) + } } } catch (e: Exception) { if (e is InterruptedException) {