瀏覽代碼

Merge pull request #2484 from nextcloud/fix-computing-new-sessions-in-call

Fix computing new sessions in call
Tim Krüger 2 年之前
父節點
當前提交
a17acc779c
共有 1 個文件被更改,包括 5 次插入7 次删除
  1. 5 7
      app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

+ 5 - 7
app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

@@ -1851,17 +1851,14 @@ public class CallActivity extends CallBaseActivity {
         for (HashMap<String, Object> participant : users) {
             long inCallFlag = (long) participant.get("inCall");
             if (!participant.get("sessionId").equals(currentSessionId)) {
-                boolean isNewSession;
                 Log.d(TAG, "   inCallFlag of participant "
                     + participant.get("sessionId").toString().substring(0, 4)
                     + " : "
                     + inCallFlag);
-                isNewSession = inCallFlag != 0;
 
-                if (isNewSession) {
+                boolean isInCall = inCallFlag != 0;
+                if (isInCall) {
                     newSessions.add(participant.get("sessionId").toString());
-                } else {
-                    oldSessions.add(participant.get("sessionId").toString());
                 }
 
                 // The property is "userId" when not using the external signaling server and "userid" when using it.
@@ -1888,7 +1885,8 @@ public class CallActivity extends CallBaseActivity {
         }
 
         // Calculate sessions that left the call
-        oldSessions.removeAll(newSessions);
+        List<String> disconnectedSessions = new ArrayList<>(oldSessions);
+        disconnectedSessions.removeAll(newSessions);
 
         // Calculate sessions that join the call
         newSessions.removeAll(oldSessions);
@@ -1926,7 +1924,7 @@ public class CallActivity extends CallBaseActivity {
             setCallState(CallStatus.IN_CONVERSATION);
         }
 
-        for (String sessionId : oldSessions) {
+        for (String sessionId : disconnectedSessions) {
             Log.d(TAG, "   oldSession that will be removed is: " + sessionId);
             endPeerConnection(sessionId, false);
         }