Skip to content

Commit bf78b0f

Browse files
Support Picture in Picture for android 16 (#1555)
* support pip for android 16 * support pip for android 16 --------- Co-authored-by: Aleksandar Apostolov <[email protected]>
1 parent de6825b commit bf78b0f

File tree

7 files changed

+22
-20
lines changed

7 files changed

+22
-20
lines changed

stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/pip/PictureInPictureConfiguration.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package io.getstream.video.android.core.pip
1818

19+
import android.os.Build
1920
import android.os.Parcelable
2021
import kotlinx.parcelize.Parcelize
2122

@@ -32,9 +33,10 @@ import kotlinx.parcelize.Parcelize
3233
* when configuring the PiP parameters. When `true`, the system automatically enters PiP mode
3334
* when the user presses the home button or performs an equivalent action. Set this to `false`
3435
* if you prefer to manually control when PiP mode should be entered.
36+
* It should be set to `false` for Android 16
3537
*/
3638
@Parcelize
3739
public data class PictureInPictureConfiguration(
3840
val enable: Boolean,
39-
val autoEnterEnabled: Boolean = true,
41+
val autoEnterEnabled: Boolean = Build.VERSION.SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM,
4042
) : Parcelable

stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/lifecycle/MediaPiPLifecycle.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,5 +119,8 @@ public fun MediaPiPLifecycle(
119119
call: Call,
120120
enableInPictureInPicture: Boolean = false,
121121
) {
122-
MediaPiPLifecycle(call, PictureInPictureConfiguration(enableInPictureInPicture))
122+
MediaPiPLifecycle(
123+
call,
124+
PictureInPictureConfiguration(enableInPictureInPicture),
125+
)
123126
}

stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/pip/PictureInPicture.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ internal fun enterPictureInPicture(
5757

5858
val params = PictureInPictureParams.Builder()
5959
params.setAspectRatio(aspect).apply {
60-
var defaultAutoEnterEnabled = true
60+
var defaultAutoEnterEnabled =
61+
Build.VERSION.SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM
62+
6163
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
6264
defaultAutoEnterEnabled = pictureInPictureConfiguration.autoEnterEnabled
6365
}

stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/audio/AudioRoomContent.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,8 @@ public fun AudioRoomContent(
106106
},
107107
onLeaveRoom: (() -> Unit)? = null,
108108
onBackPressed: () -> Unit = {},
109-
pictureInPictureConfiguration: PictureInPictureConfiguration = PictureInPictureConfiguration(
110-
true,
111-
true,
112-
),
109+
pictureInPictureConfiguration: PictureInPictureConfiguration =
110+
PictureInPictureConfiguration(true),
113111
pictureInPictureContent: @Composable (
114112
call: Call,
115113
orientation: Int,
@@ -234,9 +232,7 @@ public fun AudioRoomContent(
234232
) {
235233
AudioRoomContent(
236234
modifier, call, isShowingAppBar, permissions, title, appBarContent, style, audioRenderer, audioContent, onLeaveRoom, onBackPressed,
237-
PictureInPictureConfiguration(
238-
enableInPictureInPicture,
239-
),
235+
PictureInPictureConfiguration(enableInPictureInPicture),
240236
pictureInPictureContent, controlsContent,
241237
)
242238
}

stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/activecall/CallContent.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,8 @@ public fun CallContent(
149149
onCallAction = onCallAction,
150150
)
151151
},
152-
pictureInPictureConfiguration: PictureInPictureConfiguration = PictureInPictureConfiguration(
153-
true,
154-
true,
155-
),
152+
pictureInPictureConfiguration: PictureInPictureConfiguration =
153+
PictureInPictureConfiguration(true),
156154
pictureInPictureContent: @Composable (Call) -> Unit = { DefaultPictureInPictureContent(it) },
157155
enableDiagnostics: Boolean = false,
158156
closedCaptionUi: @Composable (Call) -> Unit = {},
@@ -301,10 +299,7 @@ public fun CallContent(
301299
CallContent(
302300
call, modifier, layout, permissions, onBackPressed, onCallAction, appBarContent, style,
303301
videoRenderer, floatingVideoRenderer, videoContent, videoOverlayContent, controlsContent,
304-
PictureInPictureConfiguration(
305-
enableInPictureInPicture,
306-
true,
307-
),
302+
PictureInPictureConfiguration(enableInPictureInPicture),
308303
pictureInPictureContent, enableDiagnostics, closedCaptionUi,
309304
)
310305
}

stream-video-android-ui-core/src/main/kotlin/io/getstream/video/android/ui/common/AbstractCallActivity.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,9 @@ public abstract class AbstractCallActivity : ComponentActivity() {
147147

148148
enterPictureInPictureMode(
149149
PictureInPictureParams.Builder().setAspectRatio(aspect).apply {
150-
var defaultAutoEnterEnabled = true
150+
var defaultAutoEnterEnabled =
151+
Build.VERSION.SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM
152+
151153
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
152154
defaultAutoEnterEnabled =
153155
getPictureInPictureConfiguration().autoEnterEnabled

stream-video-android-ui-core/src/main/kotlin/io/getstream/video/android/ui/common/StreamCallActivity.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,9 @@ public abstract class StreamCallActivity : ComponentActivity(), ActivityCallOper
710710

711711
enterPictureInPictureMode(
712712
PictureInPictureParams.Builder().setAspectRatio(aspect).apply {
713-
var defaultAutoEnterEnabled = true
713+
var defaultAutoEnterEnabled =
714+
Build.VERSION.SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM
715+
714716
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
715717
var configuration = StreamCallActivityConfiguration()
716718
if (!::cachedCall.isInitialized && configurationMap.containsKey(cachedCall.id)) {

0 commit comments

Comments
 (0)