diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java index 07de98553..9d26a3b99 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -1211,6 +1211,8 @@ public class CallController extends BaseController { if (webSocketClient.isConnected()) { joinRoomAndCall(); + } else { + webSocketClient.restartWebSocket(); } } diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java b/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java index 73d450760..f88ed99dc 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java @@ -110,7 +110,7 @@ public class MagicWebSocketInstance extends WebSocketListener { } } - private void restartWebSocket() { + public void restartWebSocket() { Request request = new Request.Builder().url(connectionUrl).build(); this.webSocket = okHttpClient.newWebSocket(request, this); } @@ -144,11 +144,14 @@ public class MagicWebSocketInstance extends WebSocketListener { break; case "room": JoinedRoomOverallWebSocketMessage joinedRoomOverallWebSocketMessage = LoganSquare.parse(text, JoinedRoomOverallWebSocketMessage.class); - if (joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomPropertiesWebSocketMessage() != null) { + currentRoomToken = joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomId(); + if (joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomPropertiesWebSocketMessage() != null && !TextUtils.isEmpty(currentRoomToken)) { HashMap joinRoomHashMap = new HashMap<>(); - joinRoomHashMap.put("roomToken", joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomId()); - currentRoomToken = joinedRoomOverallWebSocketMessage.getRoomWebSocketMessage().getRoomId(); + joinRoomHashMap.put("roomToken", currentRoomToken); eventBus.post(new WebSocketCommunicationEvent("roomJoined", joinRoomHashMap)); + } else { + userIdSesssionHashMap = new HashMap<>(); + displayNameHashMap = new HashMap<>(); } break; case "event":