diff --git a/app/build.gradle b/app/build.gradle
index 3c42229a9..4319b02f5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -68,6 +68,8 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "com.android.support:appcompat-v7:${supportLibraryVersion}"
implementation "com.android.support:design:${supportLibraryVersion}"
+ implementation "com.android.support:percent:${supportLibraryVersion}"
+
implementation 'com.android.support:multidex:1.0.2'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
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 000877ab9..8ec715f28 100644
--- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java
+++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java
@@ -34,8 +34,7 @@ import android.util.TypedValue;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
-import android.widget.GridLayout;
-import android.widget.RelativeLayout;
+import android.widget.LinearLayout;
import com.bluelinelabs.logansquare.LoganSquare;
import com.nextcloud.talk.R;
@@ -106,8 +105,8 @@ public class CallActivity extends AppCompatActivity {
@BindView(R.id.pip_video_view)
SurfaceViewRenderer pipVideoView;
- @BindView(R.id.videos_grid_view)
- GridLayout videosGrid;
+ @BindView(R.id.remote_renderers_layout)
+ LinearLayout remoteRenderersLayout;
@Inject
NcApi ncApi;
@@ -449,9 +448,14 @@ public class CallActivity extends AppCompatActivity {
case "offer":
case "answer":
magicPeerConnectionWrapper.setNick(ncSignalingMessage.getPayload().getNick());
- magicPeerConnectionWrapper.getPeerConnection().setRemoteDescription(magicPeerConnectionWrapper
- .getMagicSdpObserver(), new SessionDescription(SessionDescription.Type.fromCanonicalForm(type),
- ncSignalingMessage.getPayload().getSdp()));
+ if (!magicPeerConnectionWrapper.getPeerConnection().signalingState().equals
+ (PeerConnection.SignalingState.STABLE) &&
+ magicPeerConnectionWrapper.getPeerConnection().getRemoteDescription() == null ||
+ magicPeerConnectionWrapper.getPeerConnection().getLocalDescription() == null) {
+ magicPeerConnectionWrapper.getPeerConnection().setRemoteDescription(magicPeerConnectionWrapper
+ .getMagicSdpObserver(), new SessionDescription(SessionDescription.Type.fromCanonicalForm(type),
+ ncSignalingMessage.getPayload().getSdp()));
+ }
break;
case "candidate":
NCIceCandidate ncIceCandidate = ncSignalingMessage.getPayload().getIceCandidate();
@@ -617,11 +621,11 @@ public class CallActivity extends AppCompatActivity {
public void run() {
if (stream.videoTracks.size() == 1) {
try {
- RelativeLayout relativeLayout = (RelativeLayout)
- getLayoutInflater().inflate(R.layout.surface_renderer, videosGrid,
+ LinearLayout linearLayout = (LinearLayout)
+ getLayoutInflater().inflate(R.layout.surface_renderer, remoteRenderersLayout,
false);
- relativeLayout.setTag(session);
- SurfaceViewRenderer surfaceViewRenderer = relativeLayout.findViewById(R.id
+ linearLayout.setTag(session);
+ SurfaceViewRenderer surfaceViewRenderer = linearLayout.findViewById(R.id
.surface_view);
surfaceViewRenderer.setMirror(false);
surfaceViewRenderer.init(rootEglBase.getEglBaseContext(), null);
@@ -631,7 +635,8 @@ public class CallActivity extends AppCompatActivity {
VideoRenderer remoteRenderer = new VideoRenderer(surfaceViewRenderer);
videoRendererHashMap.put(session, remoteRenderer);
videoTrack.addRenderer(remoteRenderer);
- videosGrid.addView(relativeLayout);
+ remoteRenderersLayout.addView(linearLayout);
+ linearLayout.invalidate();
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml
index 9d0722540..f25ec4682 100644
--- a/app/src/main/res/layout/activity_call.xml
+++ b/app/src/main/res/layout/activity_call.xml
@@ -24,16 +24,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
+ android:id="@+id/relative_layout"
tools:context=".activities.CallActivity">
-
-
-
+ android:layout_height="match_parent"
+ android:id="@+id/remote_renderers_layout"
+ android:orientation="vertical">
+
.
-->
-
-
\ No newline at end of file
+
\ No newline at end of file