* fix pip

* refactor: make isPipSupported more readable

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
This commit is contained in:
Cd16d 2023-08-24 21:29:10 +02:00 committed by GitHub
parent dc40ebdf91
commit a36c4f0dca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 1 deletions

View file

@ -1,5 +1,6 @@
package dev.jdtech.jellyfin package dev.jdtech.jellyfin
import android.app.AppOpsManager
import android.app.PictureInPictureParams import android.app.PictureInPictureParams
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -8,7 +9,9 @@ import android.content.pm.PackageManager
import android.content.res.Configuration import android.content.res.Configuration
import android.graphics.Rect import android.graphics.Rect
import android.media.AudioManager import android.media.AudioManager
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Process
import android.util.Rational import android.util.Rational
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
@ -16,6 +19,7 @@ import android.widget.Button
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.ImageView import android.widget.ImageView
import android.widget.Space
import android.widget.TextView import android.widget.TextView
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.view.isVisible import androidx.core.view.isVisible
@ -57,7 +61,19 @@ class PlayerActivity : BasePlayerActivity() {
private var previewScrubListener: PreviewScrubListener? = null private var previewScrubListener: PreviewScrubListener? = null
private val isPipSupported by lazy { private val isPipSupported by lazy {
packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE) // Check if device has PiP feature
if (!packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)) {
return@lazy false
}
// Check if PiP is enabled for the app
val appOps = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
appOps?.unsafeCheckOpNoThrow(AppOpsManager.OPSTR_PICTURE_IN_PICTURE, Process.myUid(), packageName) == AppOpsManager.MODE_ALLOWED
} else {
@Suppress("DEPRECATION")
appOps?.checkOpNoThrow(AppOpsManager.OPSTR_PICTURE_IN_PICTURE, Process.myUid(), packageName) == AppOpsManager.MODE_ALLOWED
}
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -176,7 +192,9 @@ class PlayerActivity : BasePlayerActivity() {
pipButton.isEnabled = false pipButton.isEnabled = false
pipButton.imageAlpha = 75 pipButton.imageAlpha = 75
} else { } else {
val pipSpace = binding.playerView.findViewById<Space>(R.id.space_pip)
pipButton.isVisible = false pipButton.isVisible = false
pipSpace.isVisible = false
} }
audioButton.setOnClickListener { audioButton.setOnClickListener {

View file

@ -85,6 +85,7 @@
app:tint="@android:color/white" /> app:tint="@android:color/white" />
<Space <Space
android:id="@+id/space_pip"
android:layout_width="16dp" android:layout_width="16dp"
android:layout_height="0dp" /> android:layout_height="0dp" />