diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index 33af8ca16..8baa3da88 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -1016,6 +1016,8 @@ public class CallActivity extends AppCompatActivity { videoCapturer = null; } + rootEglBase.release(); + hangupNetworkCalls(); } @@ -1207,6 +1209,8 @@ public class CallActivity extends AppCompatActivity { MagicPeerConnectionWrapper magicPeerConnectionWrapper; if ((magicPeerConnectionWrapper = getPeerConnectionWrapperForSessionId(sessionId)) != null) { runOnUiThread(() -> removeMediaStream(sessionId)); + magicPeerConnectionWrapper.removeMediaStream(); + magicPeerConnectionWrapper.removePeerConnection(); deleteMagicPeerConnection(magicPeerConnectionWrapper); } } diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java b/app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java index ff8c801ad..5e5a759f5 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java @@ -92,6 +92,10 @@ public class MagicPeerConnectionWrapper { } } + public void removePeerConnection() { + peerConnection.close(); + peerConnection = null; + } public void removeMediaStream() { if (peerConnection != null && localMediaStream != null) { peerConnection.removeStream(localMediaStream);