From 4a1c637efc423814a820b51f193a1856bfe83530 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe <dev@mhibbe.de> Date: Mon, 1 Nov 2021 09:17:49 +0100 Subject: [PATCH] add checks if pip is supported by device Signed-off-by: Marcel Hibbe <dev@mhibbe.de> --- .../com/nextcloud/talk/activities/CallActivity.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 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 30b25ce49..48f854862 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -26,6 +26,7 @@ import android.animation.AnimatorListenerAdapter; import android.annotation.SuppressLint; import android.app.KeyguardManager; import android.app.PictureInPictureParams; +import android.content.pm.PackageManager; import android.content.res.Configuration; import android.graphics.Color; import android.media.AudioAttributes; @@ -499,7 +500,7 @@ public class CallActivity extends BaseActivity { binding.callInfosLinearLayout.setVisibility(View.VISIBLE); binding.selfVideoViewWrapper.setVisibility(View.VISIBLE); - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { + if (!deviceSupportsPipMode()) { binding.pictureInPictureButton.setVisibility(View.GONE); } @@ -2423,23 +2424,30 @@ public class CallActivity extends BaseActivity { } } + @Override public void onBackPressed() { enterPipMode(); } + @Override public void onUserLeaveHint() { enterPipMode(); } void enterPipMode() { enableKeyguard(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (deviceSupportsPipMode()) { enterPictureInPictureMode(getPipParams()); } else { finish(); } } + private boolean deviceSupportsPipMode() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + && getPackageManager().hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE); + } + @RequiresApi(Build.VERSION_CODES.O) public PictureInPictureParams getPipParams() { Rational pipRatio = new Rational(300, 500);