Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion compose/snippets/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
Expand All @@ -23,6 +24,7 @@

<application
android:allowBackup="true"
tools:ignore="DataExtractionRules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ object CompoundButton {
// [END android_compose_glance_buildUI13]

@Composable
fun example3() {
fun Example3() {
val colorAccentDay = Color.Blue
val colorAccentNight = Color.Blue
var isChecked by remember { mutableStateOf(false) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,21 +69,17 @@ fun PiPBuilderSetAutoEnterEnabled(
modifier: Modifier = Modifier
) {
val context = LocalContext.current
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// [START android_compose_pip_builder_auto_enter]
val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()
// [START android_compose_pip_builder_auto_enter]
val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(true)
}
context.findActivity().setPictureInPictureParams(builder.build())
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(true)
}
VideoPlayer(pipModifier)
// [END android_compose_pip_builder_auto_enter]
} else {
Log.i(PIP_TAG, "API does not support PiP")
context.findActivity().setPictureInPictureParams(builder.build())
}
VideoPlayer(pipModifier)
// [END android_compose_pip_builder_auto_enter]
}

// [START android_compose_pip_find_activity]
Expand Down Expand Up @@ -188,53 +184,44 @@ fun PiPBuilderSetAutoEnterEnabledUsingState(
modifier: Modifier = Modifier,
) {
val context = LocalContext.current
// [START android_compose_pip_post_12_should_enter_pip]
val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// [START android_compose_pip_post_12_should_enter_pip]
val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()

// Add autoEnterEnabled for versions S and up
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}
context.findActivity().setPictureInPictureParams(builder.build())
// Add autoEnterEnabled for versions S and up
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}

VideoPlayer(pipModifier)
// [END android_compose_pip_post_12_should_enter_pip]
} else {
Log.i(PIP_TAG, "API does not support PiP")
context.findActivity().setPictureInPictureParams(builder.build())
}

VideoPlayer(pipModifier)
// [END android_compose_pip_post_12_should_enter_pip]
}

@Composable
fun PiPBuilderSetSourceRect(
shouldEnterPipMode: Boolean,
modifier: Modifier = Modifier,
) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// [START android_compose_pip_set_source_rect]
val context = LocalContext.current

val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()
if (shouldEnterPipMode) {
val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect()
builder.setSourceRectHint(sourceRect)
}
// [START android_compose_pip_set_source_rect]
val context = LocalContext.current

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}
context.findActivity().setPictureInPictureParams(builder.build())
val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()
if (shouldEnterPipMode) {
val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect()
builder.setSourceRectHint(sourceRect)
}

VideoPlayer(pipModifier)
// [END android_compose_pip_set_source_rect]
} else {
Log.i(PIP_TAG, "API does not support PiP")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}
context.findActivity().setPictureInPictureParams(builder.build())
}

VideoPlayer(pipModifier)
// [END android_compose_pip_set_source_rect]
}

@Composable
Expand All @@ -243,31 +230,27 @@ fun PiPBuilderSetAspectRatio(
shouldEnterPipMode: Boolean,
modifier: Modifier = Modifier,
) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// [START android_compose_pip_set_aspect_ratio]
val context = LocalContext.current

val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()
if (shouldEnterPipMode && player != null && player.videoSize != VideoSize.UNKNOWN) {
val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect()
builder.setSourceRectHint(sourceRect)
builder.setAspectRatio(
Rational(player.videoSize.width, player.videoSize.height)
)
}
// [START android_compose_pip_set_aspect_ratio]
val context = LocalContext.current

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}
context.findActivity().setPictureInPictureParams(builder.build())
val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()
if (shouldEnterPipMode && player != null && player.videoSize != VideoSize.UNKNOWN) {
val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect()
builder.setSourceRectHint(sourceRect)
builder.setAspectRatio(
Rational(player.videoSize.width, player.videoSize.height)
)
}

VideoPlayer(pipModifier)
// [END android_compose_pip_set_aspect_ratio]
} else {
Log.i(PIP_TAG, "API does not support PiP")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}
context.findActivity().setPictureInPictureParams(builder.build())
}

VideoPlayer(pipModifier)
// [END android_compose_pip_set_aspect_ratio]
}

// [START android_compose_pip_broadcast_receiver]
Expand Down Expand Up @@ -307,7 +290,6 @@ fun PlayerBroadcastReceiver(player: Player?) {
}
// [END android_compose_pip_broadcast_receiver]

@RequiresApi(Build.VERSION_CODES.O)
fun listOfRemoteActions(): List<RemoteAction> {
return listOf()
}
Expand All @@ -318,34 +300,30 @@ fun PiPBuilderAddRemoteActions(
shouldEnterPipMode: Boolean,
modifier: Modifier = Modifier,
) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// [START android_compose_pip_add_remote_actions]
val context = LocalContext.current
// [START android_compose_pip_add_remote_actions]
val context = LocalContext.current

val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()
builder.setActions(
listOfRemoteActions()
)
val pipModifier = modifier.onGloballyPositioned { layoutCoordinates ->
val builder = PictureInPictureParams.Builder()
builder.setActions(
listOfRemoteActions()
)

if (shouldEnterPipMode && player != null && player.videoSize != VideoSize.UNKNOWN) {
val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect()
builder.setSourceRectHint(sourceRect)
builder.setAspectRatio(
Rational(player.videoSize.width, player.videoSize.height)
)
}
if (shouldEnterPipMode && player != null && player.videoSize != VideoSize.UNKNOWN) {
val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect()
builder.setSourceRectHint(sourceRect)
builder.setAspectRatio(
Rational(player.videoSize.width, player.videoSize.height)
)
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}
context.findActivity().setPictureInPictureParams(builder.build())
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setAutoEnterEnabled(shouldEnterPipMode)
}
VideoPlayer(modifier = pipModifier)
// [END android_compose_pip_add_remote_actions]
} else {
Log.i(PIP_TAG, "API does not support PiP")
context.findActivity().setPictureInPictureParams(builder.build())
}
VideoPlayer(modifier = pipModifier)
// [END android_compose_pip_add_remote_actions]
}

@Composable
Expand Down
Loading