From 1ae5f51a817f907811bad216def49a709fe7f15b Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 25 Oct 2021 10:47:17 +0200 Subject: [PATCH] hide pip button for android < 8 Signed-off-by: Marcel Hibbe --- .../talk/activities/MagicCallActivity.kt | 7 +++++-- .../talk/adapters/ParticipantsAdapter.java | 19 +++++++++++++++++++ .../talk/controllers/CallController.java | 17 ++++++++++++----- app/src/main/res/layout/controller_call.xml | 7 ++++--- 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt index ae142a96d..326bddc12 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MagicCallActivity.kt @@ -95,10 +95,13 @@ class MagicCallActivity : BaseActivity() { enterPictureInPictureMode(getPipParams()) } - @RequiresApi(Build.VERSION_CODES.O) override fun onUserLeaveHint() { enableKeyguard() - enterPictureInPictureMode(getPipParams()) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + enterPictureInPictureMode(getPipParams()) + } else { + finish() + } } @RequiresApi(Build.VERSION_CODES.O) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/ParticipantsAdapter.java b/app/src/main/java/com/nextcloud/talk/adapters/ParticipantsAdapter.java index d0b4b43fc..493a17cbc 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/ParticipantsAdapter.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/ParticipantsAdapter.java @@ -79,6 +79,8 @@ public class ParticipantsAdapter extends BaseAdapter { surfaceViewRenderer = convertView.findViewById(R.id.surface_view); try { + Log.d(TAG, "hasSurface: " + participantDisplayItem.getRootEglBase().hasSurface()); + surfaceViewRenderer.setMirror(false); surfaceViewRenderer.init(participantDisplayItem.getRootEglBase().getEglBaseContext(), null); surfaceViewRenderer.setZOrderMediaOverlay(false); @@ -127,7 +129,24 @@ public class ParticipantsAdapter extends BaseAdapter { } else { audioOffView.setVisibility(View.INVISIBLE); } + + + convertView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { + + @Override + public void onViewAttachedToWindow(View v) { + Log.d(TAG,"onViewAttachedToWindow"); + } + + @Override + public void onViewDetachedFromWindow(View v) { + Log.d(TAG,"onViewDetachedFromWindow"); + } + }); + + return convertView; + } private boolean hasVideoStream(ParticipantDisplayItem participantDisplayItem, MediaStream mediaStream) { diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java index aa0a1e00c..1189792c2 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -141,7 +141,6 @@ import javax.inject.Inject; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import autodagger.AutoInjector; import butterknife.BindView; @@ -208,8 +207,8 @@ public class CallController extends BaseController { TextView callVoiceOrVideoTextView; @BindView(R.id.callConversationNameTextView) TextView callConversationNameTextView; - - + @BindView(R.id.callControlEnterPip) + SimpleDraweeView callControlEnterPip; @BindView(R.id.callStateRelativeLayoutView) RelativeLayout callStateView; @@ -484,6 +483,10 @@ public class CallController extends BaseController { callInfosLinearLayout.setVisibility(View.VISIBLE); selfVideoViewWrapper.setVisibility(View.VISIBLE); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { + callControlEnterPip.setVisibility(View.GONE); + } + if (isVoiceOnlyCall) { callControlEnableSpeaker.setVisibility(View.VISIBLE); cameraSwitchButton.setVisibility(View.GONE); @@ -858,10 +861,14 @@ public class CallController extends BaseController { } } - @RequiresApi(api = Build.VERSION_CODES.O) @OnClick(R.id.callControlEnterPip) void enterPipMode() { - ((MagicCallActivity) getActivity()).enterPipMode(); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){ + ((MagicCallActivity) getActivity()).enterPipMode(); + } else{ + Log.w(TAG, "tried to enterPipMode with an android api level below 26 (Android 8). This scenario should " + + "have been avoided by hiding the PIP button!"); + } } @OnClick(R.id.callControlHangupView) diff --git a/app/src/main/res/layout/controller_call.xml b/app/src/main/res/layout/controller_call.xml index d53216b67..2195a1b79 100644 --- a/app/src/main/res/layout/controller_call.xml +++ b/app/src/main/res/layout/controller_call.xml @@ -139,13 +139,14 @@ android:animateLayoutChanges="true" android:background="@android:color/transparent" android:gravity="center" - android:orientation="horizontal"> + android:orientation="horizontal" + android:layout_marginStart="40dp" + android:layout_marginEnd="40dp">