From 83a91539fbb0c7c80df9e7f5599037ee47f535c7 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Wed, 17 Oct 2018 14:12:29 +0200 Subject: [PATCH] Get participants update to work --- .../talk/controllers/CallController.java | 30 +++++++++---------- .../talk/webrtc/MagicWebSocketInstance.java | 4 +-- 2 files changed, 17 insertions(+), 17 deletions(-) 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 2c5a36089..53db20198 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -1024,7 +1024,7 @@ public class CallController extends BaseController { } private void joinRoomAndCall() { - if ("0".equals(callSession) || externalSignalingServer != null) { + if ("0".equals(callSession)) { ncApi.joinRoom(credentials, ApiUtils.getUrlForSettingMyselfAsActiveParticipant(baseUrl, roomToken), null) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) @@ -1037,12 +1037,8 @@ public class CallController extends BaseController { @Override public void onNext(CallOverall callOverall) { - if (externalSignalingServer == null) { - callSession = callOverall.getOcs().getData().getSessionId(); - performCall(); - } else { - webSocketClient.joinRoomWithRoomToken(roomToken); - } + callSession = callOverall.getOcs().getData().getSessionId(); + callOrJoinRoomViaWebSocket(); } @Override @@ -1056,7 +1052,15 @@ public class CallController extends BaseController { } }); } else { + callOrJoinRoomViaWebSocket(); + } + } + + private void callOrJoinRoomViaWebSocket() { + if (externalSignalingServer == null) { performCall(); + } else { + webSocketClient.joinRoomWithRoomTokenAndSession(roomToken, callSession); } } @@ -1171,7 +1175,7 @@ public class CallController extends BaseController { } else { - alwaysGetPeerConnectionWrapperForSessionId(callSession, true); + alwaysGetPeerConnectionWrapperForSessionId(webSocketClient.getSessionId(), true); } } @@ -1197,7 +1201,6 @@ public class CallController extends BaseController { public void onMessageEvent(WebSocketCommunicationEvent webSocketCommunicationEvent) { switch (webSocketCommunicationEvent.getType()) { case "hello": - callSession = webSocketClient.getSessionId(); joinRoomAndCall(); break; case "roomJoined": @@ -1373,7 +1376,7 @@ public class CallController extends BaseController { @Override public void onNext(GenericOverall genericOverall) { if (externalSignalingServer != null) { - webSocketClient.joinRoomWithRoomToken(""); + webSocketClient.joinRoomWithRoomTokenAndSession("", ""); } if (isMultiSession) { @@ -1455,11 +1458,7 @@ public class CallController extends BaseController { } for (MagicPeerConnectionWrapper magicPeerConnectionWrapper : magicPeerConnectionWrapperList) { - if (externalSignalingServer != null && callSession.equals(magicPeerConnectionWrapper.getSessionId())) { - oldSesssions.add(magicPeerConnectionWrapper.getSessionId()); - } else { - oldSesssions.add(magicPeerConnectionWrapper.getSessionId()); - } + oldSesssions.add(magicPeerConnectionWrapper.getSessionId()); } // Calculate sessions that left the call @@ -1716,6 +1715,7 @@ public class CallController extends BaseController { } }); } else { + Log.d("MARIO", "SENDING CALL MESSAGE " + ncMessageWrapper.getSignalingMessage().getType()); webSocketClient.sendCallMessage(ncMessageWrapper); } } 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 2b7237e80..dfbe91565 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java @@ -202,9 +202,9 @@ public class MagicWebSocketInstance extends WebSocketListener { return hasMCU; } - public void joinRoomWithRoomToken(String roomToken) { + public void joinRoomWithRoomTokenAndSession(String roomToken, String normalBackendSession) { try { - webSocket.send(LoganSquare.serialize(webSocketConnectionHelper.getAssembledJoinOrLeaveRoomModel(roomToken, sessionId))); + webSocket.send(LoganSquare.serialize(webSocketConnectionHelper.getAssembledJoinOrLeaveRoomModel(roomToken, normalBackendSession))); } catch (IOException e) { Log.e(TAG, "Failed to serialize room overall websocket message"); }