~singpolyma/cheogram-android

56535e07ff73a183bd4b8e02edc3700a3e6b4757 — Daniel Gultsch 2 years ago 60c5906
show black bars in video call when video orientation doesn’t match screen orientation

fixes #4056
M src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java => src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java +10 -4
@@ 35,6 35,7 @@ import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;

import org.checkerframework.checker.nullness.compatqual.NullableDecl;
import org.webrtc.RendererCommon;
import org.webrtc.SurfaceViewRenderer;
import org.webrtc.VideoTrack;



@@ 928,7 929,7 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
        if (END_CARD.contains(state) || state == RtpEndUserState.ENDING_CALL) {
            binding.localVideo.setVisibility(View.GONE);
            binding.localVideo.release();
            binding.remoteVideo.setVisibility(View.GONE);
            binding.remoteVideoWrapper.setVisibility(View.GONE);
            binding.remoteVideo.release();
            binding.pipLocalMicOffIndicator.setVisibility(View.GONE);
            if (isPictureInPicture()) {


@@ 954,7 955,7 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
        }
        if (isPictureInPicture() && (state == RtpEndUserState.CONNECTING || state == RtpEndUserState.ACCEPTING_CALL)) {
            binding.localVideo.setVisibility(View.GONE);
            binding.remoteVideo.setVisibility(View.GONE);
            binding.remoteVideoWrapper.setVisibility(View.GONE);
            binding.appBarLayout.setVisibility(View.GONE);
            binding.pipPlaceholder.setVisibility(View.VISIBLE);
            binding.pipWarning.setVisibility(View.GONE);


@@ 976,12 977,17 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
        if (remoteVideoTrack.isPresent()) {
            ensureSurfaceViewRendererIsSetup(binding.remoteVideo);
            addSink(remoteVideoTrack.get(), binding.remoteVideo);
            binding.remoteVideo.setScalingType(
                    RendererCommon.ScalingType.SCALE_ASPECT_FILL,
                    RendererCommon.ScalingType.SCALE_ASPECT_FIT
            );
            if (state == RtpEndUserState.CONNECTED) {
                binding.appBarLayout.setVisibility(View.GONE);
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                binding.remoteVideoWrapper.setVisibility(View.VISIBLE);
            } else {
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                binding.remoteVideo.setVisibility(View.GONE);
                binding.remoteVideoWrapper.setVisibility(View.GONE);
            }
            if (isPictureInPicture() && !requireRtpConnection().isMicrophoneEnabled()) {
                binding.pipLocalMicOffIndicator.setVisibility(View.VISIBLE);


@@ 990,7 996,7 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe
            }
        } else {
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
            binding.remoteVideo.setVisibility(View.GONE);
            binding.remoteVideoWrapper.setVisibility(View.GONE);
            binding.pipLocalMicOffIndicator.setVisibility(View.GONE);
        }
    }

M src/main/res/layout/activity_rtp_session.xml => src/main/res/layout/activity_rtp_session.xml +18 -9
@@ 86,6 86,24 @@

        </RelativeLayout>


        <LinearLayout
            android:id="@+id/remote_video_wrapper"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/app_bar_layout"
            android:layout_alignParentStart="true"
            android:layout_alignParentBottom="true"
            android:background="@color/black"
            android:gravity="center"
            android:visibility="gone">

            <org.webrtc.SurfaceViewRenderer
                android:id="@+id/remote_video"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>

        <org.webrtc.SurfaceViewRenderer
            android:id="@+id/local_video"
            android:layout_width="@dimen/local_video_preview_width"


@@ 97,15 115,6 @@
            android:visibility="gone"
            app:elevation="4dp" />

        <org.webrtc.SurfaceViewRenderer
            android:id="@+id/remote_video"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/app_bar_layout"
            android:layout_alignParentStart="true"
            android:layout_alignParentBottom="true"
            android:visibility="gone" />

        <ImageView
            android:id="@+id/verified"
            android:layout_width="wrap_content"