Эх сурвалжийг харах

Fix null reference when a participant leaves

java.lang.NullPointerException: Attempt to invoke virtual method
'void com.nextcloud.talk.adapters.ParticipantDisplayItem.setAudioEnabled(boolean)'
on a null object reference

Signed-off-by: Joas Schilling <coding@schilljs.com>
Joas Schilling 4 жил өмнө
parent
commit
112a5662ad

+ 9 - 3
app/src/main/java/com/nextcloud/talk/controllers/CallController.java

@@ -1866,15 +1866,21 @@ public class CallController extends BaseController {
                 }
             }
         } else if (peerConnectionEvent.getPeerConnectionEventType().equals(PeerConnectionEvent.PeerConnectionEventType.NICK_CHANGE)) {
-            participantDisplayItems.get(sessionId).setNick(peerConnectionEvent.getNick());
+            if (participantDisplayItems.get(sessionId) != null) {
+                participantDisplayItems.get(sessionId).setNick(peerConnectionEvent.getNick());
+            }
             participantsAdapter.notifyDataSetChanged();
 
         } else if (peerConnectionEvent.getPeerConnectionEventType().equals(PeerConnectionEvent.PeerConnectionEventType.VIDEO_CHANGE) && !isVoiceOnlyCall) {
-            participantDisplayItems.get(sessionId).setStreamEnabled(peerConnectionEvent.getChangeValue());
+            if (participantDisplayItems.get(sessionId) != null) {
+                participantDisplayItems.get(sessionId).setStreamEnabled(peerConnectionEvent.getChangeValue());
+            }
             participantsAdapter.notifyDataSetChanged();
 
         } else if (peerConnectionEvent.getPeerConnectionEventType().equals(PeerConnectionEvent.PeerConnectionEventType.AUDIO_CHANGE)) {
-            participantDisplayItems.get(sessionId).setAudioEnabled(peerConnectionEvent.getChangeValue());
+            if (participantDisplayItems.get(sessionId) != null) {
+                participantDisplayItems.get(sessionId).setAudioEnabled(peerConnectionEvent.getChangeValue());
+            }
             participantsAdapter.notifyDataSetChanged();
 
         } else if (peerConnectionEvent.getPeerConnectionEventType().equals(PeerConnectionEvent.PeerConnectionEventType.PUBLISHER_FAILED)) {