Skip to content

Commit 883bc6f

Browse files
StaehliJMGaetan89
andauthored
Check device capabilities to display picture in picture button (#663)
Co-authored-by: Gaëtan Muller <[email protected]>
1 parent 8e65327 commit 883bc6f

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

pillarbox-demo/src/main/java/ch/srgssr/pillarbox/demo/ui/player/SimplePlayerActivity.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.content.ComponentName
99
import android.content.Context
1010
import android.content.Intent
1111
import android.content.ServiceConnection
12+
import android.content.pm.PackageManager
1213
import android.content.res.Configuration
1314
import android.graphics.Color
1415
import android.os.Build
@@ -108,7 +109,10 @@ class SimplePlayerActivity : ComponentActivity(), ServiceConnection {
108109
}
109110

110111
private fun isPictureInPicturePossible(): Boolean {
111-
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
112+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
113+
return packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)
114+
}
115+
return false
112116
}
113117

114118
@Composable
@@ -144,6 +148,7 @@ class SimplePlayerActivity : ComponentActivity(), ServiceConnection {
144148
.build()
145149
enterPictureInPictureMode(params)
146150
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
151+
@Suppress("DEPRECATION")
147152
enterPictureInPictureMode()
148153
}
149154
}

pillarbox-demo/src/main/java/ch/srgssr/pillarbox/demo/ui/showcases/integrations/MediaControllerActivity.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package ch.srgssr.pillarbox.demo.ui.showcases.integrations
66

77
import android.app.PictureInPictureParams
8+
import android.content.pm.PackageManager
89
import android.content.res.Configuration
910
import android.os.Build
1011
import android.os.Bundle
@@ -34,7 +35,7 @@ import kotlinx.coroutines.launch
3435
/**
3536
* Media controller activity
3637
*
37-
* Using official guide for background playback at https://developer.android.com/guide/topics/media/media3/getting-started/playing-in-background
38+
* Using official guides for background playback at https://developer.android.com/guide/topics/media/media3/getting-started/playing-in-background
3839
*
3940
* @constructor Create empty Media controller activity
4041
*/
@@ -66,10 +67,16 @@ class MediaControllerActivity : ComponentActivity() {
6667
}
6768
}
6869

70+
private fun isPictureInPicturePossible(): Boolean {
71+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
72+
return packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)
73+
}
74+
return false
75+
}
76+
6977
@Composable
7078
private fun MainView(player: Player) {
71-
val isPictureInPicturePossible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
72-
val pictureInPictureClick: (() -> Unit)? = if (isPictureInPicturePossible) this::startPictureInPicture else null
79+
val pictureInPictureClick: (() -> Unit)? = if (isPictureInPicturePossible()) this::startPictureInPicture else null
7380
val pictureInPicture by controllerViewModel.pictureInPictureEnabled.collectAsState()
7481
DemoPlayerView(
7582
player = player,
@@ -86,6 +93,7 @@ class MediaControllerActivity : ComponentActivity() {
8693
.build()
8794
enterPictureInPictureMode(params)
8895
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
96+
@Suppress("DEPRECATION")
8997
enterPictureInPictureMode()
9098
}
9199
}

0 commit comments

Comments
 (0)