diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt index 095178fefbf..727725e496d 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt @@ -2123,11 +2123,12 @@ class CallActivity : CallBaseActivity() { for (participant in participantsInCall) { val inCallFlag = participant.inCall - if (participant.sessionId != currentSessionId) { + val participantSession = if (hasMCU) participant.sessionId else participant.nextcloudSessionId + if (participantSession != callSession) { Log.d( TAG, " inCallFlag of participant " + - participant.sessionId!!.substring(0, SESSION_ID_PREFFIX_END) + + participantSession!!.substring(0, SESSION_ID_PREFFIX_END) + " : " + inCallFlag ) diff --git a/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java b/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java index 4b3727aa474..3e675adf0a4 100644 --- a/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java +++ b/app/src/main/java/com/nextcloud/talk/call/CallParticipantList.java @@ -128,6 +128,7 @@ private Participant copyParticipant(Participant participant) { copiedParticipant.setInternal(participant.getInternal()); copiedParticipant.setLastPing(participant.getLastPing()); copiedParticipant.setSessionId(participant.getSessionId()); + copiedParticipant.setNextcloudSessionId(participant.getNextcloudSessionId()); copiedParticipant.setType(participant.getType()); copiedParticipant.setUserId(participant.getUserId()); diff --git a/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt b/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt index 0583c47fe2f..43ebdf27c4f 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/participants/Participant.kt @@ -53,6 +53,9 @@ data class Participant( @JsonField(name = ["sessionId"]) var sessionId: String? = null, + @JsonField(name = ["nextcloudSessionId"]) + var nextcloudSessionId: String? = null, + @JsonField(name = ["sessionIds"]) var sessionIds: ArrayList = ArrayList(0), @@ -80,7 +83,7 @@ data class Participant( // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' constructor() : this( null, null, null, null, null, null, null, null, null, - 0, null, ArrayList(0), 0, 0, null, + 0, null, null, ArrayList(0), 0, 0, null, null, null ) diff --git a/app/src/main/java/com/nextcloud/talk/signaling/SignalingMessageReceiver.java b/app/src/main/java/com/nextcloud/talk/signaling/SignalingMessageReceiver.java index 397ba7b55ce..1212ffab670 100644 --- a/app/src/main/java/com/nextcloud/talk/signaling/SignalingMessageReceiver.java +++ b/app/src/main/java/com/nextcloud/talk/signaling/SignalingMessageReceiver.java @@ -493,6 +493,7 @@ private Participant getParticipantFromMessageMap(Map participant participant.setInCall(Long.parseLong(participantMap.get("inCall").toString())); participant.setLastPing(Long.parseLong(participantMap.get("lastPing").toString())); participant.setSessionId(participantMap.get("sessionId").toString()); + participant.setNextcloudSessionId(participantMap.get("nextcloudSessionId").toString()); if (participantMap.get("userId") != null && !participantMap.get("userId").toString().isEmpty()) { participant.setUserId(participantMap.get("userId").toString());