From 4414002b8a75c0f4fa2ac805d18a48500f2fe99b Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 9 May 2022 12:44:51 +0200 Subject: [PATCH 1/2] reformat code Signed-off-by: Marcel Hibbe --- .../talk/activities/CallActivity.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) 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 093dd9134..ca783f20a 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -633,23 +633,23 @@ public class CallActivity extends CallBaseActivity { binding.conversationRelativeLayout .getViewTreeObserver() .addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - binding.conversationRelativeLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this); - int height = binding.conversationRelativeLayout.getMeasuredHeight(); - binding.gridview.setMinimumHeight(height); - } - }); + @Override + public void onGlobalLayout() { + binding.conversationRelativeLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this); + int height = binding.conversationRelativeLayout.getMeasuredHeight(); + binding.gridview.setMinimumHeight(height); + } + }); binding .callInfosLinearLayout .getViewTreeObserver() .addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - binding.callInfosLinearLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this); - } - }); + @Override + public void onGlobalLayout() { + binding.callInfosLinearLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + }); participantsAdapter = new ParticipantsAdapter( this, @@ -1593,9 +1593,9 @@ public class CallActivity extends CallBaseActivity { if ("unshareScreen".equals(type) || (("offer".equals(type) || - "answer".equals(type) || - "candidate".equals(type) || - "endOfCandidates".equals(type)) && + "answer".equals(type) || + "candidate".equals(type) || + "endOfCandidates".equals(type)) && peerConnectionWrapper != null)) { switch (type) { case "unshareScreen": @@ -1692,7 +1692,7 @@ public class CallActivity extends CallBaseActivity { endPeerConnection(peerConnectionWrapperList.get(i).getSessionId(), false); } - if(localStream != null) { + if (localStream != null) { localStream.dispose(); localStream = null; Log.d(TAG, "Disposed localStream"); From a43a51b931687c7a3059b2fd5ee1ee30dd828923 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 9 May 2022 13:00:01 +0200 Subject: [PATCH 2/2] try to fix #1978 i suspect that peerConnectionFactory could have been null because e.g. "hangup()" was already called which sets it to null. Because of some async task getOrCreatePeerConnectionWrapperForSessionIdAndType might still be called afterwards and it failed because peerConnectionFactory was already null. Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/activities/CallActivity.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 ca783f20a..4ceefb3fd 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -49,6 +49,7 @@ import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.RelativeLayout; +import android.widget.Toast; import com.bluelinelabs.logansquare.LoganSquare; import com.nextcloud.talk.R; @@ -1885,6 +1886,14 @@ public class CallActivity extends CallBaseActivity { if ((peerConnectionWrapper = getPeerConnectionWrapperForSessionIdAndType(sessionId, type)) != null) { return peerConnectionWrapper; } else { + if (peerConnectionFactory == null) { + Log.e(TAG, "peerConnectionFactory was null in getOrCreatePeerConnectionWrapperForSessionIdAndType."); + Toast.makeText(context, context.getResources().getString(R.string.nc_common_error_sorry), + Toast.LENGTH_LONG).show(); + hangup(true); + return null; + } + if (hasMCU && publisher) { peerConnectionWrapper = new PeerConnectionWrapper(peerConnectionFactory, iceServers,