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);