From 16216ce6bf94f4cb2f748f0e586f3f1204fc6bee Mon Sep 17 00:00:00 2001 From: Infi Date: Thu, 6 Jun 2024 18:42:40 +0200 Subject: [PATCH] fix: last resort for socket disconnect crash Signed-off-by: Infi --- .../main/java/chat/revolt/api/RevoltAPI.kt | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/chat/revolt/api/RevoltAPI.kt b/app/src/main/java/chat/revolt/api/RevoltAPI.kt index 4f9a536b..9f026310 100644 --- a/app/src/main/java/chat/revolt/api/RevoltAPI.kt +++ b/app/src/main/java/chat/revolt/api/RevoltAPI.kt @@ -167,24 +167,32 @@ object RevoltAPI { 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) + try { + 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) { + Sentry.captureMessage("Error in socket error handling: $e") } - RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected) } } } catch (e: Exception) { - if (e is InterruptedException) { - Log.d("RevoltAPI", "Socket interrupted") - } else { - Log.e("RevoltAPI", "WebSocket error", e) + try { + if (e is InterruptedException) { + Log.d("RevoltAPI", "Socket interrupted") + } else { + Log.e("RevoltAPI", "WebSocket error", e) + } + RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected) + } catch (e: Exception) { + Sentry.captureMessage("Error in socket error handling: $e") } - RealtimeSocket.updateDisconnectionState(DisconnectionState.Disconnected) } } }