From 138c7e627dd1474a83d538251b44cfb222af7da4 Mon Sep 17 00:00:00 2001 From: chyngyz Date: Fri, 15 Jan 2021 11:21:01 +0600 Subject: [PATCH] Don't set state to disconnected for normal websocket connection closing - websocket is configured to automatically connect and disconnect when app resumed and paused, respectively --- .../ethereumkit/api/core/InfuraRpcWebSocket.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/api/core/InfuraRpcWebSocket.kt b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/api/core/InfuraRpcWebSocket.kt index 59a56af1..7c3841cc 100644 --- a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/api/core/InfuraRpcWebSocket.kt +++ b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/api/core/InfuraRpcWebSocket.kt @@ -4,6 +4,7 @@ import android.app.Application import com.google.gson.Gson import com.tinder.scarlet.Event import com.tinder.scarlet.Scarlet +import com.tinder.scarlet.ShutdownReason import com.tinder.scarlet.WebSocket import com.tinder.scarlet.lifecycle.android.AndroidLifecycle import com.tinder.scarlet.messageadapter.gson.GsonMessageAdapter @@ -116,7 +117,7 @@ class InfuraRpcWebSocket( } private fun disconnect() { - disposables.clear() + disposables.clear() } private fun observeSocket(socket: InfuraWebSocketService) { @@ -139,7 +140,9 @@ class InfuraRpcWebSocket( is WebSocket.Event.OnConnectionClosed -> { logger.info("On WebSocket Connection Closed") - state = WebSocketState.Disconnected(WebSocketState.DisconnectError.SocketDisconnected(webSocketEvent.shutdownReason.reason)) + if (webSocketEvent.shutdownReason.code != ShutdownReason.GRACEFUL.code) { + state = WebSocketState.Disconnected(WebSocketState.DisconnectError.SocketDisconnected(webSocketEvent.shutdownReason.reason)) + } } is WebSocket.Event.OnConnectionFailed -> { logger.info("On WebSocket Connection Failed")