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..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; @@ -633,23 +634,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 +1594,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 +1693,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"); @@ -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,