From d71778c8b6730fcdff2b5904ab4462aa01eb0278 Mon Sep 17 00:00:00 2001 From: Chris Arriola Date: Wed, 24 Jan 2024 11:55:45 -0800 Subject: [PATCH 01/49] Add snippets for Indication and Ripple migration (#191) * Add ripple snippets. * Add new ripple APIs. * Add snippets for interactions. * Added more ripple snippets. * Update foundation and material to 1.7.0-alpha01 * Fix snippet tag. * Apply Spotless --------- Co-authored-by: arriolac --- compose/snippets/build.gradle.kts | 1 + .../designsystems/Material2Snippets.kt | 2 +- .../compose/snippets/layouts/PagerSnippets.kt | 2 +- .../snippets/touchinput/Interactions.kt | 661 ++++++++++++++++++ .../touchinput/focus/FocusSnippets.kt | 2 + .../userinteractions/UserInteractions.kt | 146 ++++ gradle/libs.versions.toml | 9 +- 7 files changed, 817 insertions(+), 6 deletions(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt diff --git a/compose/snippets/build.gradle.kts b/compose/snippets/build.gradle.kts index bb729778..31f953b8 100644 --- a/compose/snippets/build.gradle.kts +++ b/compose/snippets/build.gradle.kts @@ -82,6 +82,7 @@ dependencies { implementation(composeBom) androidTestImplementation(composeBom) + implementation(libs.androidx.compose.foundation) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.util) implementation(libs.androidx.compose.ui.graphics) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt index f70cd415..540af22e 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -@file:Suppress("unused") +@file:Suppress("unused", "DEPRECATION_ERROR") package com.example.compose.snippets.designsystems diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt index f65c96e6..bc73afb1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt @@ -426,7 +426,7 @@ private fun CustomSnapDistance() { HorizontalPager( state = pagerState, pageSize = PageSize.Fixed(200.dp), - beyondBoundsPageCount = 10, + outOfBoundsPageCount = 10, flingBehavior = fling ) { PagerSampleItem(page = it) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt new file mode 100644 index 00000000..0d670060 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt @@ -0,0 +1,661 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.compose.snippets.touchinput + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.spring +import androidx.compose.animation.core.tween +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.IndicationNodeFactory +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.focusable +import androidx.compose.foundation.hoverable +import androidx.compose.foundation.interaction.DragInteraction +import androidx.compose.foundation.interaction.Interaction +import androidx.compose.foundation.interaction.InteractionSource +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.PressInteraction +import androidx.compose.foundation.interaction.collectIsPressedAsState +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ShoppingCart +import androidx.compose.material.ripple +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonColors +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.ButtonElevation +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.scale +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.geometry.center +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Brush.Companion.linearGradient +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.drawOutline +import androidx.compose.ui.graphics.drawscope.ContentDrawScope +import androidx.compose.ui.graphics.drawscope.Stroke +import androidx.compose.ui.graphics.drawscope.scale +import androidx.compose.ui.node.DelegatableNode +import androidx.compose.ui.node.DrawModifierNode +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import kotlin.math.abs +import kotlin.math.sign +import kotlinx.coroutines.Job +import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.launch + +@Composable +private fun InteractionsSnippet1() { + // [START android_compose_interactions_interaction_state] + val interactionSource = remember { MutableInteractionSource() } + val isPressed by interactionSource.collectIsPressedAsState() + + Button( + onClick = { /* do something */ }, + interactionSource = interactionSource + ) { + Text(if (isPressed) "Pressed!" else "Not pressed") + } + // [END android_compose_interactions_interaction_state] +} + +// [START android_compose_interactions_interaction_source_input] +fun Modifier.focusBorder(interactionSource: InteractionSource): Modifier { + // [START_EXCLUDE] + return this + // [END_EXCLUDE] +} +// [END android_compose_interactions_interaction_source_input] + +// [START android_compose_interactions_mutable_interaction_source_input] +fun Modifier.hover(interactionSource: MutableInteractionSource, enabled: Boolean): Modifier { + // [START_EXCLUDE] + return this + // [END_EXCLUDE] +} +// [END android_compose_interactions_mutable_interaction_source_input] + +// [START android_compose_interactions_high_level_component] +@Composable +fun Button( + onClick: () -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + + // exposes MutableInteractionSource as a parameter + interactionSource: MutableInteractionSource? = null, + + elevation: ButtonElevation? = ButtonDefaults.elevatedButtonElevation(), + shape: Shape = MaterialTheme.shapes.small, + border: BorderStroke? = null, + colors: ButtonColors = ButtonDefaults.buttonColors(), + contentPadding: PaddingValues = ButtonDefaults.ContentPadding, + content: @Composable RowScope.() -> Unit +) { /* content() */ } +// [END android_compose_interactions_high_level_component] + +@Composable +fun HoverExample() { + // [START android_compose_interactions_hoverable] + // This InteractionSource will emit hover interactions + val interactionSource = remember { MutableInteractionSource() } + + Box( + Modifier + .size(100.dp) + .hoverable(interactionSource = interactionSource), + contentAlignment = Alignment.Center + ) { + Text("Hello!") + } + // [END android_compose_interactions_hoverable] +} + +@Composable +fun FocusableExample() { + // [START android_compose_interactions_focusable] + // This InteractionSource will emit hover and focus interactions + val interactionSource = remember { MutableInteractionSource() } + + Box( + Modifier + .size(100.dp) + .hoverable(interactionSource = interactionSource) + .focusable(interactionSource = interactionSource), + contentAlignment = Alignment.Center + ) { + Text("Hello!") + } + // [END android_compose_interactions_focusable] +} + +@Composable +fun ClickableExample() { + // [START android_compose_interactions_clickable] + // This InteractionSource will emit hover, focus, and press interactions + val interactionSource = remember { MutableInteractionSource() } + Box( + Modifier + .size(100.dp) + .clickable( + onClick = {}, + interactionSource = interactionSource, + + // Also show a ripple effect + indication = ripple() + ), + contentAlignment = Alignment.Center + ) { + Text("Hello!") + } + // [END android_compose_interactions_clickable] +} + +@Composable +private fun InteractionsSnippet2() { + // [START android_compose_interactions_flow_apis] + val interactionSource = remember { MutableInteractionSource() } + val interactions = remember { mutableStateListOf() } + + LaunchedEffect(interactionSource) { + interactionSource.interactions.collect { interaction -> + when (interaction) { + is PressInteraction.Press -> { + interactions.add(interaction) + } + is DragInteraction.Start -> { + interactions.add(interaction) + } + } + } + } + // [END android_compose_interactions_flow_apis] +} + +@Composable +private fun InteractionsSnippet3() { + // [START android_compose_interactions_add_remove] + val interactionSource = remember { MutableInteractionSource() } + val interactions = remember { mutableStateListOf() } + + LaunchedEffect(interactionSource) { + interactionSource.interactions.collect { interaction -> + when (interaction) { + is PressInteraction.Press -> { + interactions.add(interaction) + } + is PressInteraction.Release -> { + interactions.remove(interaction.press) + } + is PressInteraction.Cancel -> { + interactions.remove(interaction.press) + } + is DragInteraction.Start -> { + interactions.add(interaction) + } + is DragInteraction.Stop -> { + interactions.remove(interaction.start) + } + is DragInteraction.Cancel -> { + interactions.remove(interaction.start) + } + } + } + } + // [END android_compose_interactions_add_remove] + + // [START android_compose_interactions_is_pressed_or_dragged] + val isPressedOrDragged = interactions.isNotEmpty() + // [END android_compose_interactions_is_pressed_or_dragged] + + // [START android_compose_interactions_last] + val lastInteraction = when (interactions.lastOrNull()) { + is DragInteraction.Start -> "Dragged" + is PressInteraction.Press -> "Pressed" + else -> "No state" + } + // [END android_compose_interactions_last] +} + +@Composable +private fun InteractionsSnippet4() { + // [START android_compose_interactions_batched] + val interactionSource = remember { MutableInteractionSource() } + val isPressed by interactionSource.collectIsPressedAsState() + + Button(onClick = { /* do something */ }, interactionSource = interactionSource) { + Text(if (isPressed) "Pressed!" else "Not pressed") + } + // [END android_compose_interactions_batched] +} + +// [START android_compose_interactions_press_icon_button] +@Composable +fun PressIconButton( + onClick: () -> Unit, + icon: @Composable () -> Unit, + text: @Composable () -> Unit, + modifier: Modifier = Modifier, + interactionSource: MutableInteractionSource? = null +) { + val isPressed = interactionSource?.collectIsPressedAsState()?.value ?: false + + Button( + onClick = onClick, + modifier = modifier, + interactionSource = interactionSource + ) { + AnimatedVisibility(visible = isPressed) { + if (isPressed) { + Row { + icon() + Spacer(Modifier.size(ButtonDefaults.IconSpacing)) + } + } + } + text() + } +} +// [END android_compose_interactions_press_icon_button] + +@Composable +fun PressIconButtonUsage() { +// [START android_compose_interactions_press_icon_button_usage] + PressIconButton( + onClick = {}, + icon = { Icon(Icons.Filled.ShoppingCart, contentDescription = null) }, + text = { Text("Add to cart") } + ) +// [END android_compose_interactions_press_icon_button_usage] +} + +@Composable +fun InteractionsSnippet5() { +// [START android_compose_interactions_indication] + val interactionSource = remember { MutableInteractionSource() } + val isPressed by interactionSource.collectIsPressedAsState() + val scale by animateFloatAsState(targetValue = if (isPressed) 0.9f else 1f, label = "scale") + + Button( + modifier = Modifier.scale(scale), + onClick = { }, + interactionSource = interactionSource + ) { + Text(if (isPressed) "Pressed!" else "Not pressed") + } +// [END android_compose_interactions_indication] +} + +// [START android_compose_interactions_scale_node] +private class ScaleNode(private val interactionSource: InteractionSource) : + Modifier.Node(), DrawModifierNode { + + var currentPressPosition: Offset = Offset.Zero + val animatedScalePercent = Animatable(1f) + + private suspend fun animateToPressed(pressPosition: Offset) { + currentPressPosition = pressPosition + animatedScalePercent.animateTo(0.9f, spring()) + } + + private suspend fun animateToResting() { + animatedScalePercent.animateTo(1f, spring()) + } + + override fun onAttach() { + coroutineScope.launch { + interactionSource.interactions.collectLatest { interaction -> + when (interaction) { + is PressInteraction.Press -> animateToPressed(interaction.pressPosition) + is PressInteraction.Release -> animateToResting() + is PressInteraction.Cancel -> animateToResting() + } + } + } + } + + override fun ContentDrawScope.draw() { + scale( + scale = animatedScalePercent.value, + pivot = currentPressPosition + ) { + this@draw.drawContent() + } + } +} +// [END android_compose_interactions_scale_node] + +// [START android_compose_interactions_scale_node_factory] +object ScaleIndication : IndicationNodeFactory { + override fun create(interactionSource: InteractionSource): DelegatableNode { + return ScaleNode(interactionSource) + } + + override fun equals(other: Any?): Boolean = other === ScaleIndication + override fun hashCode() = 100 +} +// [END android_compose_interactions_scale_node_factory] + +@Composable +fun InteractionSnippets6() { +// [START android_compose_interactions_button_indication] + Box( + modifier = Modifier + .size(100.dp) + .clickable( + onClick = {}, + indication = ScaleIndication, + interactionSource = null + ) + .background(Color.Blue), + contentAlignment = Alignment.Center + ) { + Text("Hello!", color = Color.White) + } +// [END android_compose_interactions_button_indication] +} + +// [START android_compose_interactions_scale_button] +@Composable +fun ScaleButton( + onClick: () -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + interactionSource: MutableInteractionSource? = null, + shape: Shape = CircleShape, + content: @Composable RowScope.() -> Unit +) { + Row( + modifier = modifier + .defaultMinSize(minWidth = 76.dp, minHeight = 48.dp) + .clickable( + enabled = enabled, + indication = ScaleIndication, + interactionSource = interactionSource, + onClick = onClick + ) + .border(width = 2.dp, color = Color.Blue, shape = shape) + .padding(horizontal = 16.dp, vertical = 8.dp), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + content = content + ) +} +// [END android_compose_interactions_scale_button] + +@Composable +fun ScaleButtonExample() { +// [START android_compose_interactions_scale_button_example] + ScaleButton(onClick = {}) { + Icon(Icons.Filled.ShoppingCart, "") + Spacer(Modifier.padding(10.dp)) + Text(text = "Add to cart!") + } +// [END android_compose_interactions_scale_button_example] +} + +// [START android_compose_interactions_neon_node] +private class NeonNode( + private val shape: Shape, + private val borderWidth: Dp, + private val interactionSource: InteractionSource +) : Modifier.Node(), DrawModifierNode { + var currentPressPosition: Offset = Offset.Zero + val animatedProgress = Animatable(0f) + val animatedPressAlpha = Animatable(1f) + + var pressedAnimation: Job? = null + var restingAnimation: Job? = null + + private suspend fun animateToPressed(pressPosition: Offset) { + // Finish any existing animations, in case of a new press while we are still showing + // an animation for a previous one + restingAnimation?.cancel() + pressedAnimation?.cancel() + pressedAnimation = coroutineScope.launch { + currentPressPosition = pressPosition + animatedPressAlpha.snapTo(1f) + animatedProgress.snapTo(0f) + animatedProgress.animateTo(1f, tween(450)) + } + } + + private fun animateToResting() { + restingAnimation = coroutineScope.launch { + // Wait for the existing press animation to finish if it is still ongoing + pressedAnimation?.join() + animatedPressAlpha.animateTo(0f, tween(250)) + animatedProgress.snapTo(0f) + } + } + + override fun onAttach() { + coroutineScope.launch { + interactionSource.interactions.collect { interaction -> + when (interaction) { + is PressInteraction.Press -> animateToPressed(interaction.pressPosition) + is PressInteraction.Release -> animateToResting() + is PressInteraction.Cancel -> animateToResting() + } + } + } + } + + override fun ContentDrawScope.draw() { + val (startPosition, endPosition) = calculateGradientStartAndEndFromPressPosition( + currentPressPosition, size + ) + val brush = animateBrush( + startPosition = startPosition, + endPosition = endPosition, + progress = animatedProgress.value + ) + val alpha = animatedPressAlpha.value + + drawContent() + + val outline = shape.createOutline(size, layoutDirection, this) + // Draw overlay on top of content + drawOutline( + outline = outline, + brush = brush, + alpha = alpha * 0.1f + ) + // Draw border on top of overlay + drawOutline( + outline = outline, + brush = brush, + alpha = alpha, + style = Stroke(width = borderWidth.toPx()) + ) + } + + /** + * Calculates a gradient start / end where start is the point on the bounding rectangle of + * size [size] that intercepts with the line drawn from the center to [pressPosition], + * and end is the intercept on the opposite end of that line. + */ + private fun calculateGradientStartAndEndFromPressPosition( + pressPosition: Offset, + size: Size + ): Pair { + // Convert to offset from the center + val offset = pressPosition - size.center + // y = mx + c, c is 0, so just test for x and y to see where the intercept is + val gradient = offset.y / offset.x + // We are starting from the center, so halve the width and height - convert the sign + // to match the offset + val width = (size.width / 2f) * sign(offset.x) + val height = (size.height / 2f) * sign(offset.y) + val x = height / gradient + val y = gradient * width + + // Figure out which intercept lies within bounds + val intercept = if (abs(y) <= abs(height)) { + Offset(width, y) + } else { + Offset(x, height) + } + + // Convert back to offsets from 0,0 + val start = intercept + size.center + val end = Offset(size.width - start.x, size.height - start.y) + return start to end + } + + private fun animateBrush( + startPosition: Offset, + endPosition: Offset, + progress: Float + ): Brush { + if (progress == 0f) return TransparentBrush + + // This is *expensive* - we are doing a lot of allocations on each animation frame. To + // recreate a similar effect in a performant way, it would be better to create one large + // gradient and translate it on each frame, instead of creating a whole new gradient + // and shader. The current approach will be janky! + val colorStops = buildList { + when { + progress < 1 / 6f -> { + val adjustedProgress = progress * 6f + add(0f to Blue) + add(adjustedProgress to Color.Transparent) + } + progress < 2 / 6f -> { + val adjustedProgress = (progress - 1 / 6f) * 6f + add(0f to Purple) + add(adjustedProgress * MaxBlueStop to Blue) + add(adjustedProgress to Blue) + add(1f to Color.Transparent) + } + progress < 3 / 6f -> { + val adjustedProgress = (progress - 2 / 6f) * 6f + add(0f to Pink) + add(adjustedProgress * MaxPurpleStop to Purple) + add(MaxBlueStop to Blue) + add(1f to Blue) + } + progress < 4 / 6f -> { + val adjustedProgress = (progress - 3 / 6f) * 6f + add(0f to Orange) + add(adjustedProgress * MaxPinkStop to Pink) + add(MaxPurpleStop to Purple) + add(MaxBlueStop to Blue) + add(1f to Blue) + } + progress < 5 / 6f -> { + val adjustedProgress = (progress - 4 / 6f) * 6f + add(0f to Yellow) + add(adjustedProgress * MaxOrangeStop to Orange) + add(MaxPinkStop to Pink) + add(MaxPurpleStop to Purple) + add(MaxBlueStop to Blue) + add(1f to Blue) + } + else -> { + val adjustedProgress = (progress - 5 / 6f) * 6f + add(0f to Yellow) + add(adjustedProgress * MaxYellowStop to Yellow) + add(MaxOrangeStop to Orange) + add(MaxPinkStop to Pink) + add(MaxPurpleStop to Purple) + add(MaxBlueStop to Blue) + add(1f to Blue) + } + } + } + + return linearGradient( + colorStops = colorStops.toTypedArray(), + start = startPosition, + end = endPosition + ) + } + + companion object { + val TransparentBrush = SolidColor(Color.Transparent) + val Blue = Color(0xFF30C0D8) + val Purple = Color(0xFF7848A8) + val Pink = Color(0xFFF03078) + val Orange = Color(0xFFF07800) + val Yellow = Color(0xFFF0D800) + const val MaxYellowStop = 0.16f + const val MaxOrangeStop = 0.33f + const val MaxPinkStop = 0.5f + const val MaxPurpleStop = 0.67f + const val MaxBlueStop = 0.83f + } +} +// [END android_compose_interactions_neon_node] + +// [START android_compose_interactions_neon_indication] +class NeonIndication(private val shape: Shape, private val borderWidth: Dp) : IndicationNodeFactory { + + override fun create(interactionSource: InteractionSource): DelegatableNode { + return NeonNode( + shape, + // Double the border size for a stronger press effect + borderWidth * 2, + interactionSource + ) + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as NeonIndication + + if (shape != other.shape) return false + if (borderWidth != other.borderWidth) return false + + return true + } + + override fun hashCode(): Int { + var result = shape.hashCode() + result = 31 * result + borderWidth.hashCode() + return result + } +} +// [END android_compose_interactions_neon_indication] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt index 4a5c7c4c..2391d48b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt @@ -14,6 +14,8 @@ * limitations under the License. */ +@file:Suppress("DEPRECATION_ERROR") + package com.example.compose.snippets.touchinput.focus import androidx.compose.foundation.ExperimentalFoundationApi diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt index 285dfef6..e34dfaa6 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt @@ -14,21 +14,30 @@ * limitations under the License. */ +@file:Suppress("DEPRECATION_ERROR") + package com.example.compose.snippets.touchinput.userinteractions import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.spring import androidx.compose.foundation.Indication import androidx.compose.foundation.IndicationInstance +import androidx.compose.foundation.IndicationNodeFactory import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.InteractionSource import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.PressInteraction import androidx.compose.foundation.layout.Box +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material.LocalRippleConfiguration +import androidx.compose.material.LocalUseFallbackRippleImplementation +import androidx.compose.material.RippleConfiguration +import androidx.compose.material.ripple import androidx.compose.material.ripple.LocalRippleTheme import androidx.compose.material.ripple.RippleAlpha import androidx.compose.material.ripple.RippleTheme import androidx.compose.material.ripple.rememberRipple +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect @@ -38,8 +47,11 @@ import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.drawscope.ContentDrawScope import androidx.compose.ui.graphics.drawscope.scale +import androidx.compose.ui.node.DelegatableNode +import androidx.compose.ui.node.DrawModifierNode import com.example.compose.snippets.architecture.Button import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.launch // [START android_compose_userinteractions_scale_indication] // [START android_compose_userinteractions_scale_indication_object] @@ -105,6 +117,21 @@ private fun RememberRippleExample() { // [END android_compose_userinteractions_material_remember_ripple] } +// [START android_compose_userinteractions_material_ripple] +@Composable +private fun RippleExample() { + Box( + Modifier.clickable( + onClick = {}, + interactionSource = remember { MutableInteractionSource() }, + indication = ripple() + ) + ) { + // ... + } +} +// [END android_compose_userinteractions_material_ripple] + // [START android_compose_userinteractions_disabled_ripple_theme] private object DisabledRippleTheme : RippleTheme { @@ -154,3 +181,122 @@ private fun MyComposable2() { } // [END_EXCLUDE] // [END android_compose_userinteractions_disabled_ripple_theme_color_alpha] + +// Snippets for new ripple API + +// [START android_compose_userinteractions_scale_indication_node_factory] +object ScaleIndicationNodeFactory : IndicationNodeFactory { + override fun create(interactionSource: InteractionSource): DelegatableNode { + return ScaleIndicationNode(interactionSource) + } + + override fun hashCode(): Int = -1 + + override fun equals(other: Any?) = other === this +} +// [END android_compose_userinteractions_scale_indication_node_factory] + +// [START android_compose_userinteractions_scale_indication_node] +private class ScaleIndicationNode( + private val interactionSource: InteractionSource +) : Modifier.Node(), DrawModifierNode { + var currentPressPosition: Offset = Offset.Zero + val animatedScalePercent = Animatable(1f) + + private suspend fun animateToPressed(pressPosition: Offset) { + currentPressPosition = pressPosition + animatedScalePercent.animateTo(0.9f, spring()) + } + + private suspend fun animateToResting() { + animatedScalePercent.animateTo(1f, spring()) + } + + override fun onAttach() { + coroutineScope.launch { + interactionSource.interactions.collectLatest { interaction -> + when (interaction) { + is PressInteraction.Press -> animateToPressed(interaction.pressPosition) + is PressInteraction.Release -> animateToResting() + is PressInteraction.Cancel -> animateToResting() + } + } + } + } + + override fun ContentDrawScope.draw() { + scale( + scale = animatedScalePercent.value, + pivot = currentPressPosition + ) { + this@draw.drawContent() + } + } +} +// [END android_compose_userinteractions_scale_indication_node] + +@Composable +fun App() { +} + +@OptIn(ExperimentalMaterialApi::class) +@Composable +private fun LocalUseFallbackRippleImplementationExample() { +// [START android_compose_userinteractions_localusefallbackrippleimplementation] + CompositionLocalProvider(LocalUseFallbackRippleImplementation provides true) { + MaterialTheme { + App() + } + } +// [END android_compose_userinteractions_localusefallbackrippleimplementation] +} + +// [START android_compose_userinteractions_localusefallbackrippleimplementation_app_theme] +@OptIn(ExperimentalMaterialApi::class) +@Composable +fun MyAppTheme(content: @Composable () -> Unit) { + CompositionLocalProvider(LocalUseFallbackRippleImplementation provides true) { + MaterialTheme(content = content) + } +} +// [END android_compose_userinteractions_localusefallbackrippleimplementation_app_theme] + +// [START android_compose_userinteractions_disabled_ripple_configuration] +@OptIn(ExperimentalMaterialApi::class) +private val DisabledRippleConfiguration = + RippleConfiguration(isEnabled = false) + +// [START_EXCLUDE] +@OptIn(ExperimentalMaterialApi::class) +@Composable +private fun MyComposableDisabledRippleConfig() { +// [END_EXCLUDE] + CompositionLocalProvider(LocalRippleConfiguration provides DisabledRippleConfiguration) { + Button { + // ... + } + } +// [START_EXCLUDE silent] +} +// [END_EXCLUDE] +// [END android_compose_userinteractions_disabled_ripple_configuration] + +// [START android_compose_userinteractions_my_ripple_configuration] +@OptIn(ExperimentalMaterialApi::class) +private val MyRippleConfiguration = + RippleConfiguration(color = Color.Red, rippleAlpha = MyRippleAlpha) + +// [START_EXCLUDE] +@OptIn(ExperimentalMaterialApi::class) +@Composable +private fun MyComposableMyRippleConfig() { +// [END_EXCLUDE] + CompositionLocalProvider(LocalRippleConfiguration provides MyRippleConfiguration) { + Button { + // ... + } + } +// [START_EXCLUDE silent] +} +// [END_EXCLUDE] +// [END android_compose_userinteractions_my_ripple_configuration] diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f79bca6b..f01b12df 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,6 +22,7 @@ coil = "2.4.0" # @keep compileSdk = "34" compose-compiler = "1.5.4" +compose-latest = "1.7.0-alpha01" coroutines = "1.7.3" google-maps = "18.2.0" gradle-versions = "0.49.0" @@ -51,11 +52,11 @@ androidx-activity-compose = { module = "androidx.activity:activity-compose", ver androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" } androidx-compose-animation-graphics = { module = "androidx.compose.animation:animation-graphics" } androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "androidx-compose-bom" } -androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" } -androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" } -androidx-compose-material = { module = "androidx.compose.material:material" } +androidx-compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose-latest" } +androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout", version.ref = "compose-latest" } +androidx-compose-material = { module = "androidx.compose.material:material", version.ref = "compose-latest" } androidx-compose-material-iconsExtended = { module = "androidx.compose.material:material-icons-extended" } -androidx-compose-material-ripple = { module = "androidx.compose.material:material-ripple" } +androidx-compose-material-ripple = { module = "androidx.compose.material:material-ripple", version.ref = "compose-latest" } androidx-compose-material3 = { module = "androidx.compose.material3:material3" } androidx-compose-material3-adaptive = { module = "androidx.compose.material3:material3-adaptive", version.ref = "material3-adaptive" } androidx-compose-material3-adaptive-navigation-suite = { module = "androidx.compose.material3:material3-adaptive-navigation-suite", version.ref = "material3-adaptive-navigation-suite" } From 0bad0251bc3299cacaa1f9a822361c5acb349b0d Mon Sep 17 00:00:00 2001 From: Chris Arriola Date: Wed, 24 Jan 2024 13:06:38 -0800 Subject: [PATCH 02/49] Convert NeonIndication to data class. (#193) --- .../snippets/touchinput/Interactions.kt | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt index 0d670060..14b012da 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/Interactions.kt @@ -629,7 +629,7 @@ private class NeonNode( // [END android_compose_interactions_neon_node] // [START android_compose_interactions_neon_indication] -class NeonIndication(private val shape: Shape, private val borderWidth: Dp) : IndicationNodeFactory { +data class NeonIndication(private val shape: Shape, private val borderWidth: Dp) : IndicationNodeFactory { override fun create(interactionSource: InteractionSource): DelegatableNode { return NeonNode( @@ -639,23 +639,5 @@ class NeonIndication(private val shape: Shape, private val borderWidth: Dp) : In interactionSource ) } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - - other as NeonIndication - - if (shape != other.shape) return false - if (borderWidth != other.borderWidth) return false - - return true - } - - override fun hashCode(): Int { - var result = shape.hashCode() - result = 31 * result + borderWidth.hashCode() - return result - } } // [END android_compose_interactions_neon_indication] From 5cb7dd2dbe30f0680e4f9f8b34839c8eae120252 Mon Sep 17 00:00:00 2001 From: MagicalMeghan <46006059+MagicalMeghan@users.noreply.github.com> Date: Tue, 30 Jan 2024 17:35:01 -0500 Subject: [PATCH 03/49] Adding pip snippets to latest branch (#196) * Adding pip snippets to latest branch * Apply Spotless * Adding pip snippets to latest --------- Co-authored-by: MagicalMeghan --- .../PictureInPictureSnippets.kt | 95 +++++++++++++++++++ gradle/libs.versions.toml | 2 +- 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt new file mode 100644 index 00000000..79e8805f --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt @@ -0,0 +1,95 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.compose.snippets.pictureinpicture + +import android.app.PictureInPictureParams +import android.content.Context +import android.content.ContextWrapper +import android.os.Build +import android.util.Log +import androidx.activity.ComponentActivity +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.ui.platform.LocalContext + +@Composable +fun PipListenerPreAPI12(shouldEnterPipMode: Boolean) { + // [START android_compose_pip_pre12_listener] + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && + Build.VERSION.SDK_INT < Build.VERSION_CODES.S + ) { + val context = LocalContext.current + DisposableEffect(context) { + val onUserLeaveBehavior: () -> Unit = { + context.findActivity() + .enterPictureInPictureMode(PictureInPictureParams.Builder().build()) + } + context.findActivity().addOnUserLeaveHintListener( + onUserLeaveBehavior + ) + onDispose { + context.findActivity().removeOnUserLeaveHintListener( + onUserLeaveBehavior + ) + } + } + } else { + Log.i("PiP info", "API does not support PiP") + } + // [END android_compose_pip_pre12_listener] +} + +@Composable +fun EnterPiPPre12(shouldEnterPipMode: Boolean) { + // [START android_compose_pip_pre12_should_enter_pip] + val currentShouldEnterPipMode by rememberUpdatedState(newValue = shouldEnterPipMode) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && + Build.VERSION.SDK_INT < Build.VERSION_CODES.S + ) { + val context = LocalContext.current + DisposableEffect(context) { + val onUserLeaveBehavior: () -> Unit = { + if (currentShouldEnterPipMode) { + context.findActivity() + .enterPictureInPictureMode(PictureInPictureParams.Builder().build()) + } + } + context.findActivity().addOnUserLeaveHintListener( + onUserLeaveBehavior + ) + onDispose { + context.findActivity().removeOnUserLeaveHintListener( + onUserLeaveBehavior + ) + } + } + } else { + Log.i("PiP info", "API does not support PiP") + } + // [END android_compose_pip_pre12_should_enter_pip] +} + +internal fun Context.findActivity(): ComponentActivity { + var context = this + while (context is ContextWrapper) { + if (context is ComponentActivity) return context + context = context.baseContext + } + throw IllegalStateException("Picture in picture should be called in the context of an Activity") +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1b32f885..34a11948 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] accompanist = "0.32.0" androidGradlePlugin = "8.2.2" -androidx-activity-compose = "1.9.0-alpha02" +androidx-activity-compose = "1.9.0-alpha01" androidx-appcompat = "1.6.1" androidx-compose-bom = "2024.01.00" androidx-constraintlayout = "2.1.4" From 940a4007a83d5a02d8693e1b5d18bad3a8faa3b2 Mon Sep 17 00:00:00 2001 From: Chris Arriola Date: Fri, 9 Feb 2024 10:27:11 -0800 Subject: [PATCH 04/49] Delete pictureInPicture. (#213) --- .../PictureInPictureSnippets.kt | 346 ------------------ 1 file changed, 346 deletions(-) delete mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/pictureInPicture/PictureInPictureSnippets.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/pictureInPicture/PictureInPictureSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/pictureInPicture/PictureInPictureSnippets.kt deleted file mode 100644 index cfd0555f..00000000 --- a/compose/snippets/src/main/java/com/example/compose/snippets/pictureInPicture/PictureInPictureSnippets.kt +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Copyright 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.compose.snippets.pictureInPicture - -import android.app.PictureInPictureParams -import android.app.RemoteAction -import android.content.BroadcastReceiver -import android.content.Context -import android.content.ContextWrapper -import android.content.Intent -import android.content.IntentFilter -import android.os.Build -import android.util.Log -import android.util.Rational -import androidx.activity.ComponentActivity -import androidx.annotation.RequiresApi -import androidx.compose.foundation.layout.Column -import androidx.compose.material3.Button -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.toAndroidRectF -import androidx.compose.ui.layout.boundsInWindow -import androidx.compose.ui.layout.onGloballyPositioned -import androidx.compose.ui.platform.LocalContext -import androidx.core.app.PictureInPictureModeChangedInfo -import androidx.core.content.ContextCompat -import androidx.core.graphics.toRect -import androidx.core.util.Consumer -import androidx.media3.common.Player -import androidx.media3.exoplayer.ExoPlayer - -var shouldEnterPipMode by mutableStateOf(false) -private const val PIP_TAG = "PiP info" - -// [START android_compose_pip_broadcast_receiver_constants] -// Constant for broadcast receiver -const val ACTION_BROADCAST_CONTROL = "broadcast_control" - -// Intent extras for broadcast controls from Picture-in-Picture mode. -const val EXTRA_CONTROL_TYPE = "control_type" -const val EXTRA_CONTROL_PLAY = 1 -const val EXTRA_CONTROL_PAUSE = 2 -// [END android_compose_pip_broadcast_receiver_constants] - -@Composable -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() - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - builder.setAutoEnterEnabled(true) - } - context.findActivity().setPictureInPictureParams(builder.build()) - } - VideoPlayer(pipModifier) - // [END android_compose_pip_builder_auto_enter] - } else { - Log.i(PIP_TAG, "API does not support PiP") - } -} - -// [START android_compose_pip_find_activity] -internal fun Context.findActivity(): ComponentActivity { - var context = this - while (context is ContextWrapper) { - if (context is ComponentActivity) return context - context = context.baseContext - } - throw IllegalStateException("Picture in picture should be called in the context of an Activity") -} -// [END android_compose_pip_find_activity] - -@Composable -fun EnterPiPThroughButton() { - // [START android_compose_pip_button_click] - val context = LocalContext.current - Button(onClick = { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context.findActivity().enterPictureInPictureMode( - PictureInPictureParams.Builder().build() - ) - } else { - Log.i(PIP_TAG, "API does not support PiP") - } - }) { - Text(text = "Enter PiP mode!") - } - // [END android_compose_pip_button_click] -} - -// [START android_compose_pip_is_in_pip_mode] -@Composable -fun rememberIsInPipMode(): Boolean { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val activity = LocalContext.current.findActivity() - var pipMode by remember { mutableStateOf(activity.isInPictureInPictureMode) } - DisposableEffect(activity) { - val observer = Consumer { info -> - pipMode = info.isInPictureInPictureMode - } - activity.addOnPictureInPictureModeChangedListener( - observer - ) - onDispose { activity.removeOnPictureInPictureModeChangedListener(observer) } - } - return pipMode - } else { - return false - } -} -// [END android_compose_pip_is_in_pip_mode] - -@Composable -fun VideoPlayer() { -} -@Composable -fun VideoPlayer(modifier: Modifier) { -} - -@Composable -fun ToggleUIBasedOnPiP( - modifier: Modifier = Modifier, -) { - // [START android_compose_pip_ui_toggle] - val inPipMode = rememberIsInPipMode() - - Column(modifier = modifier) { - // This text will only show up when the app is in PiP mode - if (!inPipMode) { - Text( - text = "Picture in Picture", - ) - } - VideoPlayer() - } - // [END android_compose_pip_ui_toggle] -} - -fun initializePlayer(context: Context) { - val player = ExoPlayer.Builder(context.applicationContext) - .build().apply {} - - // [START android_compose_pip_toggle_pip_on_if_video_is_playing] - player.addListener(object : Player.Listener { - override fun onIsPlayingChanged(isPlaying: Boolean) { - shouldEnterPipMode = isPlaying - } - }) - // [END android_compose_pip_toggle_pip_on_if_video_is_playing] -} - -// [START android_compose_pip_release_player] -fun releasePlayer() { - shouldEnterPipMode = false -} -// [END android_compose_pip_release_player] - -@Composable -fun PiPBuilderSetAutoEnterEnabledUsingState( - shouldEnterPipMode: Boolean, - modifier: Modifier = Modifier, -) { - val context = LocalContext.current - - 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()) - } - - VideoPlayer(pipModifier) - // [END android_compose_pip_post_12_should_enter_pip] - } else { - Log.i(PIP_TAG, "API does not support 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) - } - - 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] - } else { - Log.i(PIP_TAG, "API does not support PiP") - } -} - -@Composable -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) { - val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect() - builder.setSourceRectHint(sourceRect) - builder.setAspectRatio( - Rational(sourceRect.width(), sourceRect.height()) - ) - } - - 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] - } else { - Log.i(PIP_TAG, "API does not support PiP") - } -} - -// [START android_compose_pip_broadcast_receiver] -@RequiresApi(Build.VERSION_CODES.O) -@Composable -fun PlayerBroadcastReceiver(player: Player?) { - val isInPipMode = rememberIsInPipMode() - if (!isInPipMode || player == null) { - // Broadcast receiver is only used if app is in PiP mode and player is non null - return - } - val context = LocalContext.current - - DisposableEffect(player) { - val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() { - override fun onReceive(context: Context?, intent: Intent?) { - if ((intent == null) || (intent.action != ACTION_BROADCAST_CONTROL)) { - return - } - - when (intent.getIntExtra(EXTRA_CONTROL_TYPE, 0)) { - EXTRA_CONTROL_PAUSE -> player.pause() - EXTRA_CONTROL_PLAY -> player.play() - } - } - } - ContextCompat.registerReceiver( - context, - broadcastReceiver, - IntentFilter(ACTION_BROADCAST_CONTROL), - ContextCompat.RECEIVER_NOT_EXPORTED - ) - onDispose { - context.unregisterReceiver(broadcastReceiver) - } - } -} -// [END android_compose_pip_broadcast_receiver] - -@RequiresApi(Build.VERSION_CODES.O) -fun listOfRemoteActions(): List { - return listOf() -} - -@Composable -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 - - val pipModifier = modifier.onGloballyPositioned { layoutCoordinates -> - val builder = PictureInPictureParams.Builder() - builder.setActions( - listOfRemoteActions() - ) - - if (shouldEnterPipMode) { - val sourceRect = layoutCoordinates.boundsInWindow().toAndroidRectF().toRect() - builder.setSourceRectHint(sourceRect) - builder.setAspectRatio( - Rational(sourceRect.width(), sourceRect.height()) - ) - } - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - builder.setAutoEnterEnabled(shouldEnterPipMode) - } - context.findActivity().setPictureInPictureParams(builder.build()) - } - VideoPlayer(modifier = pipModifier) - // [END android_compose_pip_add_remote_actions] - } else { - Log.i(PIP_TAG, "API does not support PiP") - } -} From 41acfd79bae1ce5c68e5b3e0ed6c90017bc4e858 Mon Sep 17 00:00:00 2001 From: MagicalMeghan <46006059+MagicalMeghan@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:42:01 -0500 Subject: [PATCH 05/49] Update activity compose level and align log tag with main branch (#215) --- .../snippets/pictureinpicture/PictureInPictureSnippets.kt | 5 +++-- gradle/libs.versions.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt index 79e8805f..8830493f 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/pictureinpicture/PictureInPictureSnippets.kt @@ -28,6 +28,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.platform.LocalContext +private const val PIP_TAG = "PiP info" @Composable fun PipListenerPreAPI12(shouldEnterPipMode: Boolean) { // [START android_compose_pip_pre12_listener] @@ -50,7 +51,7 @@ fun PipListenerPreAPI12(shouldEnterPipMode: Boolean) { } } } else { - Log.i("PiP info", "API does not support PiP") + Log.i(PIP_TAG, "API does not support PiP") } // [END android_compose_pip_pre12_listener] } @@ -80,7 +81,7 @@ fun EnterPiPPre12(shouldEnterPipMode: Boolean) { } } } else { - Log.i("PiP info", "API does not support PiP") + Log.i(PIP_TAG, "API does not support PiP") } // [END android_compose_pip_pre12_should_enter_pip] } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 511cf835..0462bdf7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] accompanist = "0.32.0" androidGradlePlugin = "8.2.2" -androidx-activity-compose = "1.9.0-alpha01" +androidx-activity-compose = "1.9.0-alpha03" androidx-appcompat = "1.6.1" androidx-compose-bom = "2024.01.00" androidx-constraintlayout = "2.1.4" From 8242f9edb067c6a76cb3db20f7c0e481f4a3b214 Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Mon, 11 Mar 2024 14:22:19 +0000 Subject: [PATCH 06/49] Migrate recomposeHighlighter to Modifier.Node (#197) (#238) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Migrate recomposeHighlighter to Modifier.Node * Apply Spotless * Simplify recompose highlighter * Apply Spotless --------- Co-authored-by: Tomáš Mlynarič Co-authored-by: mlykotom From bf832068dcded0fdb533434a0847bac69b44b8a7 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 12 Mar 2024 09:18:44 +0000 Subject: [PATCH 07/49] Adding samples for ContextualFlowRow (#234) * Add snippets for ContextualFlowRow * Apply Spotless * Update flow snippets * Apply Spotless --------- Co-authored-by: riggaroo --- .../snippets/layouts/FlowLayoutSnippets.kt | 133 +++++++++++++++++- gradle/libs.versions.toml | 2 +- 2 files changed, 128 insertions(+), 7 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt index 941ae99d..203f1283 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt @@ -21,25 +21,40 @@ import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.ContextualFlowRow +import androidx.compose.foundation.layout.ContextualFlowRowOverflow +import androidx.compose.foundation.layout.ContextualFlowRowOverflowScope import androidx.compose.foundation.layout.ExperimentalLayoutApi +import androidx.compose.foundation.layout.FlowColumn import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.safeDrawingPadding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll import androidx.compose.material.Chip import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import com.example.compose.snippets.util.MaterialColors @Preview @@ -262,10 +277,10 @@ private fun FlowItems() { @OptIn(ExperimentalMaterialApi::class) @Composable -fun ChipItem(text: String) { +fun ChipItem(text: String, onClick: () -> Unit = {}) { Chip( modifier = Modifier.padding(end = 4.dp), - onClick = {}, + onClick = onClick, leadingIcon = {}, border = BorderStroke(1.dp, Color(0xFF3B3A3C)) ) { @@ -426,9 +441,115 @@ fun FlowLayout_FractionalSizing() { ) { val itemModifier = Modifier .clip(RoundedCornerShape(8.dp)) - Box(modifier = itemModifier.height(200.dp).width(60.dp).background(Color.Red)) - Box(modifier = itemModifier.height(200.dp).fillMaxWidth(0.7f).background(Color.Blue)) - Box(modifier = itemModifier.height(200.dp).weight(1f).background(Color.Magenta)) + Box( + modifier = itemModifier + .height(200.dp) + .width(60.dp) + .background(Color.Red) + ) + Box( + modifier = itemModifier + .height(200.dp) + .fillMaxWidth(0.7f) + .background(Color.Blue) + ) + Box( + modifier = itemModifier + .height(200.dp) + .weight(1f) + .background(Color.Magenta) + ) } // [END android_compose_flow_layout_fractional_sizing] } + +@OptIn(ExperimentalLayoutApi::class) +@Preview +@Composable +fun ContextualFlowLayoutExample() { + // [START android_compose_layouts_contextual_flow] + val totalCount = 40 + var maxLines by remember { + mutableStateOf(2) + } + + val moreOrCollapseIndicator = @Composable { scope: ContextualFlowRowOverflowScope -> + val remainingItems = totalCount - scope.shownItemCount + ChipItem(if (remainingItems == 0) "Less" else "+$remainingItems", onClick = { + if (remainingItems == 0) { + maxLines = 2 + } else { + maxLines += 5 + } + }) + } + ContextualFlowRow( + modifier = Modifier + .safeDrawingPadding() + .fillMaxWidth(1f) + .padding(16.dp) + .wrapContentHeight(align = Alignment.Top) + .verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(4.dp), + horizontalArrangement = Arrangement.spacedBy(8.dp), + maxLines = maxLines, + overflow = ContextualFlowRowOverflow.expandOrCollapseIndicator( + minRowsToShowCollapse = 4, + expandIndicator = moreOrCollapseIndicator, + collapseIndicator = moreOrCollapseIndicator + ), + itemCount = totalCount + ) { index -> + ChipItem("Item $index") + } + // [END android_compose_layouts_contextual_flow] +} + +@OptIn(ExperimentalLayoutApi::class) +@Preview +@Composable +fun FillMaxColumnWidth() { + // [START android_compose_flow_layouts_fill_max_column_width] + FlowColumn( + Modifier + .padding(20.dp) + .fillMaxHeight() + .fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + maxItemsInEachColumn = 5, + ) { + repeat(listDesserts.size) { + Box( + Modifier + .fillMaxColumnWidth() + .border(1.dp, Color.DarkGray, RoundedCornerShape(8.dp)) + .padding(8.dp) + ) { + + Text( + text = listDesserts[it], + fontSize = 18.sp, + modifier = Modifier.padding(3.dp) + ) + } + } + } + // [END android_compose_flow_layouts_fill_max_column_width] +} +private val listDesserts = listOf( + "Apple", + "Banana", + "Cupcake", + "Donut", + "Eclair", + "Froyo", + "Gingerbread", + "Honeycomb", + "Ice Cream Sandwich", + "Jellybean", + "KitKat", + "Lollipop", + "Marshmallow", + "Nougat", +) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0462bdf7..49a7b25e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,7 +22,7 @@ coil = "2.5.0" # @keep compileSdk = "34" compose-compiler = "1.5.4" -compose-latest = "1.7.0-alpha01" +compose-latest = "1.7.0-alpha03" coroutines = "1.7.3" google-maps = "18.2.0" gradle-versions = "0.51.0" From 2e672f92e12b391400603ef3ee4ecd9c30903e90 Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Tue, 9 Apr 2024 00:40:13 +0100 Subject: [PATCH 08/49] Update libs.versions.toml (#247) (#248) Update Compose BOM to 2024.04.00 Co-authored-by: MagicalMeghan <46006059+MagicalMeghan@users.noreply.github.com> From 21a691c0dc423e125dff446ba809939472715844 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 23 Apr 2024 13:22:59 +0100 Subject: [PATCH 09/49] Update Bitmap to image snippet to use new Graphics Layers (#254) * Update libs.versions.toml (#251) * Replace Graphics bitmap snippets with new Graphics Layer snippets. * Replace Graphics bitmap snippets with new Graphics Layer snippets. * Apply Spotless --------- Co-authored-by: Simona <35065668+simona-anomis@users.noreply.github.com> Co-authored-by: riggaroo --- .../compose/snippets/SnippetsActivity.kt | 4 +- .../graphics/AdvancedGraphicsSnippets.kt | 91 +++++++++---------- .../compose/snippets/layouts/PagerSnippets.kt | 2 +- gradle/libs.versions.toml | 11 ++- 4 files changed, 52 insertions(+), 56 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt index 31037647..56330061 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt @@ -39,7 +39,7 @@ import com.example.compose.snippets.components.ScaffoldExample import com.example.compose.snippets.components.SliderExamples import com.example.compose.snippets.components.SwitchExamples import com.example.compose.snippets.graphics.ApplyPolygonAsClipImage -import com.example.compose.snippets.graphics.BitmapFromComposableSnippet +import com.example.compose.snippets.graphics.BitmapFromComposableFullSnippet import com.example.compose.snippets.graphics.BrushExamplesScreen import com.example.compose.snippets.images.ImageExamplesScreen import com.example.compose.snippets.landing.LandingScreen @@ -70,7 +70,7 @@ class SnippetsActivity : ComponentActivity() { Destination.BrushExamples -> BrushExamplesScreen() Destination.ImageExamples -> ImageExamplesScreen() Destination.AnimationQuickGuideExamples -> AnimationExamplesScreen() - Destination.ScreenshotExample -> BitmapFromComposableSnippet() + Destination.ScreenshotExample -> BitmapFromComposableFullSnippet() Destination.ComponentsExamples -> ComponentsScreen { navController.navigate( it.route diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt index 900f38da..bc16c96a 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/AdvancedGraphicsSnippets.kt @@ -21,7 +21,6 @@ import android.content.Context import android.content.Intent import android.content.Intent.createChooser import android.graphics.Bitmap -import android.graphics.Picture import android.media.MediaScannerConnection import android.net.Uri import android.os.Build @@ -29,7 +28,9 @@ import android.os.Environment import android.provider.MediaStore import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize @@ -44,18 +45,17 @@ import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.SnackbarResult import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithCache +import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.drawscope.draw -import androidx.compose.ui.graphics.drawscope.drawIntoCanvas -import androidx.compose.ui.graphics.nativeCanvas +import androidx.compose.ui.graphics.asAndroidBitmap +import androidx.compose.ui.graphics.layer.drawLayer +import androidx.compose.ui.graphics.rememberGraphicsLayer import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource @@ -87,14 +87,44 @@ import kotlinx.coroutines.suspendCancellableCoroutine * limitations under the License. */ +@Preview +@Composable +private fun CreateBitmapFromGraphicsLayer() { + // [START android_compose_graphics_layer_bitmap_basics] + val coroutineScope = rememberCoroutineScope() + val graphicsLayer = rememberGraphicsLayer() + Box( + modifier = Modifier + .drawWithContent { + // call record to capture the content in the graphics layer + graphicsLayer.record { + // draw the contents of the composable into the graphics layer + this@drawWithContent.drawContent() + } + // draw the graphics layer on the visible canvas + drawLayer(graphicsLayer) + } + .clickable { + coroutineScope.launch { + val bitmap = graphicsLayer.toImageBitmap() + // do something with the newly acquired bitmap + } + } + .background(Color.White) + ) { + Text("Hello Android", fontSize = 26.sp) + } + // [END android_compose_graphics_layer_bitmap_basics] +} + @OptIn(ExperimentalPermissionsApi::class) @Preview @Composable -fun BitmapFromComposableSnippet() { +fun BitmapFromComposableFullSnippet() { val context = LocalContext.current val coroutineScope = rememberCoroutineScope() val snackbarHostState = remember { SnackbarHostState() } - val picture = remember { Picture() } + val graphicsLayer = rememberGraphicsLayer() val writeStorageAccessState = rememberMultiplePermissionsState( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { @@ -104,14 +134,15 @@ fun BitmapFromComposableSnippet() { listOf(Manifest.permission.WRITE_EXTERNAL_STORAGE) } ) + // This logic should live in your ViewModel - trigger a side effect to invoke URI sharing. // checks permissions granted, and then saves the bitmap from a Picture that is already capturing content // and shares it with the default share sheet. fun shareBitmapFromComposable() { if (writeStorageAccessState.allPermissionsGranted) { coroutineScope.launch { - val bitmap = createBitmapFromPicture(picture) - val uri = bitmap.saveToDisk(context) + val bitmap = graphicsLayer.toImageBitmap() + val uri = bitmap.asAndroidBitmap().saveToDisk(context) shareBitmap(context, uri) } } else if (writeStorageAccessState.shouldShowRationale) { @@ -140,39 +171,22 @@ fun BitmapFromComposableSnippet() { } } ) { padding -> - // [START android_compose_draw_into_bitmap] Column( modifier = Modifier .padding(padding) .fillMaxSize() .drawWithCache { - // Example that shows how to redirect rendering to an Android Picture and then - // draw the picture into the original destination - val width = this.size.width.toInt() - val height = this.size.height.toInt() - onDrawWithContent { - val pictureCanvas = - androidx.compose.ui.graphics.Canvas( - picture.beginRecording( - width, - height - ) - ) - // requires at least 1.6.0-alpha01+ - draw(this, this.layoutDirection, pictureCanvas, this.size) { + graphicsLayer.record { this@onDrawWithContent.drawContent() } - picture.endRecording() - - drawIntoCanvas { canvas -> canvas.nativeCanvas.drawPicture(picture) } + drawLayer(graphicsLayer) } } ) { ScreenContentToCapture() } - // [END android_compose_draw_into_bitmap] } } @@ -207,25 +221,6 @@ private fun ScreenContentToCapture() { } } -private fun createBitmapFromPicture(picture: Picture): Bitmap { - // [START android_compose_draw_into_bitmap_convert_picture] - val bitmap = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - Bitmap.createBitmap(picture) - } else { - val bitmap = Bitmap.createBitmap( - picture.width, - picture.height, - Bitmap.Config.ARGB_8888 - ) - val canvas = android.graphics.Canvas(bitmap) - canvas.drawColor(android.graphics.Color.WHITE) - canvas.drawPicture(picture) - bitmap - } - // [END android_compose_draw_into_bitmap_convert_picture] - return bitmap -} - private suspend fun Bitmap.saveToDisk(context: Context): Uri { val file = File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt index bc73afb1..e2bf4c43 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt @@ -426,7 +426,7 @@ private fun CustomSnapDistance() { HorizontalPager( state = pagerState, pageSize = PageSize.Fixed(200.dp), - outOfBoundsPageCount = 10, + beyondViewportPageCount = 10, flingBehavior = fling ) { PagerSampleItem(page = it) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 49a7b25e..0a47f703 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,8 @@ accompanist = "0.32.0" androidGradlePlugin = "8.2.2" androidx-activity-compose = "1.9.0-alpha03" androidx-appcompat = "1.6.1" -androidx-compose-bom = "2024.01.00" +androidx-compose-bom = "2024.04.01" +androidx-compose-ui-test = "1.7.0-alpha03" androidx-constraintlayout = "2.1.4" androidx-constraintlayout-compose = "1.0.1" androidx-coordinator-layout = "1.2.0" @@ -13,16 +14,16 @@ androidx-fragment-ktx = "1.6.2" androidx-glance-appwidget = "1.0.0" androidx-lifecycle-compose = "2.7.0" androidx-lifecycle-runtime-compose = "2.7.0" -androidx-navigation = "2.7.6" +androidx-navigation = "2.7.7" androidx-paging = "3.2.1" androidx-test = "1.5.0" androidx-test-espresso = "3.5.1" -androidxHiltNavigationCompose = "1.1.0" +androidxHiltNavigationCompose = "1.2.0" coil = "2.5.0" # @keep compileSdk = "34" compose-compiler = "1.5.4" -compose-latest = "1.7.0-alpha03" +compose-latest = "1.7.0-alpha07" coroutines = "1.7.3" google-maps = "18.2.0" gradle-versions = "0.51.0" @@ -66,7 +67,7 @@ androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } androidx-compose-ui = { module = "androidx.compose.ui:ui" } androidx-compose-ui-googlefonts = { module = "androidx.compose.ui:ui-text-google-fonts" } -androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.0-alpha04" +androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.0-alpha05" androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" } androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test" } androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } From b365d6d70bc3b3d5b8e8791a77e40a85f430ecd7 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 29 Apr 2024 16:29:42 +0100 Subject: [PATCH 10/49] add shared element snippets --- .../animations/SharedElementSnippets.kt | 1459 +++++++++++++++++ .../compose/snippets/ui/theme/Color.kt | 6 + .../src/main/res/drawable/cupcake.jpg | Bin 0 -> 87777 bytes .../snippets/src/main/res/drawable/donut.jpeg | Bin 0 -> 65266 bytes .../src/main/res/drawable/eclair.jpeg | Bin 0 -> 99829 bytes .../snippets/src/main/res/drawable/froyo.jpeg | Bin 0 -> 75308 bytes .../src/main/res/drawable/gingerbread.jpg | Bin 0 -> 148964 bytes .../src/main/res/drawable/honeycomb.jpg | Bin 0 -> 77136 bytes 8 files changed, 1465 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt create mode 100644 compose/snippets/src/main/res/drawable/cupcake.jpg create mode 100644 compose/snippets/src/main/res/drawable/donut.jpeg create mode 100644 compose/snippets/src/main/res/drawable/eclair.jpeg create mode 100644 compose/snippets/src/main/res/drawable/froyo.jpeg create mode 100644 compose/snippets/src/main/res/drawable/gingerbread.jpg create mode 100644 compose/snippets/src/main/res/drawable/honeycomb.jpg diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt new file mode 100644 index 00000000..e79c3e7b --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt @@ -0,0 +1,1459 @@ +@file:OptIn(ExperimentalSharedTransitionApi::class) +@file:Suppress("unused") + +package com.example.compose.snippets.animations + +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import androidx.annotation.DrawableRes +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.BoundsTransform +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.ExitTransition +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.keyframes +import androidx.compose.animation.core.spring +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredHeightIn +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Create +import androidx.compose.material.icons.outlined.Favorite +import androidx.compose.material.icons.outlined.Share +import androidx.compose.material3.Icon +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.draw.clip +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavType +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import coil.compose.AsyncImage +import coil.request.ImageRequest +import com.example.compose.snippets.R +import com.example.compose.snippets.ui.theme.LavenderLight +import com.example.compose.snippets.ui.theme.RoseLight + +private class SharedElementBasicUsage1 { + @Preview + // [START android_compose_animations_shared_element_start] + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent(onShowDetails = { + showDetails = true + }) + } else { + DetailsContent(onBack = { + showDetails = false + }) + } + } + } + + @Composable + private fun MainContent(onShowDetails: () -> Unit) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 21.sp) + } + } + + @Composable + private fun DetailsContent(modifier: Modifier = Modifier, onBack: () -> Unit) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 28.sp) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + // [END android_compose_animations_shared_element_start] +} + +private class SharedElementBasicUsage2 { + @Preview + @Composable + private fun SharedElementApp() { + // [START android_compose_animations_shared_element_step1] + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + // [END android_compose_animations_shared_element_step1] + } + + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 21.sp) + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 28.sp) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } +} + +private class SharedElementBasicUsage3 { + + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + // [START android_compose_animations_shared_element_step2] + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + with(sharedTransitionScope) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + with(sharedTransitionScope) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + } + // [END android_compose_animations_shared_element_step2] +} + +private class SharedElementBasicUsage4 { + + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + // [START android_compose_animations_shared_element_shared_bounds] + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Row( + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [END_EXCLUDE] + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + } + // [END android_compose_animations_shared_element_shared_bounds] +} + +private class SharedElementBoundsTransform { + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Row( + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = { _, _ -> + spring( + stiffness = Spring.StiffnessMediumLow, + dampingRatio = Spring.DampingRatioMediumBouncy + ) + } + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [END_EXCLUDE] + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + + ) { + // [START android_compose_shared_element_image_bounds_transform] + val imageBoundsTransform = BoundsTransform { initial, target -> + keyframes { + durationMillis = 500 + initial at 0 + Rect( + target.left + 100, + target.top, + target.right + 100, + target.bottom + ) at 300 + } + } + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = imageBoundsTransform + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + // [END android_compose_shared_element_image_bounds_transform] + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + } + } + } +} + +@Preview +@Composable +private fun SharedElement_Clipping() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + Row( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = this@AnimatedContent + ) + .background(Color.Green.copy(alpha = 0.5f)) + .padding(8.dp) + .clickable { + showDetails = true + } + ) { + // [START android_compose_animations_shared_element_clipping] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = this@AnimatedContent + ) + .clip(RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + // [END android_compose_animations_shared_element_clipping] + Text( + "Lorem ipsum dolor sit amet.", fontSize = 21.sp, + modifier = Modifier.sharedElement( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = this@AnimatedContent, + + ) + ) + } + } else { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = this@AnimatedContent + ) + .background(Color.Green.copy(alpha = 0.7f)) + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .clickable { + showDetails = false + } + + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = this@AnimatedContent + ) + .clip(RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + Text( + "Lorem ipsum dolor sit amet.", fontSize = 21.sp, + modifier = Modifier.sharedElement( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = this@AnimatedContent + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + } + } + } + } +} + +@Preview +@Composable +private fun SharedElement_SkipLookaheadSize() { + // Nested shared bounds sample. + val selectionColor = Color(0xff3367ba) + var expanded by remember { mutableStateOf(true) } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { + expanded = !expanded + } + .background(Color(0x88000000)) + ) { + AnimatedVisibility( + visible = expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomCenter) + .padding(20.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility + ) + .requiredHeightIn(max = 60.dp), + shape = RoundedCornerShape(50), + ) { + Row( + Modifier + .padding(10.dp) + // By using Modifier.skipToLookaheadSize(), we are telling the layout + // system to layout the children of this node as if the animations had + // all finished. This avoid re-laying out the Row with animated width, + // which is _sometimes_ desirable. Try removing this modifier and + // observe the effect. + .skipToLookaheadSize() + ) { + Icon( + Icons.Outlined.Share, + contentDescription = "Share", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Favorite, + contentDescription = "Favorite", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility + ) + .background(selectionColor, RoundedCornerShape(50)) + .padding( + top = 10.dp, + bottom = 10.dp, + start = 20.dp, + end = 20.dp + ) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } + AnimatedVisibility( + visible = !expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomEnd) + .padding(30.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility, + enter = EnterTransition.None, + ) + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility, + enter = EnterTransition.None, + exit = ExitTransition.None + ), + shape = RoundedCornerShape(30.dp), + color = selectionColor + ) { + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .padding(30.dp) + .size(40.dp) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } +} + +@Preview +@Composable +private fun SharedElement_ManualVisibleControl() { + // [START android_compose_shared_element_manual_control] + var selectFirst by remember { mutableStateOf(true) } + val key = remember { Any() } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .padding(10.dp) + .clickable { + selectFirst = !selectFirst + } + ) { + Box( + Modifier + .sharedElementWithCallerManagedVisibility( + rememberSharedContentState(key = key), + !selectFirst, + boundsTransform = boundsTransform + ) + .background(Color.Red) + .size(100.dp) + ) { + Text(if (!selectFirst) "false" else "true", color = Color.White) + } + Box( + Modifier + .offset(180.dp, 180.dp) + .sharedElementWithCallerManagedVisibility( + rememberSharedContentState( + key = key, + ), + selectFirst, + boundsTransform = boundsTransform + ) + .alpha(0.5f) + .background(Color.Blue) + .size(180.dp) + ) { + Text(if (selectFirst) "false" else "true", color = Color.White) + } + } + // [END android_compose_shared_element_manual_control] +} + +private val boundsTransform = BoundsTransform { initial, target -> + // Move vertically first then horizontally + keyframes { + durationMillis = 500 + initial at 0 + Rect(initial.left, target.top, initial.left + target.width, target.bottom) at 300 + } +} + +val listSnacks = listOf( + Snack("Cupcake", "", R.drawable.cupcake), + Snack("Donut", "", R.drawable.donut), + Snack("Eclair", "", R.drawable.eclair), + Snack("Froyo", "", R.drawable.froyo), + Snack("Gingerbread", "", R.drawable.gingerbread), + Snack("Honeycomb", "", R.drawable.honeycomb), +) + +@Preview +@Composable +fun SharedElement_PredictiveBack() { + // [START android_compose_shared_element_predictive_back] + SharedTransitionLayout { + val boundsTransform = { _: Rect, _: Rect -> tween(1400) } + + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "home" + ) { + + composable("home") { + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + itemsIndexed(listSnacks) { index, item -> + Row( + Modifier.clickable { + navController.navigate("details/$index") + } + ) { + Spacer(modifier = Modifier.width(8.dp)) + Image( + painterResource(id = item.image), + contentDescription = item.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image-$index"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .size(100.dp) + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + item.name, fontSize = 18.sp, + modifier = Modifier + .align(Alignment.CenterVertically) + .sharedElement( + rememberSharedContentState(key = "text-$index"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + ) + } + } + } + } + composable( + "details/{item}", + arguments = listOf(navArgument("item") { type = NavType.IntType }) + ) { backStackEntry -> + val id = backStackEntry.arguments?.getInt("item") + val snack = listSnacks[id!!] + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigate("home") + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image-$id"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .aspectRatio(1f) + .fillMaxWidth() + ) + Text( + snack.name, fontSize = 18.sp, + modifier = + Modifier + .sharedElement( + rememberSharedContentState(key = "text-$id"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .fillMaxWidth() + ) + } + } + } + } +// [END android_compose_shared_element_predictive_back] +} + +data class Snack( + val name: String, + val description: String, + @DrawableRes val image: Int +) + +@Preview +@Composable +private fun SkipToLookahead() { +// Nested shared bounds sample. + val selectionColor = Color(0xff3367ba) + var expanded by remember { mutableStateOf(true) } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .clickable { + expanded = !expanded + } + .background(Color(0x88000000)) + ) { + AnimatedVisibility( + visible = expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomCenter) + .padding(20.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility + ) + .requiredHeightIn(max = 60.dp), + shape = RoundedCornerShape(50), + ) { + Row( + Modifier + .padding(10.dp) + // By using Modifier.skipToLookaheadSize(), we are telling the layout + // system to layout the children of this node as if the animations had + // all finished. This avoid re-laying out the Row with animated width, + // which is _sometimes_ desirable. Try removing this modifier and + // observe the effect. + .skipToLookaheadSize() + ) { + Icon( + Icons.Outlined.Share, + contentDescription = "Share", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Favorite, + contentDescription = "Favorite", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility + ) + .background(selectionColor, RoundedCornerShape(50)) + .padding( + top = 10.dp, + bottom = 10.dp, + start = 20.dp, + end = 20.dp + ) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } + AnimatedVisibility( + visible = !expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomEnd) + .padding(30.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility, + enter = EnterTransition.None, + ) + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility, + enter = EnterTransition.None, + exit = ExitTransition.None + ), + shape = RoundedCornerShape(30.dp), + color = selectionColor + ) { + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .padding(30.dp) + .size(40.dp) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } +} + +@Preview +@Composable +private fun SharedAsyncImage() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_async_image_tip] + AsyncImage( + model = ImageRequest.Builder(LocalContext.current) + .data("your-image-url") + .crossfade(true) + .build(), + placeholder = null, + contentDescription = null, + modifier = Modifier + .size(120.dp) + .sharedBounds( + rememberSharedContentState( + key = "image-key" + ), + animatedVisibilityScope = this, + exit = ExitTransition.None + ) + ) + // [END android_compose_shared_element_async_image_tip] + } + } +} + +@Composable +fun debugPlaceholder(@DrawableRes debugPreview: Int) = + if (LocalInspectionMode.current) { + painterResource(id = debugPreview) + } else { + null + } + +@Preview +@Composable +private fun SharedElementTypicalUseText() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_text_tip] + Text( + text = "This is an example of how to share text", + modifier = Modifier + .wrapContentWidth() + .sharedBounds( + rememberSharedContentState( + key = "shared Text" + ), + animatedVisibilityScope = this, + enter = fadeIn() + scaleInSharedContentToBounds(), + exit = fadeOut() + scaleOutSharedContentToBounds() + ) + ) + // [END android_compose_shared_element_text_tip] + } + } +} + +@Preview +@Composable +private fun UnmatchedBoundsExample() { + // [START android_compose_animation_shared_element_bounds_unmatched] + var selectFirst by remember { mutableStateOf(true) } + val key = remember { Any() } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .padding(10.dp) + .clickable { + selectFirst = !selectFirst + } + ) { + AnimatedContent(targetState = selectFirst, label = "AnimatedContent") { targetState -> + if (targetState) { + Box( + Modifier + .padding(12.dp) + .sharedBounds( + rememberSharedContentState(key = key), + animatedVisibilityScope = this@AnimatedContent + ) + .border(2.dp, Color.Red) + ) { + Text( + "Hello", + fontSize = 20.sp + ) + } + } else { + Box( + Modifier + .offset(180.dp, 180.dp) + .sharedBounds( + rememberSharedContentState( + key = key, + ), + animatedVisibilityScope = this@AnimatedContent + ) + .border(2.dp, Color.Red) + .padding(12.dp) + + ) { + Text( + "Hello", + fontSize = 36.sp + ) + } + } + } + } + // [END android_compose_animation_shared_element_bounds_unmatched] +} + +@Preview +@Composable +fun PlaceholderSizeAnimated_Demo() { + // This demo shows how other items in a layout can respond to shared elements changing in size. + // [START android_compose_shared_element_placeholder_size] + SharedTransitionLayout { + val boundsTransform = { _: Rect, _: Rect -> tween(1000) } + + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "home" + ) { + composable("home", enterTransition = { fadeIn() }, exitTransition = { fadeOut() }) { + Column { + Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { + (listSnacks).forEachIndexed { index, snack -> + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "image-${snack.name}"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform, + placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize + ) + .clickable { + navController.navigate("details/$index") + } + .height(180.dp) + .clip(RoundedCornerShape(8.dp)) + .aspectRatio(9f / 16f) + + ) + } + } + Text("Nearby snacks") + Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { + (listSnacks).forEach { snack -> + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .height(200.dp) + .aspectRatio(16f / 9f) + .padding(8.dp) + ) + } + } + } + } + composable( + "details/{id}", + arguments = listOf(navArgument("id") { type = NavType.IntType }), + enterTransition = { fadeIn() }, exitTransition = { fadeOut() } + ) { backStackEntry -> + val id = backStackEntry.arguments?.getInt("id") + val snack = listSnacks[id!!] + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigateUp() + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "image-${snack.name}"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform, + placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize + ) + .clip(RoundedCornerShape(8.dp)) + .aspectRatio(9f / 16f) + .fillMaxWidth() + ) + } + } + } + } +// [END android_compose_shared_element_placeholder_size] +} \ No newline at end of file diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt b/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt index 21909a8c..6c6006ea 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt @@ -25,3 +25,9 @@ val Pink80 = Color(0xFFEFB8C8) val Purple40 = Color(0xFF6650a4) val PurpleGrey40 = Color(0xFF625b71) val Pink40 = Color(0xFF7D5260) + +val LavenderDark = Color(0xff23009e) +val LavenderLight = Color(0xFFDDBEFC) + +val RoseDark = Color(0xffaf0060) +val RoseLight = Color(0xFFFFAFC9) diff --git a/compose/snippets/src/main/res/drawable/cupcake.jpg b/compose/snippets/src/main/res/drawable/cupcake.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0696e8a645a5ce232dc591717684b51f54893fa3 GIT binary patch literal 87777 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 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/donut.jpeg b/compose/snippets/src/main/res/drawable/donut.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..57d0199f29468f276c0ffddd077756db6b64b2d5 GIT binary patch literal 65266 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 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/eclair.jpeg b/compose/snippets/src/main/res/drawable/eclair.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6ec767a0f2dda826aeb5547df75aacbdfd8d6739 GIT binary patch literal 99829 zcmb@qWl){Lvp#rmcMI;p-QC^Y-Q_?699$CI-QDHj?vUW_uE9BI@SxfJ?%l0>KkWb0 zZqGY4Pd(k$)9=jGRQLQ{`}+%ksVJ);3xI-x0?7YsfWQ0DBnnbeX6l-1vI@#F{}ccK zG^(=|&>b2R006ppxM|8sQs^5PQXp&rpa6sb7ytu6z{1M?i-fwmGT{Fxk1PMI|H&fD ze|-HP&HmpN$ksOQR{vCQ|GKHw7dH<80Lu6uM)C6a@*iyf593-o{TKHC4|e+(;6Fa` zKiKZSap`~A{5S6SFB@%5sed+8|FF2-|H7943;*Bq{xboai^e>VZ40B9H(7+4rsI5=4N{|F)?0s2*CGm zGht!=bCCZZfrEjCM}UGx1Rx z(CE6jqga?XxQ%>Rk7eHJrjoR2Psfpg{5EhtDD4ML8pT)itxP67S)9XG4q|1)X-RA} zE1!rxRM&>*;qi4uh1zO67MVhKwvVP>0@li5T|((=vIt z?wkG>z@kKQkKw{#)Nww3_GMH+Q#;j~ovWy|16ieVBg-b!r1W|G{jMa>eX?%T?DcLY z&Q2V?C<~$I+rpn1&ueWF9)l)FRs9$j{s_^pw4XxcauJAGpTSM{@;=kl>IAWEMTPH4l-*%TPa`b6%_*J8q>DPyL=68 zBJgrS8=potgaWi<_lHCm_;{EtM;%q{&~eOM*_9@|RYdZvN4m@HdSl1)a8;!@yHq8l z4z09@sG9-Wz5WXW9?2XW>WiT?NGYvueP>r&K!@}hsolbYB!Q2x!H5_zn?u}Bg@$55TO_}<1H`Z2kL;| zWvWHpjgqoIi4hq;ynCUKw2h;?>x}9tdd~nCx@(X8lN=yUdxl?ysn+9kIOf`^_R$)v0N79={7 zwBiZdq&t0hSK@>c$y2u8sL+uG|C3n^J2j12r^t^wqpI^u{`v}O+oCt`GOsmL3BJ9G zE4jP^Hsy!{?F#D)M;?qVHWa?ZCne6B6?W%C6K7p5lw1)v=#VJKDl^uU(0d(jXXkARXZ;=Tp?k&zb6LTVl^@967+UfaP)GVC`)Z%sd5Ja=reb0=$|dWkh5kb z>7=4yP{Ry43YS+Q?#-MEMi6UUAUzPFJ9p zo#h3qC@B!p)08RgRh{kX!BNTI?QX1G>@l1y05P(rsdc)6s`uhOmTorH<4fpKAt}bURX-u z!%Bal>7E~5Y2@Y>=c?gWQThvDA5ZXKme-jOO$wq;oUmb$)Id+p5c5 z>O=`}XQW%npKw}erj3p7XKh3^7Bvo6>N6<3#<{0@V5_E>>bpU0@lTD_$2Sk9KtlDQ zh$Ep&f-SZ=rsrr6;X9 zP<`VfvXpk1Ecq9pKR#r7Dt`*mFOxUuRa`Z0`}N%j=)5AyJyY&sPiYrM#zQr~StAlV zJKGF{in)OAE9e9*Pesnnky&NxC~wk4S>B3kofHR^f$@{RAGOYp1Ze{qTXF(%+`J$|O7M`^0$ z%M+mKE{;YH1p<$|=%N{;(gBvWF$tbTCM^UUeWECuh$Ownnk{u&OON(IK zGyUe=j6}Tl41)w_^TYdy3!qw)Xu;Tw#gS5w9UeJKp`~Ei(HE`l^*C`*j<$(DO?h>c zYU@%i+qjm|mWmlx!cQTbbKX0NXwMl)vwpj2G)K^c%Y^mN(fpLOz9g!rQaZx{5zgQE z5qVPl3m=fG68 z+)n<^Wt#*oKT>i6mN|@=HvTFE+k1VwEk6+N#?o8Phfi%op)H#d`41+Kp+;tOu_6z2 zQJ4m4VQ8{>bffHmj9rt$sU==ir25_hkth3Qq^&gU^xt;VAXA$WduUsuGDCV5 zncG9^APpkLH()x!k}2N!6&*aGJt^iaQQ5ChLw;#^W#k6M;U?xy5nraJ^oDOKu*$(N zCgJwU$*rUzDZZUT^(U}=w~>j-NMX9a;cKf|`4l!nL4F<7MDm(U`1dhG6SSJt89z#= zuHDeaSq$`@PZqdkKE5@s@5oE+I}SEQzQ_rXh$yFU;K9hxAtYDeL3hJ2pi9d9WMpk% zMPrWqiqA%#3V*ON&W7A1_Y23Idl_BRq;I2m^zfD}j-60AGp@#TFI^Z)Te0yhBd4@cJ>&lBrmzi$6KWzguCDX;Vn?lUZvYCPnh88! zRURVh)+6rFzzm%FoJC5J$C&tY{3K5Xnphcms*B`4L^`|W%aR|i8=7#V#&tTyL-F3m z3Kbc36f~pUgj}%+`;-+@Tb~%un%60-s$=whMY;|b_hyAtHqF%(;I7+`8 zj{QcJX&L8Xx1oK7A@KL|gi2?Ez#ycA%Ede0)N-s#NN1*aZk0_Q8CRZe&V0p7$oIw1 z1eM0Mf*?c|J5Wv$WQ^&aE2LTmR8{tE)@sP!ac<>_B}dp=U`PAUk^J)Ek(~-kwpUo+ zQ#4t=lMEFi=TKulC}&wut{aU;u?6@%_1Li*g2KWQbkeBmtrO6Du+>z({LZTDHX$vd zo5q;sTEBtW0t-+VD!iz8UO9TUG1Z-j&&rtjYg5EkacjUfPcD`BMEAH`Nkjf0aSeSi zH056bmD*!aiJz9i6nX@rx*7$_JX<#h%mhYQlZudwcPmP^vPsTSvK)g#lUQFUFy;_* zF8>eN1$;naX=tlH=M}*$((!ZqirwMxT>& zGCZP>m$91Z>B@soOL-01mcU}e$o{0880YZc*RkGpJl?039)~eaLr)opV=m3g63F+n z`WBJX4K&0!9;IOrE_r!J?7ayq`BXw9s+iO%5-Q1YREOLm@Q=~f`>;00$Fup{9g7*= zI1aD7E;vQ+y4(-1rgpusjmo_d>>C}oT?gD%HKy82J_Kv+n@FD(YZq{*X0WP<`7VmN z3f^sOrxx+xH4wrx@+U;iZ|-D$L;B_r%3jF4@*H_EEP6sNOY={R-6OdAw1{lRe^AIF zlW)R1NtreZe}XV6U~Wg{y}oo4$n|;WsdOaT>2ua5Z9wiHUam{)TW?izy1vK_sxCky zwmC?Zkl=I$^qJ>3&31c$FMYA^TD)+$^)~Y_Qtn*?o)HXA7%pZ9kOCHLEGI7DSpgoH zEUQtaNokp%EyUR?yXY^&SGKmCo*}ytLp_MAK|d+vkRer8G{Xv3N9~zoL7l8Rz-t$3 zO$LDH3sWLBtcQlkRPmJ#--{TG1ZwiDSNt+`>6$OIKr^0PWV;T;m$@)?udL{tZPUb; z{e_R4&h^EP<$7ui2Uy!O)-pP{NvItQ(jtAyeuOJ(R{SYw+MlSgSfwIgS!StYKARj+ zOS+IHr}SLd1{5e<+gWfwex>`D;l_F1WM392wEY<(_9Np0&aZK9Qg;&Xb*T$a%3(8H z_^Px%6)BlKz=?SM5LI!8{+XqF4%5sC-EAZQFWV}t&fu4}uUNjv4B5lI^`UmA%c6~l z*X?SyDSY&4CG;X#RxX0AdvzbKp%Pus>La%u6QaRPYP0MLVOj>4+SJK0Q4;gAMnn#= z&gw2X1UE{4cFQEqa>QbtUab7!y<+t*diFLxDiD*l-wbYIIOuCc?lUpUB7GV+(fpcd zaNQkj|N9ye;@I_w{Y41oSl=?A)<6UNg*e zh!Yrb-C+37&h@%XX+~7R%~3vSR1B9!N9hWvp^YbiY>F^I4v{2O$rdS&*Kl&Y0((?o zd2Cs8xy|5nj}*(k{TxJh{X27Om6F$CNSnQ~;HOSEffemGAm(HfOyH(*6hRzl?!ZHC z?Cxt$@G+w!b9g_Dm|~1YDNZc)`Z3ezOO`Y+?V8Dym*F9F-c?H+746bRYhKj4F<0s`gBl4^%;l0?n#5?D zY{s**c}%k_9B*_-A$e35A`j`Jna~=EOEjKD!7;{!F4eR|m(Wq>)lb{0*>SiWHu{bz zX$Yx$tE?>`IT@mr=k@qv>^0M4>{~g-Xli;UM>#~i<-(s$D!=MWo?tvuxrnz|;B!_6 zv4d%@B$~xtBl#OQneXh?@8U{$HGo-I+cq>#MHt-VC(o31Gi{;1H1qmg7#?uVlEF{_ zs3muvQZf#1==vu*%PqU_q`S$VVbhFcV?N7GV>oozN8hZA;6C^oZv}2#r!r#4x8d-E ze=E<&GXA);t@^RUuh5Gh6+dB>YJ7NaQDcN<=t*Z}_M`LARs{djotQL6=>*F?eO`DM zB-qiSgIh?qmk$V!Tl5UPkQ^c35rd$Wqd>*lQ@+Kw8_oIHt|bOTtJlujqj93dEdLBn zNvwypaSznB9U5SS6QDVGP8bufC@D z&&5*OVo9o#rE+T9;|De&L2bB>P5cC>3sYKDUm`pW8>N%=@CCL~9j#w76M+!UxTQq2 z09Y_9GSjhko{k3ibrNs8&^hDB_Xn;{sO)i0ahVuLZN?E!^Y%I&1mml$OqaF>-uc;5 zDRd1~W(f@tFY+~8Q(?J{+9e>yna7zmR1_*jr4j4cS1M-VoJcU(Y2aLmx{5Z$UEaTq zoH@Qcgyq>f)Kbx2iOfo#+40PYJQCGNZJr6?SUE@5tP-0%o2xhLBeZYd2qBQQST{cP zym(xeTk$M6o_=qEig)-PPlzcjGfgoabDqkP*uE^h4l{zm?q_BbD+4p`dJVbAq8uo+ zO0S4+S*Lbk5CIH~2FGCv+X?T4pSSA}0`CX#8Zt_E#~rC6_h?+X*L=mYD1KBYIS;g2 z6GkaibLNolcaB7hI9?Y|b#L&5)fZRwr>p`Etg9t(Zvzb!vD%QsYi4KVJHBIQcUr*R z-x*MrPl6GFC{z$E3m(n(h-x-XZtvzN)hGcy`>`WsiMaOl3^mt%kH?+w!Y;YdHua^T z&@Y4m*h}DiC4KD)YpSMuu(&m{62pD0E)WO&EG`(Bad7X;no+d3Mb`4tIvJ=YPgV-A z6S#>nPO|_!B_6isPy)~pw?S-J3r~C<-J6_#o_JHlb;54194dze8Oe{!;?ue( z!SEbI3%Yv>FNQ`rkKdy{&31}z2u=?A+%T*cxFW-Y`MNN+z0qN*cz&mQeN* zlb3bQ6Sue#bxANz2#;)nYk{46JTk31iymlv^6rA4^ki_WE*#-MW>8glG;wq{TXdzB z#)dw@;D3AI&<}9}wVOAr#7+8aq`PN)YB_CBjX7%lf(``N?Jp{rnDQ+fS*I;Y2eg07 zXRUK3s;yJj(Qe~V^YiYqult@fgB_+!w}&^}%BSUCXbG5_RI9QMv z6L|b^|E0qkRLIZ1RSa;yu4v#6&`J`FWPhcJz%9k(J4{WO6g1l!TI(1F=Uj7`xy6vEde%@oz zaR_U}s?U2-@FcEs_AW-r>Tj9Saf`PwQgc8yyxikzPY+{hU%_DA*20_NPVu-Yjj=)7 zGtzzt0ctMEsISFBkxrL}OW2ezco!E^B0h?v11o$;(Ob)X?!8bN%}2iRAKpiTMI6_6 zv+3Nr>~p-k3u9#C3EP2=^rRZe(2)vMG)>+ZoP*!=&;Z9qe4A2F!2GVOuBTTGaRJCz zD;~_p+2GY8f}aYXn{BAC9hwvkKkIgXrlku1ktB$Eh0V|^Ng&?{BuW3oNE$%kDZhmN zBJbzWY?C-DD=QHN%j|5lZ#O~MR8S}aytO(PtG-qD-PouW)UQ5H$hs4xzr0Mg3$j(S z6EKhQLIQ-?0nZz`Z{u_$zpuxO1mzVED_N4OJ)a>r-zdN~wPnAZZ{Th+dGE>{J?fL_ zw_d2;_vg8vPbU8bXcee%Zj)8@$ov84Kx$<)4V7Il2J>2Xq#tg-9Pn$Xa-{z{K=PJ5 zZ}!|X5eddwCDUrt(hqIrqoE?8$QHDxD8?%D`7)vU?HG8zk&$R6%-VWwFiPYmn2>{n z7gNNjOXYzx1drJkv983YolVT+yX=@kN6hXbJX*8C-AINmkpjkY|2m1tiws~tO;_G< zO*df*BwB3}Vm&zXIn&+F?Z2=J<;a7cnVf8T-xV^A)c+*C%63UsBTOi8zvSIkoQYN5 z3hJ!nGBuBtW|5*yo|d%nRo%6@$%?dR(!_*n7e}A!US-n3awN~`LT?aI_TlUkZ|FAN) zB?nfN4zMP}@y!2bY}KLA(jr!9y3k7O!{nd9oB9F4eAa-sP8z~4o(_02bIY?BJiAX5 zGh`S%XCY3MetxILjIqr*IzvqQF^z;{3uR^j4`&QLSlX%I-Ob3JBEnWey+RBGBDgT; zWfuxAx&2JcN&2N*l*<<{h&{+wBNP-!pRwjh(D)(>ypJ#g1()Dk0T9z-=U7zALa`C` zeInA&T=V+AbN;M2+^9``9cg08xq0ZGNZ+mNHA5!fuR8xR4|*ypb>lA`3|R(sJx>?$ zJ^?Gb$%Rt7HyjiR!)92UHD2a!Qv&5omId#COP#mgx{sGV6X&{>14m$%`MjenD875J z{<$%ELHV2yyE?e81#oAhGP%2yT86zDv79dLR=`!#%$J2mw&Cq|=EToE(>2`VAC~m8 zZ5d12Bq&ED*kF4Zqr$VQOWcDM!c{MxS7zaqJFlbF*!d#suw`jooO_AMkMZJXN2VVaCW-3k z9q%%E?O)QXin?KJ83)wd#|5`Gc(%{`)pAUa$HNTxCyH}dc9>QSq=zt#cDsoVtKX=K z(892wC);8Z8wBkmUorD#TtRB{_Mgw>;cdBWy`^D-);D zU(wds`{n0inB{|8nnA_zRTdUKF8NNK$uTu!TCK;0f2uq9jmBP*Dog4K+EeGnM>n`s z4$^^{9n^&maAi*`YMFlliUH*4b5RPEd2DRZv5LhcJCR4~yDaC-!Hu3zJ#s1Q?3xlD zSeqRF!xW8&2r|CocHQpML>Ue?l06T6wP_WG8{GP*(%;BLjGy$#YxzYOs-cG6P4j1r z*Yz}HBss(6K$bpivtBt&`3{@jlEepQm+t=a003~m!G2iGv zk#@N|Nd%Vp-=wBnsLgE*F!8$63F<0+P#iXyA9ho0F|;9v$Q!07Ak46G@UAvHT6O~`SbFPsqw8ZNB6ZP`w85t zNu8IxHC0?JNfUj_;PUg1Hdq$>Q^i6DFsz=NGO6)KhUS5Z$;NgSpL5_FP11!BzieaL z>ejR-UnA|@)MG?Pu*GRbbx`%fd1XS^-4}sMN5^Vkc!FW>e!8;t79itY*fR4pv%4?r z;5i9?uSsjq@`}4?LB3bVQd%RYQRld&5%I-THpcd*vd`fdB(X}v(_#gPU)AK$;TUgM z_$N=uH3zn6{6ZlO<4cqo&V{N_TZ97dNPvq`o8=xQ3d(kxna`{dj!AU)cCOIE)x#Xm zGeOrW*~8s7h+VsS8y9v%^LApNcqRj&=I6#{rAo56y1e!G(z-z)3Ss3zL9GF z>tWpe>+tt&=^MAPA*_b^&Gune>j0PqspA$<9_MaiXN%md z|3r4oq{UlZiKk;(f>MUEahO*Va+gcK2ZA)d3~4t)jX5rJWtNeUZg~f{4kjT5c7q@+ zrtip_I>Q^h)xxJomLLwRn9*B-ZRz4#schfA{eaMjzM;d$g$J=J%JrPq@eKM zC<-JF#r)Feo9FNs126XGzf)e%Nba*#Izz-bCC{Km1z%_a+|M+u>avd~wNQ32lK?v4 zgwz6qKBp63(SBUA{1)dB7zkpN_kR1lcJat3I+VQZ?)Iu@f)e^=21h98j45Ne{7C|Z zYW1tlfs$n-pK*JJomkJuA1?&UzJ$`YyK%gMhViBka%p#on2$_>!HYMO17eormtbU- z_BBNyqgsXMi%~HHW1O2PgVF%q!z?v8*spQC>^$6&nWC9aIU3RyN|PN~B@wfCItYi2 zyPVMJkW;M!2qVMM3X^!HC^^B*>MqJ`DTYarn@mbnPdjWcxtT7I&KvWpH%=IQt98qj zFrz-7vgh%FeQ=INy2f>^7rhG9d|_BUPO@w7ZBMbTsZ-UZWoFJ9ehOVAygn8D3rKMI z;8UuFWZSQjSL*3@j@NtUwAl|)N)Rj!kK`EXe1D*e6ODdhV=!D5(U=HqPth55_4cxY zqcwc2XSr{>>tXb%hIva6|Te zP$#Cp_N}qkpar|d%k+-hyXNi6{dvMKNO%@Os!$sJY0NS*IkGiK5uJwoxvhn%%1J5u z2bmUzB83EgPj5;}+T`t`CncGori;TzbjZZlAhSd}oB5R|)2PU*T3}OVu6_&|KD~!! zAi2oAfsl8)UnwWL(`j8sdG(cflNigviyIwt$ZJn)nv=tFPhH^<_bOS1UyEVK%_4zI zU8~Z(e{vKPmB=Xs9+8oLY2>`*>Rp=)-CqVj%u*rw=OVwyP?2EZ&PiH9W0_jHrH2P}dGDX6E(fxHIwD)rN%?vFz)ijlM?!?GIZ9o7(%)BZN7jyZfT= z;-X;(b`%25dCxgQoRLQ~f3}6lV8F&#;T^!V#?9}}+cri+WL*W$>^7AK-_pEnO$Q?H zPl7^LJiS;SR?GLsb0h8I-_8uqS?KPJI{C?UZBh75K}P)ke*w1QU6Um1+APDJmir_N zN?@7d`CBG@P*b+a_5;qO2iy+cqG`9l2A7)9HVXc+$Ltr+!;+rqjU_F_3XJBV+=6?# zXt0axok+KE)5KVf;FlFo0%;Ey*+a;+og!p?@RsZ+@Kdd=q?F}#{l)nbLr#0{ng z=9W4z9wk-Wl7WfW&o=mK!M;qeN7K{zM8VCCbiHBjTlsTsoMM%59@5nq!VIU|a4EV# zyw{Yf2JtKL!t!zw^bv?!p)?*Xlz`}nQVwQYuy-3R`XV?oGV zR8AzN#$o16c|zQyKq*@}m{K(4u>14zVSeIWx1ECYL8oi_D)>gUhe0+ng{Z{Hn6VW^ zyiN^lEwYpMZB8f^PV0^*H~GAPIDLQXs;<4tDsQ(k@`aeDRtgY|A}oaIdvCmfM< zW8(0Oymq_V)oS1R$CqTh5E*S-Z7Fyof{?KCuA~Pq=E9$ONg`G|A6dy-P|zZ&7II zJ>k|?V3ZgchsU+6hUuke{uNK&M`cBL64vva?V)YqYQ8s+JpSW!a~xqg15YW% zB%~+1(<9;b#44+NjU-=#sF5D&NXqi|KbiU@s^BiDtW`3oSFzWb(D0{vmX6e72U?_V+DC|dk`mt}#_S4@dTEo}wA z<}W~I%HOu-+N=_DNB5$)$MLDqW&a~Q`nl-z<1fIA?ASDUPc3VC{vF|ty04pz=sA22 z%S97~Xrc5L6c7*47h7u7YOy(za1(-Y6Z_OkMXv_!aD(L~#Vw1P%BD zpF8BsmGi<~J>t6dYXjAR5+spMf;{M9b2oeHiey>W8#KJeyeI3)c$&)!^{@%_~D6CZ-dHaWviDc>`QqY-< z5}T|(Nkt`H?+zQ$@C#D`_;gV4I=ifAQZ#Gk!`Q>C>@GlLd?k7HWY4tbC^Ia>lMcay zXK}P54M>*VrRBxYeF2iZrT!S8O}{ehs`yf;XY4aVQagTO%&ut4bJDHX`&DAm_@iL% z?asHad&D$v#w^`D{|; z#>qDcWBR;~Fs?{WDe7V-qLDTiurt_%IT1+hbt36JKFYUjvwgZNNXK`Np7V#3X%P$T zadY5w+q#-imK;6gj=)hDTjkTMn)j0QeEWi?^IkE9BgD6PcW(HrjOC!1vKsUD^&aDJH@5!7`@~e;w|uJS8NTPrZ8L4lNtVJSHoWbooL+~=f84?*|2SXko~y30klaT zYrIo8iLeyWdA@QSia&c%stTR@Ej%QQJ((!1v#n|hZZlvB@Wp3UjeP-b%3dC#;0%7D zcSe)hE&_;NCBZU0=!3`gT7$*SxY_Q%Pxfm9!bAk7N0~Y zl^hEYOjn77o)o#&(v=l9PlQgK!Y(&m#Km-AfF~*W$!pWZ=f~3VDGc5YHs=bZmk$@Xg#S2s$fpnJ|i^rNrloyL^;y({O za|u|^Rjc|sambAT143pfh-z>%6Zk=%IhsuI{vHiE6Um0je#TsleiQzaT29k)8v&&O zqDz-;f^f~r2&aR?Iehf~eMP^Mo*DKou^H?hZ*1!{qT-x(wT#(i83jPhf zgI8)lJzg_c9=PduuBoklNsOJ%yxu*^(rTK>I69b7AZg^@pcnhq_5euutESP#G`~K4 zn$Wi~uF(=f;ZzZ6Z8ae-ogS?9em-{hZl+_g&7fF5t3ErA8k`VlnKG7F+s^ylZ5UVl zPiEDf`|bAY^QIohO}e0-r5&I@<21QQD3sHQD!y%cb5!^ zgb7D>WKUY&S1W_%0x|6XRP43Xr&3;v_h&Z$!hyE zyTE<#hZ^a;x)-~=U_lAIO zOXVZ<%{9v9$TN*vnsTjjWu8LF=bg*_cT`;KyJ4fK-8SxK;P4vqudBxWs3{ll_a+wl zaN=4@JZKQ{bZJ^UjCl6`@46!$Qn-b*O>!cVofl}MCGe^qeADx+@r$1#hN_`XYr)Jr z%<`;&;npR25~+2n1ei7UmxoI+x6bZg}-!=b#$N(E6u@~$S7U@3mc7re{_)&|WCZ!X(nb1^jthX+}?Kpmw z!6L=thhp23J91d5y}K5sGOt0EhStE9H@E*sxM*}#v~iVVhP$*^j0|$BmgVKe)=FF6 z7rXnBF!Q#U7{Ic+;8T!*Db|+dBqsXS{Zd~3!uw&e^^xFcc<)c>@BowY1w$O2E5kA6&^esA6Y%ZIRElq!u@DIU|zB z+@$5^hi>8}(y)5ESG={e%fTDaeA+H%QPBEoW(HED03jsYoj^JdrDptju`Jftj{i)& zDETZhZdojo^D(#zY`wFF*Ve}G()dFMu8M!3cDg-%6dh2+x(0q5Z}eD*p?tesNfae_ zJsdKtw^s{$pTKyCDF_UI*E@mHbuI9^3x!AD!NIUBDU`QOD9z`N{Vd(AUnM?RvN+B# zKe8M&A7|ux64t*%-HMG&pFVqNMgD9p(Gzzyt!pUjyL`2MNw?^>MeyJR zh<_(}uKn^L@b5(~+HHHWJ&n^@6e_LIxahunQU+!rG;^ED)Ca;Sma|+jIyrD7cwlmM z731Zd1L16M4?()hWm)SYH{v6^40Fz}s-SMSGL?7U^6!o!WJkZ((!;8MJhkcvXTaRs zWlyZ0GBvwP<%jQkrCon}Z9n#DVpvSAS1Ow)Mf(A&*PFdJquq%WzSc}~lw}$@%gY)J zjJ+O|2F*^f9}6WnD+cg&?{h}52}3+y0ZCt z=LF#;=MromaLXw8Ba(32#xO>vwlEeV>6~lW)qKzOJoG}-5+FXeX8J@A%eoZOXliAs zcWsC2W4b^D zLSFA{7Bp7UuRkAgJS2DKKyrN}pRiVOfBI+ihgd}iu-RTGL{4Zec4Mwy- zBtGz7)AxCo?m~R9diS2`l<$XVVROdg$j)(&ooiAiAU^j9h+!2LFWIW)D&c-!@x$;Y zUQZG(Oa3C8Q0Pm8XTC>boDsiyY~)b{HO;7}{PR31l<$RAG6rruE|u~+GL5jPY{>ib zZZfo&tzIv~=SD%{(O5p4Ktru%xvJHz`L3PqWjV~>?OVqee*xJ}Ay;YwsZlGp;l`y( zm4A|>0__ylHJ$E~ds6NXa?DQ(<_@}w@$QAH`gmXVCIb0tZ!8iP`kWv7&J+4VANw_Z z(Re;m|J6bc&%J2_!Thg3?yvTL2~8%=okX#@jor`RU7No5I*q#TXm2<7mCIv0wTrk& zzj29HZFb~-w|eK%$&i!Jz>+9DBWd5(INO3ju?$Zf(OCuWY_BvcpGbQE-*= z+90P!g-1(ID-5KjX$psp1v!K&%pc9031hFjl1FPeyu)7*nM9tIsR_rb7-A`Y=2j?@ zS4cr&MB55oaAB4UgQ>H+lt6&D=rO?K`no^X6iI*i+5Dk*qdPlxYSXXj8-0G}z4%4= z=PDN`J|F33Bb{bbwAm$b`auCf=DTXabz7CNWv8O4k!7o*+K6f)>kt_`Q@cIH#Mpu5 zt0Lh=rKF`7^`<-~w@#_nSCW@zFo|EusPC{KmQC61YF1y6)?9{f%adFR&~tW5IPWi@ zOts-HW;e~`rOIeuEO12#8?dkMv-N818JH^=XuK?@_k4Hwr_c0Zs{e$pV*O#QVpy#- zf9JYTSg`1dfG_tWP2-8K;8EsF&gwb;(|BHMCi7IJbeeMlR1_Fd>BLYcn^lM^Sc`v9Dw}n7B*bM2!MD#&9c` zV}5L5RV`NtxZeat2FUXJC96elg$Ss3>q)wW9b8qA~oI3dvS_G-81BFjc zPuR@Q<{gtlf1S$D)s?iGxKt>1>b1h_4Np_(QdwDr_Yf$r+IDtP-9{LBo9T(To`{7k-oWecfdzUVLd3qab@S$sD%=}#6N zlY1vTIQ|PTM|~`#2KD)qbAJy|#K;PCVYqh<@z!}VUjh3u>6F(KPU;;tZ|clsw?~OVd_uK`+BCM$LtX8Vm3Xr$rbHsLaUe_N)fiEE4`q~j zXPJ^nIphnr@aFWXCI`xy#PK^Wm4zGJeZDP2=stJPSefi1@8p^*{dTJfThI(|HA`yZ z(&JrXU}_-YOKp^iw5w#d{OnLK&|?0lqf5f*(f&G2H)C3B`!ZCM$o$&ADhs}aRw};W z*CJMgq`8%OlE|D0JzHZW!VcyR2JVi>~BZ8jsE5x=X7~s(UJ5 zxx)hD6O7}m46pi+2EVY6^j8Bd5LZ~HbzQ@P|MKps`d~k_(xUOn2h7r+SuXxL=A1D78IgjVGzQ zbmB<#2~8P5mp{BXZ-D9ejA_{B7v|!B^cPS(aORp#^>UY9y@;2%^)6?nmwx-Q88aPz z%R*rC7r^8*8?$O1j+NSFT!wj*Udg9tw4I=v=1l+1mnGS^`Bv|S*x1h{fP_aqE}*SJ zz$AD+zg@PhB>Dcg1=&_7<- zh*xV`+iY$sZGR?|LlSAlRn*hq+|HuAhIt*cyiRAC{=J@_#_5bkWmNWCQWcIlllsEc zP4}))k(qd)ufO|w{5l-c_%c-5>dbP9`Sn;HM1{Rq#<33lagZlNMyhp0CZpiUa|-I4 zl451roer#Vrj1b2)9nm&1nIj6d%4&ZshO!qT(-gNk=pZK7G+WsPB7fQ6Pl-h8sO zfDGx+JK=Upa0mXFY;X04{;$(}uknpryhh{FeBL{e;%)Gy>^oIs?n#43_WJpo5W^Wt z&%9!vzF$MHQJ~JM-PNwhMx{M<8W9U}cS#4Emwi)SPE8i8m+gl#Fs^iSpu zNB&KhUCW0`y_(d0)Ph-Benk28!XA0Tc0d@~)Dc=ywS+mrYJ{Ze}? z-}5u5#A7>7e)eAbxAg>NH%0XEN~Fz_AlZxAz_tI-_W+awv4nTkWLJUj?p>O}95~DP zKt)7{&qH3zl6yH9^HN`e;o!qps+Dtbn!e`ZdO zL09(gaDd6?>Z6`vFW2L=IvPreqPiW-^k;I{Z3h2yJn5G-UCj^N8^E)LDGy?rOqFg#{YflV*wbL-*G5e7=BM9LK zp{?YO;~t^1V>O;|zPOq7SCoD$#tqlLA^W|I$e?b#L7}?vhcB3Xgoc3QSIA^Ul+HBnxv|t zr#6Ro%ZpLh-=Q~L2v(2#et2Y~&vJPbcg4wZI&|ePet!17OgkqKsLQS*pfgGSN|nci zjr$kigFtvAPkpr;hn5USMiGnD7@WwfK_CXura>bt88#|0Z_ueAw>Qcc05Ii4V800& zX>K+OFkDTEMEooGVgi7N-{$u{S-^9G=Y&cJ;?(QSABL^3!i%5}gkPKbB8fk5&fDy^ z!q`@`?>QOW9};pp)1vvd_p`F~Lc6x|gVWUUF|?xQKvLrwIL@Y0;T~N@2U~V2D$}C|Tx!b4fY5zvb2ZI2um;-hC_Sylq))5%IvOPM=R~!1ZAw0TkGv59^DA-~gsdoG znYA#jS@kFtvBI!@*T-;rax3wtZ+laBuJ6iIe*yd^EzRef`EtExXwipIKtk(-EC!$h zY+|V#yHU(4gWrthRpl#r!A*W#R9l^O_bva!t&T9Dpc|eG#__6d_LzHN5^yA$4hmM zBJDJ93FRZ}K-aOaVoS4Xpox-Q(gK3iW=9`@uRm7{GK5s)$g2$KPBzogmQ7d;TTtR1>=Y8Dk;!z^vecz-@- zTjo$2PH7ge`57!2Tz_wC)SLx6?o18iFa2IzL@x}377aXQ9qina+nB_4WOb}vD*z}YKInNRMsb`nj0 zvs!wvx7ZmWmk+(2r>}P>p+KN~JZHb-P;_}kaEy`n$2Yy7lUu5G=1a80W`;*Yrl@0y z9oeJs|HaZ*K(+NeZBvRn6n6>~FYfL|Q{3H(y98~~0!11Mv`8pc+$A{0p-75L@Ze5x z?U&#G{qDKvo)b99ot>R|W_Dy(Wy!fx^6m5oC!ODaSlbV`vU2XEe*DV%ptweGmWOP9 zXCp#E{onOpm;3)(;E`SSXej8!Bp9!VNHH1t$jId=-Xojcv5^0Kf%+meee{=xZJ-0$ zRJ}r_;%lAABx?TOO&RrlET}C})BBhAoib_I(Y@yyr14+$3*RVJP^&Ow|K+t5dlEk~ zhIrbf!H%yfPEQ14-QMU5C<=05NJZx#Srh?dVtzOfFhHc+0|gpaPXiasP=~tLP6eCd z>gO^df^u02VGQd|Qa9Hj(y8*;A(1jp^`6!ph4hTvKYVsVW0T zVqX)1#U3TJwQ3=XOl zumMm*CH1oo1>U%%v8(R#gZHY2?bOo4>)$zJbM&xf*TH`%t7dSU=eT=@z1&aT*H8OS z$E>BtESq}#sqa{wwbGocp4K4ONqN5N3wl$vpOs`PNE#YJZP4RH4n;gBiLA+)$RhuO z`1eR=z;9CxzNXK@$?{{E^$peu*EPr|LIhvIsD*W+Nk8?R-K9SAiuQ-Ljq)c9y5*)KjI(Ncqp(G90gN}9!hODZ5^z5QCIr+!W=#hFvg zxZjr7s7QYA^7B&|ejJ$nIpxmTv{RzCw~R!ND`E0?9oowW?>;!(`h`CG3$KV*aRfyA z$>8qyDJ2#2hgbKVmfco0B{lO0{KE~{OCg@Mt~CL!uOsT4=eEf68=Eah7oA%Vn8@&D z3$I8D=8csUSW>31O!LdG!tjYc#nB~uwdC_F6#Pt?J-E8upRUmn(ij601(oyoe^!}X zH&9ll4bP!vgGgPU9-SUt3spbW)~2(hkjcSsX=Ty;_mKqjhu7vx`0Y=Z0IUF3@-)mt zLWWH3rXS3xq%ET;=<JjwpzsM0}+`fDvb#$ev-`UK=s z(??HwZ9IuWDTCo1y(^vZt~hDk;Wg*%>&m)bOWT3P1HO=t%k$8-BAxZ<44F@4r#5#)(( zOe-4Y99e*PJmxSbi*0=4wd@SOWdFUPEdMc{Eb+SU-uEBM&xVevg{-mqw#`bi0kXp9 zh`WC%J5|KW&QHRnT->-sDL=K5TsoYuu@qyhz#N>w3$LU6qI!rsNIZxa`eG18fX6&| z82*vDPe_#hkGX3i&{NSveAC}+`H_7+xik0*`OV+7exQ!e-z$1vNSCMm6)(HMF7LIo?BiJ__ESrI4G6bOs&H zM|Pm75YK;!qwnrBs zN)^2AE2lTuic$Yi62WS2ZkcQ*2U&cRkvRs1AC;J|KKF-rmekn+mZTuq=^m z7rZ`wqa~<0M*>|G346Y(&mgh)is+WQ$N??vovUHaCKMUW5mQ?7MTCdk@Gg&@++c2h znQHifmOqVRjtL2WYX6btRO=-0pq1iXMXI5%Ys#Rw7e-hxL(u8}*HC?vi87_2^yQ74 z&lo?eiBjdMAoQ9#qH&JxYXalXMs)K78=NE>u2{^QU5M1K)CJV`>4DZaky<5zB3ULR z@DvJ_x`06fz80O1*cxBJx*gxpqQW?>EZj~ zi)-EC$IR-E53=@S#r!y_D-QwOQ;ofHPY;5~IrrKX|4lVt!C{%J@Qwd_r)7=q&|iWg zJG&oPwCH=UkWfJP;Skvam@9!4ni9F6;T<>En8ynZlIyz021|))Tc}mpW_~jS@pLewFYC=`k3$C&sOw4cvG~ZljOyr~4@_j-@LP?>@B&xZA1%39P~WVN{MI@x!pzH~hFp>ILP~ z>UHx(pOs$o8f$-&@P{XhA#dbl{bvgMFmyXrICS|Uj%C@_HwK5eSUTFN5H_}{nSEF)1$=gLG;hdABF24v_q=5n?7ok&$gy@KDL4>7PY5Qz3} zTK|r?^nGB6%HgxtD?n!qHLRjmG03F2J2U#ia62I*@D0RXXn=)O;-~*cKg4i*`y_7L zzwsNj8jn&|8+f<7#rVcQ@Uevf zn7W--)bg)ug>>=Wx5%F7J)*A~h8iRpQD9!|BBMin(Zqvq-x7i&KDflV(vQh9;^gf{ z{CGB=MLwM8WU947NKBdg3%semCx{38DaMsAlUI+j0&vt8XSM5(!8ss~6yTe?~=O;AJ-axG8#d_CASYy*W3pP6Odjz#vj)v_n zN2*JWB--71yk}mQ_S}09G5n;I4G$N;+a)~litK8Pe&Y*0gvySBk+?_=@N8&nL4w-x z5M8j}{tRJc$V1pltjoD$174RDg;})!b{46 zlx4;|@lBa=k}X00gw(|X--HBN&%OTvnd*?#bDa1tc%|L8x9N#Kw(<&0A@dK#+Zx<$ zT1^N>3hMvaFH5nF^Tg3V>nJV=&9Be5F!?%-)y>tKNK-}{0`wiFIxL*ht_F*`Yh*~Q zjyv6K-HEAnw^p`994hr?SDXz5qtom?m}F?S)>Dleh3rFXj!+a29yFAPCjd!GOS3O7xv9yIUYeQ^YM zx-`fgGAc~CurAs)uVMBg8s2W$Q5QMEWBB?rE<3UtNcP;*TJIfvLP2r$(ah$4j3h+< z#TV+aG8QuytH+c&Y}M*0@$&^*=*8ON$xSwc(-9Yn9Bbz2(Od_O+$hLdbuAlXY7kw00Rc z?wf~$!o{DA1->1$P}13?y&08dM$Qfrnt)q%wgW%LVzsv)u6NV2^3tNcZs`A^+_Tx; zbggx~OEDu`Dfv;=nb$;G_BsE5E}eEK>iK->`=2&_=R=eW>YFjjpRBQCR-LPtmSJmJ zL75}CVyWtE8s6^KYkga(Ks2-H1)e&wv~Dr|{@Elwivsv98P^P?L#qTR;MVZiIss$> z4g6Sq%6;&S!l0c^i3Ezj#hNOgHQlV4GaWH!Q#OHr(8M)mXHFve&-qS9TCgEYlxIvD zvE&YaLvHSAHIKo$-LEFgLfy1o8YvgU(*0!uT68VV-X0rkeH|$-nR9=$7hzxtO6sz5 z*YCr3VyD~)?N)kcydNSa&v67KV??g=c9+PR^vP@3Y{1#sIy)LyByAyx! z<(n*6V|5~%f47^n#c814EA{pQS_kQ@YvLL7GOFN;omgoX|JF*$M-RlKl&G(-W%R>B z@?H?)%~+dFd86aGxvJW%acHjrllcCHsQ16O+^5WJ42e?f{AJW9TTA&GMZ?HY!T`;i z3Geuaf&_U^ZYgqShjy8zi5*u~D#p?(mmE~;U3sfyMpPz0bcs%y|7o7;tWNS#~K@}=}n^dy8B){{z!+moY?pp6QTvc^!druw1 za=V$beJ%oy2#2IVYOL+#+=J$6*mx$1#8D{k4sH{J#Lq^gOkL#4(8xHA$Ub3$Gy+d( zMa75oXp|-?6a05o9v3vkB0fE72m0mkA47%LFi>9Z!YE??pzOXttZ1=}b|+ahH^Y9!Mu~EAp4DVUjmuQ*`*5jX*?cu8$VY9*@uZw%&$5E^*HL z7d&M;M>c;V9P@T*?Nw<+TBv6v;W8eSWfu(j+c%iuk;qT3O)awi*;~ z&D%S^Ko^ehmr^N9JTwSsfCofi<^=a&vQGRnq3BQ1ZFoQR0J1`D9BK(|nb#q_b|fv-m!8 zc0sGS67Aulb`}r5Fffn}{JUC-RfE@#5Fv}76t}6&oGj4wmM}@mk)iyG#&Sjm{GZ`v z6W`r-9a3XFum{anRplPtJQL8qh+ZI7N#L`yv$@?(U1=9258yU#Xb_}5tSVE_oSL)O zMR-zn0Gm1iv;R8=R-uB z9|hbyJ=vrDGW#E|cGnq_fxC4qo2qo|2hrTuB}=9Vsv7`bZ@7e_@m#&dCMA}b*GAt3 ztTlY#I}(q-@4iqt@X1ib<5Q$wpU|Mnn(TmdO?5j^je(5oucyWWO*h91-c|i=ufCNn z>lItaH*xz=#f$Phw6!tVmtJqvL+kZDDi+EN)g33lhh+3^{{udqszzGe(2J+KSXtqogrOMhC4sBvlR8I=(DNdSS88PxsWAK4HB2Q$DZ0!6Hc|f+#zpq}`>V z5#P<(6(dFl6ThOw%^ncjCh-^#33Lt4XPoqa!|#rc@_qY7(%lAs!|hweGI8S_GVE9! zIol4i0u=Z*xL5g2ajsQUekd(0sMrMj|kai!qw7A1|Oh$!fdsQn^nC3Nc8c zENcK2W&~}dy>pI;svPRW_Zo>zX#Qv;g^<#A{O7=#NONMu2-pf)IdGGx@UIYNAq4ypR`c<^bOIijqZ{SKsX zUd5y3?xK%<(c7Dz!R_qW?&}*k>~0x~M)$VdlLEx3_I6?j1BH}P8%Y@20Vzr(uVE(# zyTC{|6m-m-<|O!sCfy$stJE)pvGxZ4A4;Q>bK>=vYVYX;OgpNWb(dqb)M>5IUm+Jk z*&Hh9?Rs&c+q@qaaoIFaOizou7wuRViZdgAD2KP_{j$K3kv7Y_xWfxXf_g4WDeJh zc`mRkGczj1*Js|e3%nMMQ;Je)A!O~ZMu)kF9Nr{>B>t{_o&k|36$F{`NSC=S$xuSm z9LC(XK1E?3c)|aJwotKf0-eFp*yXQ{KNk2nFUE=Fqa+^;R<%^xnh4cDuHoYO8`3&E zw0iowh6#6wZSA6V22&@Ac)CBmQA=OUVFVa|QF={uA8pH*5Xny|2ktgkz<%ye@ej>a zjxWL~sgEW6sAHj9k%1=b=9J}WuRFjKP*P#+Hso(<7fVq(1483({$#~6`l2@P>jSNu zo116cAkuT!85%EKs?8X0^dbIsrF2BtNA|;46+nq-NuO%bMwrw!LAC-!(Q7w)t=4gB zs?RIPj@o7+NxH_B5as@Kdwt^QJ!WF8Cj}{6KrHaUWwu$BS*`wBnntm&P$wan2_qmX?>;A4X88YB#sqJX_#oz! zAp(3gw!L4BZ#d=m!%_2i(HC?9C7vw)@V!!JMtxmq+N!m?b;}2)TM6(`bMs7IWiG7X zJ|EHUClj9IbeB(=L!L^afv8JTHgWr=e= zdE=B?uYV+uH}S8%@R`3?wVn^V3;qx=(;N_&l0T|pFTN|@^FMZpefO^W)c5VYVKir} z74F{*D=PvKdUpJ&F8%^a!*F(-=PR!x&zP+m?|#z&aokM}xj9{EwFOS=R5`vP9TXQH zS3tOPqa9Gp?_UNhpc^I|IJ}ViFJKXs`vqaro*m}U=~l7K$6pmJ?8>g8?576{KkUwZDZh*&TLWWpI5IZujpp0J_$_58}jjL&`7reGL-7a+A z$eX@vY}@w-Y(7|!*n1Clj0iS5ll1z92t(}bLPn~AG!ud#UyueS;Y#+`^a>rV;C?ZZ zrmwP@Yn&**QDgQ2reHyec)%uc(4!1@Xz*&<`~)(L>~9aE;u^;o)T+D&vvcijoCPx^ zIfsiTo+EBwJchBs_d7V<{q%~r+Day`x*!E)6iI7!hS@WR__sAhh#$TVY>8{)B39&l zIa}7UNP>};;B4X6YunuIBK}tj;MeN%+3njyTN;-U3Y7L7tk2zK)g>TfSm;X_L<%%T zC0*d@Z0#y<+R$9{I^b)L49wYM$P!$eP$=Bi!l?qR&+ydkXb{S^M4zWq$_ktjX*lTM zuI4^qeGJe0>=MpXu{lz1iu$wq_0|283O0vZsP0MpPh7gs*TlDJc%RpucWKKIEt)Y%)pxb)aCMdQBu@{!09hdI0Y_t~ z$QVPU86E2&$7vQfC$u=USZ9`#5+% zP1vF4>U63oec9W%m1(v|Jl}1m9Dr7 z{dBx@ia+lDgSu}BQWM4Up;G(C|7`ZxRQJ7zREkDRim&I08_?+qbQg6u|AdXm4p-y- z2CYwganGBdsdmXecb~VtJhM=tGH!J2va(V6^3CWX|M3F7%FBD&)K)us!l;xunpX@` z6D!navW&&ytK7u6Cjgs|U(6|G2#0J35;Fd%NS78pO%TKXP?&jhojVTj_@GWtT$zweq3a5$=WySW z`VCyrVflO7Ff#@oL;eU}rD<8pM%~#uZVFgEGhlGOlcz6SW3qyeQ|yKJyPl+&#Kt7i zhWci7edEnvuA0i7ZxO#{0MZuFgjw~6Tu542i_2Uc`8cEu!cjW8G`yMQ>0yrm+#9xA z4R;?L-kGl&KbzDb?pL*V(;#Wc*70XGJr`G2_oiTdxrLL>PnOru?#1pM=bmimNwVoj zTeB`&c^K_Qb1RFuU?cKf*UED!MOwedY`15hRC(;Fv-Jv@`rgJ~|DmZ|SHsiXdyu){ApZ%G+hOV1M#xnvc$qQKl2G)|8n zr+!0gyRe8g(lAmIDH*`jW60zC^Q*UaI0gw7RdM&Z)x_$wSY7aJh~clr$w-ck)?_K|ft4c3?_0@3t?71Z%oWW9Nq2mUf|{RTrq$#+q({iF>6|r zjV(;kcvHEIpqpuj(wAQ-b0;;=EmhTwAg%%b1%7*?FvoiR#QGGe;WmSVe+qeW!KPns zFRA;avv-WVKVslbOmjy9oOCFW`9HfVG7HCg2?!6s-cV>a_6c}(c5t|V70z3JHtdYH zUE&IDa4&S5_zf#z&8#P|LMS!Wx9k_sssZdQJ54JgXz5=JOAz?1X1XDPG8&sRk5PWp z*hJN|E#F)xvi`IOx0}arEEsB4srj|xG)$McY!SWJ3JW&iiGRDllTe%p;EmevrZbov zQapr#wplAGGX||jYS()b6QhuNf$lbcNhzFaN6u|LYrZI&^r6}B)Pu$I4BVhpSAl`q zuEA%nQD^$TygZSbbH0#t>e%$%^ukmXP8UPd`Maj2Dgy~7ALk=?`vn^MiQgCFYG2X- zZ|1oi7VXLadY*=<5lME+RWurNQcH0;E7i}~;gw7!5B}GYqwi9lfpSgN_ z>Vak-U>p!5o*rFykrur~2XatnuI^SvxfSha`9r5nJDK?>p6Y)n?mMgKKA{WPwU5aC zviPi@2-NVrUe^WK4hp?Q0zLw|O`4BUka7Q*!rbr@wg{65*0M8DGQ+txl$bsE3x;df z!AD6Yp74Zv-MLl3Qk`BqGihg7Js;8I-@B!owo}#^S7d3Wq#g%YI!BC3=^SX)tgT+O zNX^@kTFMhV6(X}G`uX*NS8rT%o#bxZEJa>B*11TSm{RRayXexGX0A|js#=-UI zEf&^ayPdEu0BReu8D4|6RO5o?3T$d$+4MwFU?7tZig6@1_J5|XjZ;H`_FYUNV+TsE zD|LD1vqB&BiSO^fP`14KdsVIznQfIfyz!N9Tp>o5At7rJvAlTHtRn*c;zVE`8DuDH zRjR;btlMUgYMM_H?AhGiyD>dpgm|($e6-vd3TwZZL1-8`Yqp0OedD1xcMg4RMGAP? z1UD@GFkJ1FFrE}fZ2#xlBZPDHz`n-L9M7xhl%}s*MpD>BI14{B)#yBtZzM468s=IV z7vO&2Z|eTGO!F>On*a})L+gpUM6R|cRNlUMONb1!m}Z4!OS4K`*Gg=8RdaDrQq2E- z0Y0FHR)zRzwzascZq>SVco3&Z=QfQ$rcF;yPO(TY*o-HMxh8qdR<}CiY%*rp7}k5P zobys7i@!m*Ed*6UMIy%pi-Ogzx(%@kP5-(=1n&C5KngJ1j}-CDiM$E3VWHVPGtn;q zq%Wm77%?I)GpJUjrDF0cmfF;vE%8{iOKn?7)Swxp)@AzMrP^@P^qlLN8UK#^P}p=u zK9+K4wD&jjC!`Wk@`ZxDHf|~Taq^N@>m$fxUPrE_xL>AkCYo~HKiTM4;BBl{X$2-P zcSd-ku{*TfT@E%31d4=~PaKc);L}mdnT9k6EOkaFf|!d02-h5RkHg-S4;+TL=iV%h zY!lDs-yVA2jt1Tqcn+B5p>q&+ z8rK2lvzjx9$k?`b!BBX!6m3w|IH4&GNtYz8igRFlhL&TZSq;gL{3iCc=5NU;C@;>C z0!6r2tiIlpgzo@5M057Ey^yc^@fwFz^)Qp%-oi6Etsdb_YiBN48cFHwx(5_#uWk;b z`@kZwumA|?hjT2KiBma}ekfv)+7)p6TJq&6G;?Gdu^%Ymt{+Zp`csy++0Bovn@;1l z!Si--KJizwh1%3WS?m{);%e19;dGYh-8MPD`ub2-Sh5bVS%n%@-Ic)A-L79~mnO4+6fQ(ITRd9@j z+q~y;cST*pl3ua2bnY7Qs_6Llf}pJ@ZHr&`t?W|7dS}N*{v#~T`rfw2_D&}KXLH@~ zr8TmJXNmc6#+47f90%`PjQDTLuy#|IrT zsW-vZyARHgHG>bN{0<;%`eO@~jrBp^?5g?A>+S^Z}_OmihTi!$Z?A4b6)p zG?i3~M^p0$9dk7wZwtb?Efbncm*4qZC|FOHXw&Ox`K6+N1#tjNb-F^k)4->AmX4 zU4E2reN+_PNFjLyc0K~SCJkdb+_{YSDu(LjJcYwO%V7q}ChMS}iu4?9kjlt(DXn)L zwi|2wgm0>T8Aku=%nwHr-^%%laWW`n=k1V9ej-A+bDIGda*Mdm;^Js3+xUm#WZ#DS zk&LL3UYXV6q}!37D$$B(#R5PL)BJw;TIpb|z*dN3^ar)cT-(M7mC*gEp>t5mmsPkHUH_Ue<&iJl?{_Ea5VjOtzV6@#re^62+(j8rr-$j3?61Vq9{#WAnDlL zZ@TU*e_jiedI-BviKnX+w= zA>kU^mfq5l&OrJ?M0h5G#{z1TV>vCK4|ATCBW2iSLU(uRm&JQqhZrOi5gBF38RppR zBrQ4E2#!@cM$TkDACXgAHK3=sr9o}z`*&1lVfcg7u0jTI?i&wkbKL|VFOgDN$=&lIlaQ^_}g zhfAx$l4rL@AY=T!gPcdLp}3}`r04=#WnrD<80+iqn9P1KT9ZuZ`Bi83*1n73#&1<+ zBx1;OpJi^eB242zcI@6ILGJMP@2icepmkjhHweAiF8N8uE@}$+r6Dp^aHD!B5|`2A zn-kO=&f$9QxS0Zvjq|LZJuG@GuBlKVq@TS#nHUca?k1f*L=oT0yd*t!X{3%yeYc-B z^m;yBJ-cR${4r3bQLZ-i=dIfnI!cNYQ;;7eMP#mdbpRgCk{kCh4NE$WNk%14q1URJR-G2PV5^^SbW=$HV4^{^SMXcRSVW zS710%zAEeNQz|>)Z)B3mPdw^u`#WUF^-7I70OVmS;IyFjvx&uz>tQ$VB))S*v{CK& zfqvT)Bz|-lF?e$Lnca@RUdVfHCMcR{SLF0gHQS@(Q{MVc=Fp|3*hf)hjl!Swx*9~M z?AAB{Y`DU*@aKvrXgjL=Ov^L%1Mh5VHAZ{66-7zmrrO&(i=`}=ELhsm7w*1S)xhnq zo?5l^iXp>IM$!O^Z-C2+C9tbF9448qF~{p!cEnU?ILH*byyvVkRPw%(fIDro&#}oE z3zv(cxCU9w^7s$s*TF%7(Dl<=tDW-|YLNq}wO+<**UKR&njI^$o1yg`9OI8^mE~6> zs%x_vu8WX%!c?h#xVOste8s<%qb7Xa8>UYfhzHbC}p=#Necf8l_#)q+!@B{tBH%DgHkAxyH$9_!uB1T|EN7qv>f*J}(2<6fLSn zn6+w*GI`85EBy8m+dts$dOp|SD?H{=doRl!E7on~RL zt9&V}3>!rY>!j)MkV*Oe^?kLfzeIPO;!SswjRMo_aPQ>c@LPg9NJMODL zXYjJxhbH}&CHuqAM6%}@T`#Ndo;yEc8`o@JmJ6-H$GVBdU*{{1F`M%rQa)Rr2d1p! z>EyOzUQ_Z>?i6-UKda0Fk1e(W9zro7C6J9`&buVKoA(>_T0ABtDYRO&x}HLMM&%Fo zpl_ayb3CHI8aGSRv%cs-L59X6{5=`QTiyU3{HInWVp!BjnfpJKsW^Aqd}G=ajCZ9N zgi&Wy2=36sp46p(C`tf^Q9CoRsYva1!iA2-6Az5d(9@Fzp$R&MJge*6R6q+7GxwX9d&SdGb)*r&~T5j_c&He->agcdfPf2R4^+bj`I-?o#X>-ZkXMn z+h!mj_xLe*<}F|4-sD{7NnZo#@OXW}y!+?U+kM9o=1tRoC>Qkr3J}+;5kc76o#8)} zKS&%pTfwnc1;ANKkGEv(w&{(%7{I=%A$GQ@;o`e5egpBX>?$vi3nll6Z;G`hpC*h= z&$GkXFb4B7XBXzv&o;=JoFc7Q72H&gGPvd;CJtK?3i>KVYEpT@+uhc54>xWq_Ii#* z1{{kO9$}d&CrMF(PbJIBUQ1>&PtAXLnP~DMFw6Oq%}$<&$iTAN>_9Wev}Th55L>KE zHkJtgM4x+6$(EO~+f|NZXFWoe59Vq7oVAp7aCx=#Q!0F0&PIsY7Y>==3Gs4)pL@1-U|SCvjv(|JL zyO+yBtSZ1CU>nO$W3n%5AC>Xl-T2Ny8nrMW!*_R4^9;7M9E6N4L3g=YXvH{0M$QZl zMixcpee?=_c_tgjjQQIG$v#Ey^yaKn(V1t}`8$2lDX;K%?Yb>Vr>@7kd?Oa+)W5pt z?$?YC!>p>Vk^p6w&v{cWZ07zYM$dMK)G1wD6~0Hk+ z%9LUBDT;J~L;R09m6?`$+id<1R}SbVwX3`*J<>0y;c_COXDTtQY9Wb4rn|GsGlJ{OCll<#k>$3fOovD}4HjLCPnm zn_nmR-nM6wMN!Wua)S(XMlNJ+=UY&J&WfoNRXFwk`)gjxz7R1%?N;8&diyr%NiVrV zS}!uyM;Ubn0oHc%MNfUHM6`@0k0x2@wHJHJa+1B`7wB*eZ{v={^1$*SS8U;q`FolK z4^r$Pl1D?{uk_x_<8N5Cy?X!OM`5&?$(D4V~n<&xg2BUh1S7GiJvW*S#%+*t~>^< z`LhHS;{>Jtisf`h;KLG9kC;@gu2LrZw~<&D!hDQz`VuGX1vz?Y3G9W-tWvlhvyQ}D zIh(JNzV=pg($-w3^Gx`z%&JtQqXo&st@* zK`mBY$HU78q@~rtIq^pF_=^QOMY^a(=n@ZE26rbEmLIOP50EcerJHv6%qDecT@Yv% z4Wnq>AK^o2waB5l#VJWJMnYD4vBG!Rqm4V}!4GRf>pHZvl{MpNg3Ed%Di4vE{;j+$ z&+&8G-Ch+46A#4l)_M+UF{xhKGz2vg%Y?AbHR%qG-?b&m&y1^gm^=0?4u%hJ(^+xf zdfu6}k8caH^wrkoASjLA+B*8G(kJAW2*E$84^#$ccckvcDN%qBh9~$vPRj%UmvOoQ zU?5@8>9sXitA*)EO)5=DzVa~HRwRR$WKPP$qOal81d*tbw-Gzhr@xHAH-46C&1Z$f z9H>4_q`{taM0=4mvFF!X3Wq%NTHa$^3@s#+Sw54fzFKTT%Ur1FLX45!USUITw`XGy z!*{S~ewtV7XftlN?fGd*{YQ!fFN*}1kEKP=4f1>z+`=xqlagA0IWpT8gAB8z%&a<- zgB1Nuf7R-Tr+%(I@T&UL*le6v__~+Uiu8aaD+t26-N7`8-*-y&)a?59@MS7gh}J6? zNP1ROFEyK{gUPd404%Z3Ns45D8umaJ4Uz{|J`|o7{nQI)3L}e695FkU$KMTigQu#%@U<39ku8supxk0qOKTaU6`9zHYqGs0<`ubos=fxV=(qx!oDjWsrrnv z`ZPXB-l$7YrK}SA-T2CdjRpSU7%pKm5kq^t(4{HE;uyz1;rL@#5;GrQG1)e3@}H6t zt*T3=EaVP|(}aC`ngpN4`7zxvUn@H{nY>nD1F?Zdm4cb3z06JDG`;9}^OHyss7%A$ zQbIR$BJ#AB=>vnF09YiD!;Vwl?#8MAuv1;HOq8>pljnD-qwLU9_z&fioaD#}$S7~w z_razmEGjK+`Y1=iTV)vZ+2|iiPhW@5(_~mb-TX39^Jk_Orhh0=7As=%hN?Hl`>PC{ zmSIyx94qe+3U%1Osk4&AE9JijvP*pnGg9SH_#RTe^z@U8X_9bx1Esp*>4Lc<4Wn3L zW+FQ$C&jNICxN|$15=pMLgCYW4B*WV4%L|XE8U?@XSz}DhiFGbtJb*Fp>Dy{_x%(~ z0Kb;4x8-yvp)*ek5%9;%^Ka08eVGVhz^y*JkGCFVTpau+HM@nWwTE=*OK;M#?_zHr zZsql&S=d9y)1SbX56x??OJXgzrd7R?`Q{%5+2nFI60Gj@-N;`aEgYMc<$+1VhRQ#O zYPKM>Bquh-OUs#gg7owzZlOGc?{l~?Y8vVi#Vg!6DwAguw}^KRZhpRi0-t8Hpf~I%-$HhSmWfuLK)g!( zV(?iBQIp;Qv^xMOvGMKe>q(58N&!Gq>$hWKbSdsw2SIY}fsFXaVV!J?@~jooV2cQn zjagOJ9+&jY-yRZdQ8B$kA;z$D*vv;E_Z$4a8!hOn>IrIt)k2}RjlREoV-kh7T@6hg zL5vJ{BCgT3A-$9I;KK=V{lD`|&$;db-pVyM9uL#hQzP(B1+(PeHCpYmJD%;5}u+|EBOM#w2uYuh^ zTqm}>1E$2y4J6J3IX;xYK#{VfKRJybQCc;h1h6N>+x^#W>Q)lR0G7v#*^*BedDk{(f9W{jgI&kNA>D;=B`y#Tbc1s`i{$ zal9?t?J_s@fp=XqVSi4-H&*|LV5MBAG_bB+uM>ujmXjARTF_9Fx)64rw#EKOb*{iI+r6BjMxK*BhU*A_CsttInEgQ~CN`!0=(DW331uXEiElFEdItbkDD8uY1rz)Ho zpY`WtK4s56eM9eDl12Ak(MwAne*!@Jb^rP!Q`@GMPPbL3Q~RRid?#}wd#-2Oawcem zZdu-;ZNuqYmBgpj@L^HvTbvgb8j%+5jMhz>@{vBma^T%XcKhOuy5tsSzdn3bkHEG3 z%Y_aDPzCtw>VGbUF#d!#){UIJ*f-Di1gpy%LD}Gu5WOj*ebDt>xS{KdFbT zn(IjX6n_&1=pNFAwWRMDRYMolD_5hd_BmjZp{D4a}gZpyU=21%*u+y&v>@- z8j%#*49PH#X}!5M$ag9^@$mz&Ga{$y70oz5WL)f4f6C=_S)O2D)mxd2@#fp{PLW5c zzfK-dDQx>c>VC#D)<5{vF|Y72VG7aT;H-O=oEWu(4nA&W5y`zluHiB_6;*ah(z4j{ zV7u+S?F8$JZ92*}f7di;#&6OUfhEbV<03A90<8M4`fgCN*4-*AV;|olq>o>@z0yn42?14549(xI)+O#viC>N*{x5#BgJt$WVu}rbpk7rKPvbt%!DS(FXZU- zf`45-z*a{5<=#ZUQWd5FmKqb1q(7reb+J9Iz1_Aj@5~{l$m78*Q~5nBOZ><)%!vb7 z)Z;HHrF#5}^hj1e`{_v0YNBJToZ&_gvh1|P;S%3iM`CeLn>Foe#9B1GM>d{%w`1*n z4!CH8(ucwHhC{!dN|_LR&NMHfU`ry4wb2NVIz>ZhBZUmfeYC-g_YJE`Aj!nPZB0)&W}ChnzBJTf79uzeIZ365x2?Fs7EdhRW1*qi0ZV_JzQOy{ zR+gEYmRr`f(T3dX;_Gr+ML?o=GKM$l!U75wqiC!2yXrbdAiJY8fweIVt4lS3;82Z$Pss36p*BJkcEVuzu#9~LNdc47Y^4{Uf9JFWjB)+GWkNBEx|y&I7Xa z?b+_{z2%2Zs9ua{V82-m`=xBR_^qT;^NF0y+Km|VgsLL~2ioognQvXfGR>JaVTe^| z&ha=m=ltX*mp`u8zQ*7P|Jn9+Y3u(85ik8NrOxMuQwqA~3P(EZ) z$A+6!hk{|0H{D$zlApgvO%(u_LtbyC;tE;pQ08{2G>Q|5t_BVKHuAV zg0t@1x$T%dkV46)G}WeGWh=QZxu&<0XiaK~faal$9wj^Pg;Yu6d0bt>bW%T(@<9Q~ zH2|_#X;KL-WB$s-EW6o#n~~^;e6<%jt-8B+*eoEXQ$}v=&Vg+S`H%{Gfi89ZP`N_s z?dGcB!b^#=WlLMdngzO{WpIKS^g)tXBG#PI0Z8MJPH`7jYeE?yo7uTyncrnmGlmeP zjeqz$Fa01sODFm*e5_U>i*|o)?b+-6mVMln+C3Iqty^y)yjcVjPT&(r*EQyu_>{7q z29x?J-QqU%Om8I6nAID3s8|meMBFh|O{?WQa@B1$u`;`5Z`i&xKTdjwRRF^ zqRZ_EbgwP$UP-&`Q(J~di;@;wzzQm8-1oY`1nSDCO6@(-g+eiLk-}X)PS#G}4lfCAozNyaUQND##OUmA=5o}Gw zeA5^-Olo6PG3w;OaNNqPo8GWaBQt*KzKVDIwhQqlw~`$YLwlW|-DCm)CSh`6b%))2 zw;kOR{ZV_vLoQB;HWn8;=HCTv)(Zm;Y4w%n79Iv%JIwT18**5I%w&tT3d+XFAmUJI zTn%A99FTJYZWf_r6H{zcLI`dpIIHfOrTADqN|FYiEBEAkORbT1s5PTB2C1fxEit?G zLoZdFr^s&0cR#h`Z~21E_q~HR;@UHMquk4JCcs@t?-oiXa#6KL#SCLN1p_Zm_AooY!wNM zQnNO`OpjX&e-c=atH*_fJ|>S8v)`@cY#z$b9Z*>@6allr(`US@;uq2{<$c2bs&knPSx-H zPFB%f{ewT&eR(Ga7ZJ-Ko!WV#!C-(IDBSa7_Gj!1T&xwsy5K3dBFpBkEp?h`S*(!( z8=c@+i;j4O!xm7c2U?>r!% zMI$YVwnKHwvdg(-I;TkR*6LHEjki|bPKcdQ2n5iW-fAX$!A33tx~P{!WcPTD{=uQ` z2TYX(JYnq~)y>W6(P|T;ZV-6Ro?dGc?Cik(RwINJg}BIClC6I|&KeZ%ZMuy4Abj_Y z!4Bx|+kM(q<9Q5h$K&>igw;ti~4~B~|r?7sguA zuAd~q8*T6iyH#xhbGZc9YS4htl`DCK{{SzVdst1rX^wvzZkqNR8v&{4g*>-uD7t!! z^l$TANCwFN0Q$*)XCK9%&1d%x2LAw+zo&cIe0O2lHAnasXVnl?l@l^H^C}8@afoTE zZ*1!zfL8A0xgt?@MoZZRnvvYM0Gbm*V>zgq?qTk>5D6890NF7dH(<( z^hXXCdNQhuvjX6 zQ>27+;^T-5A}~ z7P%F!;_`*An%-KhDn|RtK%qLQ9GZ8X#B)ywx2nY<&p@M&Cg;gBvnK1bY0p&Dc{w<^ zUqv0XOf9vQG`y^QkzpmH5Jn@R2jsAe7pvEt^6bv;5#&)4I4yqPBDhDO{X5>vbKS9= z#_H!Mu-K>vwNbEmf`T#Q%~VTp%c-P1PFDLPxTnu15s>$fMA$<^MVbamO1bbf z+BW9*e8?o&Hn&9gICf=0ou9< z{{Ylo{DQ1)vDOdt$NfrYy;U#3G%7xGOnxK!DlhS;`H$$E?p4S=KtIuKNW2n9C(Xar zZ3;u}Y2MG`)O^B}TF$y~)F@qL3%Q_ImgCVmhU#28l`_7!MnQ6N=$PFVQ2y@dG1ho2 zK52w%nEq-eg${R2!0b3$6Asl8bHM)q)b&`s5IJ&9Yc6>r zNpW9RhQRT=Pa)MhXP%wYxz$!K#2NaipkT1If(}n?zDh^1;WkzDTSONdwB)6cnYPQS zjoj2lM)0V)!q1YSce!svWlQdoJ}NNWoa?C?FN^Y1egae5;%NveNcM0&-|1U!e+&V? z=6D~a*4U{&(yk_YG{5>PCw|(lclir7eHe%T0N98B0GyZpt7cP+MN1Ps8Ul!NQI1KS z6M7(m2qu)ra#T}Y&1Yu+0L0vtT`A%ioA`ovME2>DnWt3mcqm+=c7+Yaaomj)Tat~^ zwMIgQM%l~-LVslUMtq9e^!LE_$?K6@ULbK&N$LhK(MvT(2a67O)iKP%(A!x*{?yaE zkz|ANTqxpVKHH+UUvH80S-ZXLhUh13O_MRvY^F_rtFb`v*x4Ihrcf^7mhODR03?)bgb9iJcpWw7NGA$&}yzz8XKZ% z37xrcmHF!2M#@m!pJZWv7ZO3{n{8BZw@4+jQ$+70}0n781R%j|Z!{D9`&U zY|J7GmPh^j(ZfM@%m69*LPW1U0g;Sd&9g7s*t#U9l1rZ;|%| zJUZA;sm>X2=9B{I;PZ9;$zA63ZbknxXA}h$)9|ks-Sx# zz~OV1f^GqkQ3r6tndfCAbHBk3&hN=a9Oug}7IF(_Lph!ZaN|5i-X&R4lo8p(u1o1e zH6gAMx;%l;MD|21ZslC=*34^g>2>sq97VKo$lh=5E%_BaYz}*iIC3Bx*r?q%XKd9K zJfbs*xbgz)WkN$tqaWeswo4ccl@YN1671H+EXVb@u=T{gj}0qgC)HB2AtbJBZ6f05 zs@Y-qT{8#8Y{=rq_qCwuerslJJ+atD5n&g*^jj{G){|(lr`>7PqGD{Fs4Y4uao}~a zbWpoj0I_%oK1#8_-Ky5Odlzb^!ZBhVND<92ofR{g#bww?aL7wl>^nskS8*yUC|J{y zeN5!q!_1~dwP?U2_MJL~!@o23_m(mIP5oA9*S*8KqwB4Shc0RdFgj@nV|fiqfwZCs zY{=WlXt7N1JE)`{Ec&46o$9+Oz;~!pNyK^O_M>q73!s|$8qTFrwkENy044#DQqIHJ zoG#{is;XjJEDmM4+b^0eIUQ4lhb4G{zNj=NMZz7K{FXU!Uz)R9#DN;7^-WCbgQO9# z=1^pJDXX@AS}53<(xT?mZ$#NVBw0E`o7JuYB0E~;W325Q!SGPD4763!J~u=F3^zRP zrm2nCnQZK%=bDZ&W`!YR`0PsCLB`c#%q}OTlc}&bv1xbW^C;6(7h)ygWCE5-KGDp< z>ZNmo{l!r(AqEQ$sbbZlwiV}F`%#F>yw8=lz@3-u}cQnG_yf2&M%+wzlfij zf%`_xq+o*Q26~c(EnjOjn#MHyK4-{uTMuo}LfK-1<~uec?&0-Q?6FZRT@YlF5uK1w$2iXJTfu)*^-S76F%HCrH-P~j2I4n zeub{Uq zq)lh}o&6PTQaVZGYs-&K0;t1=Jd=cYOSrnD2-QsmRtIQB!ebh4GrGp#*{Qo%Iflcc zd<^4hDW}{i-KQK*vX;)l7Iw*P3Rts<$b6R7bKi;wvV0C2Gk~qD%u=}>?g%-_@vIolWGi*#8 zx}he`aH)*PjjkX#XP>HR#Syq;UGD0mj+KLxl75 zIjBwU{{WJwx#DuBd%Q>vD5SAlMi+qQ-_Gh_04yIg;j5HohZDXiNjSr*sFQ`aC!kwS zu(i^W8%BWUsDK@&DL*Ao2?iHEo~ID})0!;&C(Jg=FT$W2Mm|Y{l4#_b(46NSB|0{j z6;>((8ZeHj(^$F7g5YvOIP>I-ros+gQ)Lz=_X=968urLpZ^Eq@1ZEZxU40jA3B#YN zsgdLm&@ZV`u;9L(6Yzm>oglT=6K1%1p*V1mHb!#_yJzBU4j#;A7*3u_V)Go0z+01* z1GrrL)DD@r4lgB&3{r4klG%@vLyH-{d99O2E14Vv6Ha(Syq~biY^Y)Ow8j4b!UfjD zs+O(Kr4U?;VhiZ}uATn?S&nw-8gsXz2DSBOsiBW%7O}j7+0T{Fbl|?$99|Hj+Va)* znMNJJ;OxrUTN;!_8w8P;+0s1S{{RJ3U9=^rb1MUJWY=U3x%w(P9h=%<2NQT0GbMc> z+cmHH>n8f64eZVkY;p>Uq60|R7({$89Kw=1rm!~+EMopEl2ldn?ssg~h{+-2iori> zODt5<#>PcqBcI}N@>DGLk9CO85$n{aPU&T)u4C|coEFjSn!^OIhB0o@+#@AE$rvP& z&u3&iHsSpi*cIby!(pBKB6Gv$wyk_jal$Faa{4L>E9P_(`!;4ve;VHMVRww4BkYp@_1(&?!y-06?W7TK!YvdUdr^CXPrTf@*4NX)Cji_Dv;L$$rJ4`kN}d4%MU7DcP1qspg;H zp^fqfyIjbcLiFBTfOuWa*+gW>zY2U8-PV4GH5%5p?74Ck@q=5?UE-eAP`h z&cgRFzRIKiDKsQFgT=$9YK_e;a|;R2MNJSc?QLZrYb9K{v4YWGuT<)X7-`829w&}| zK}{Q;M1*4GuOY;4Pc$9x1pff6n`WC$8{+KUjmmM_mxlo3btFt^V~exvkW$3J_TA5U z%-wxfJ~{AWzcsY#rf=0`kO*CN`LCq2mqyos(;l|bRl~CmFvrPlK(elmIaw7$fpETB zW~=2j5xBTd8N^+D%9?GM`J^rwTbo_gOH%n`mJ=Iqmms2xXiVlC#$BCdh0Wq5 zXjjxGbW+dac6bG>qkC=(%MapTS*K`?xLn_S^a`q3F$$bQ*^ebo-HkMJIppVdjcipz z=l;%JfrmViimn+9eUk?<%~0W%DRI5F#Bm=I?CbV@Ko*RgC(z`gY+8j(E-{53J`zdj z6kVHTmM~xZS=-SJI;^>sDPgp3RnyMUY}UB-RFw2iV_Ga5V2PxN{{RTxky-toNQWKy z&i?==xB2(Dw^}Ek;VZVc*4b#Q?RVNqRFFI1<-_1 zS3`f28>!33yzj|G)`H`7#)Tw@TMmIe!#simK&(2T>`0PwPdt`+sp`nU+c%reih`cb zb2~?Mck&804HH6WObRj0N7V#Wg-Cg+T>wv%!(oc+v!xEUVW>IQ!F(z87ke67 zMyh5*a7ZeyX&&bdPHC_|6rrRQ6DP$J1A5suNQ+(bR*QuEQ=w_b>{sNei>z!N(57qp zCr>zQaOKrgLf0Co$7bGVL1px2wkV8mY+0TlHCs8)FBQSr_(2O~h8Dh7{9L|{MoEge zMtRxSP*RVkq{PL27VulVj4wG1SaptmBUO*bbzr80TV(*@hD0 z?kyI~rlz?JjpvPl#>#K3O*EAxHLb~=ZljiW++RDC`ifYKT0CE z)=PW5dFlG7X{=uSPU~d^U<(uRP`BL*Frs5}3Tl_;{>WdKi~W@iGcRmT{7=mZD57=s zXx))qN9^vg1)lECm}TN|J?l36u+h$XFsE&Qq%Upk$oQmpLH$bEdnac5IM~2Be^P|? zE(}sQb5%kf)TA&lB0A+(SYtt3S~_|Ww=Ie{)#B0XbrFk4Z(qG0+rm;&op}X zaFus2?c})Sm6M*?B5r&+6;vyn>>Mg8c+8xLPMUXfjG*e9fb0rt_cf5Rz<8g?EuBK# zCRa-AgNZp0fK*Zk4#wm1RG$LbS}5I@ zgG2DPOKsCh{i1=<+gwaGRQpZLY}C${7Coj+BNIpYt)O2<_O8>YqwRYewUU7w#uono z6FGW>OJqAgZ5LoZ7lZkhDXA+Yr>LkddwJd1Tsn)OTtWK%RtKZ=BePP8Ru*KRDHAD`eN6(VeJP_OKp982y>4ilA1WM zKph*8is$($Dk^=u+~@hHJ%Gmhxcj=G*LzcI$8+V$L-j7oDKUU>pXP*nQOq`La>3Nu zK|Nbzdr89F?aKM82Qa;`VYwqUP|E6#&P!tg;Qs(MJuM~{-NZYL`FSYk+4n5KAK?!2 zT!$lN3+O?&70uHJBoiCWMBZzu!lHYKY51yYTk#8o_uMd}Q}kbE$W6(GxA<Z)dN42|ae?4cHOgNwY=Tgf${M;s450v1gb5_}g3-r*Vh9wlboMI}p1g|Mg?U56qQ zTU#zJe3TJ_Pwd>NSks2-(nP}*wc=`{q>`cxKY`pCfru@a6+0w-GiHK0On5iNNU`_cWXw?d9mP$RBgUiQ=}19P(8d%ds}y3V*!I zAK@yd7lzCWn4^(^vqk(#!L|bGs#&J(BC|o^MXz%h!sF3ejJQZ~hjEK&nSBW;!)LwR z@@VRv+T(G(&BfG*7{`28H%yTBE^Dz7Z8B0mCgFYqnuyEAAalovUixIVXKg!+Ew6>& znu@9(-a4E?zV9--M|dnksHCZmU0TfDZ_zfkg|fM=V;vdSRYKY*T+A$CZ#{qeLOS+U zM>a0YAm25#9XHl{a`7uYp#CoFdz&e#AkGUs*k|h0uN@-0Tk$j#Tlv@}sP{1-#l3R>j zOD~Bvp#>#j@nLUUDrl|2bJXUT-bt-ZYK|~-PpNhm_<5&d01KXp(Xcr9j;n^-#E}r3 z$sE*5DDEhyeiZ(R%w}OSp}4USRDsV9Jk$~RhJ9DF4P&o;8*7xwX_)Gn4`_YXyTYki zN%eNIp`o_XQnl@l7dD;UmG0I7dllO48n@F`KBCUBk?-lL^jl$)VeMl+VB!m5!BoLi z_GEan$$b)J9jDjKz~m!i@P~gjctjL&HVB)^x}Q>^G?;r{E`d_JJOq<|E9$A*@Zxau zQZo2ua1J*%Pl@ap_<9xeOK3_bF|sM|a}ynXP@J$YqK4{Ds!przF0Z5I+O4De`w@;NjF9)Qp$2m);*F#+%(c8-TTk zH1?3u7BY0V^HRw$o9ms6z|1gYereQH(wXWEvrK*i$r3Re056hcu!}uZeQ+^{)H_64 z#+PScFUSQH*vDe#jW7KZyymm}{xU-nIh6N5%$D=(_gJB`jfv*ekF3qWZ1b5O@c zBj3fq?lngR4KQ?XcWbJKIO9K5bK+|(%sK@-DldTNCBsS3srG<=8X0HD?=azDwzj>l zw%FOPXJrggp9@5z5N}(RUl=*or1J7ijAH}F zata4_nDQ-PvXneMfL`}fhZYlJrF-!?*Hb!6Ucp5?c;Bazgv47ONIk^iRdUn_sp2j? z$!RMa%>V_ToR?ruJ5yp~IZt}nac*sk*`b0KYx7b&OM?1EBDqiAohnvs<+^EbMQ zxUm3in8|V(75pkQsR$ z^iWQCUJ7^Bm~Zev1jdCEJ>=(P!F4pQ<0Sbisq9Y!eDzR3GHuUNgHUUg+i|=Thy@$D zD4e2Eeiab+LSW>Yf)9#0R~4p?#%RCLWCIUgq7IacQmwKGCese_BqXbB0JyQvUzW4CycugyF;_j zK8mXo20TsBW}TA@3p$lAji)2kO3bfyHi$4t*&m&*IV}8nDVT8!Th(nENiNwmJ$P2o zYb+jfBxL2a+SXakjlBj}_^Pr&l3quUx5n!c9i$Pz)F0%jt^WXWVxrIg0LH_AF>;U!6UlF@NOQJUIrLLP_jb@0;XJ_~ zss=`g%Sh(q%h5yGhPFcUZmZf@Dw8`yO^M5*mC_cw6RpTxg|w^x0D>xZUG5FJw?ID; zTSfeBbhdkZ4b*hkB*>l(V}Z7oIs9^4K9(>J5Y`JdqnAarD-KURpDs&kv4yY1_)j8E zNWJZC!*8Qq{FPU441fT@;C#xGdN?Kxdm1lwC)K2$Cx+Z+4ym*3_}tGHn0(bJr)D@~ zFSilH&1~sBFm7OE)u zrks#^#mO7oU8ksBltL*d;%`+)7Ym=7nqYf9I;m!MZZ0KN&1^#e{M9@fHs`5LYHL(& z8lil%O_i29s~;`F%|g6d*9NKzco+nw!K}FR1E1uoT@2lX*fCkYe+2n(Fvewbv;b8W>H4l-ruEg9eEXGZ_J%kXs8`=YE%4 zUKzU>xcG9K_+vlOeITHck-eL0W}g?ahVFB1%$r)pS5j3?1k~k{M(i(PBZTX0l|!W* z2I{&OGq%MUEyg%VxIFz9(TSnC7Wp>HY*)_5ss)1C{)+f}Nj2n|9rdzi5bQ$Ans>$? zE)SBYjto#h_xUxY$MU*2AhE;9iyxAU>yeT!1FwXe18z%f?JLcvhFOBVHobb5cHCyp}jEKrB$Y%g>2RZIi6rgmQY z2)D}XXr4pC)dd1&KTR`fASt_v`{iOUd`OV zGf~R-2Avj5BDjy;-t%yqiq9FS+}upnNgM7mAx#UNagk1$j`LDQCG4?SFD~ob;R`J@ zQ%LL~q^v=%oc{o&QPD?`Yd}}vi$66y?z^0t%}Tb3?oK5Vt(i=Gt;ktAl6Yl|TK*;d zpBdK5K+;Z%wZ7GnFvjDd)kSREgr)(iV|l4aQa#=+!UtelAAjn9ze zBV$d~OfHeG;d2d~!t5od%qosNi?Fujv|huh=&GfD1_J!;re$o(S4SNDa$*6^X}`mV znuxR*DOm$^0mR!+T<)vsDry@QTUz#H;>Y3#(%O|rSk_0hXv5#bX&Nv|ZFy?Gj>`=_ zNu}VKw~5jhL5t$v6|%N%FJ#e63j@P|GxnLZ-u4Y!AU;Z&s$!Y;#est-JLAbUqWmCo z78VMcQ!&QVg_&DYN%HW35s`(>V_F7(@15?u7EEN?E_2BZ9i_m;d5df4si@z9mz~%+ zo^CI1!*yEbz0MIhYS!VkzC702sg~v#qK((ZB)N?>79%B5MUbwI&;J0>zy~bzDz>cI z)dZ2uHQ99es^*Z=OGdWzQ#9j}OwavhnA3h2AA+du0AL6Bb^TV>lZHM4{373?+ELNF z>lJRZzG_#zp4i)Zyc~^8>`+@~S4w9aK|?MEsiWhoR`4%XCpyN1kA+IY}cMPm%sbPxXd}Pwctn zXDDgnYZ$=Rv}6Jb2wHO&PP>4T-xc+j*Kyv`H~#>N$z)d--Q$JWT%&WiNLaEeGn$5^ zxD^8fnp?uDq`m=$`W0D6J}U>es8O<9J;tt?EXqijA5J^-#ff$C*`? zPPrz_3C%FMtsKZ7nr%F>2EO6#x+OUBN1_cnDu+!CJU%Cz1yMz|eyb$G_-%^Zm7s&n z-9DlwGv>XMZiG<=g@=-?EIpir6}4rmJ)sgcqWAMu^zCeN90&R-Dq0`zoex#mvhFud zZ9|&Vp1GIBRS29Uc` zlU(9XRu{VZj?Flsb0u-|&p%S$ITWWAmv@<5y20G`=6joNxAJ>w1a)itcSb<=|} zWn{-@se`1DF|B*g6M*7B6|uH~4ymJxLxIc$jKFre{1(aC%&BA%oD;VT+VhAO^v!I# zs^-fH`lAIojIsfO?&R-+*wIASRMgbIpc{uV_yZ5{*;mnRYKW>H?030%H^dH(`7N%< zBAn4k_+|sLe0+N4VjFXHUMIw5nUZ*;WQ==VAaCKmXQJ8@(^AnoIb>xq;R7d(cgp@n zSH$8ZbHU|{B2`m>Z)umRuc)PA4Rf&)TVvuEw^g($wt1D)nA{1)5y`yyR9365I7unO&z6l32Vs9TdzY z5<)k%&HU7Y-;yo0zg1O9P$Z1o%K3b6s9QH{HPs?0-E2LqZU8-;vUf4is=bp)`l?!Y z7{~1+BNwN^Z22VYDu>mD_%EAV@#u>KUdIP9+1wj~nJaD(3O=a4whmPj+_t6d{{Y;! z#E%VYqko<(Dm{%Hp4rk#C9$4abPFYsTwiy*_Dq@lPEfI>!N<^*#8rDeq;~XG;iK5Q z&dI{pY53%sCauv$Jx(CN1AXqOg<+b{g;!R|XxL9zatfN52g}Cc*H4n7qG1??$0b!% z;uuR>xwxpf5)-=K$%ezssb9A$ zsxt-iJ>LRyQ`S<&i#!RG^4?CWy0Ty+VeGp907WEhu@@>yLJW2n1x;-%N#voLue5tw z`&!)vlyMHKo;o<}K#|U{^tNZMp9TXx9L#>Z+E2Gpd6cqeR^>C?<| zR(1Iu!Ocakw(E}jsrTF4srNtXaNACjt2!gAY=5P0R&%Suk@$Br#^T zMRbwLJtT5IH(U}k{{ZPg#x<;CSQ;z<76CBppF+Nm)HSRPHkgnBA}ug>Pz{{UtnnAwAjJE1yZTWTpHiXEpHVPIr9G+4XfDmd=)XZDN}Ny@{~6Z$BlntHWb`J1M3YFJ-Vj*FNv_ zRn(2gaQ0u9<&uz#gMN3{;+#dBdk(4Eby?g##AkIgL(Txgfyp`8nGQ->pNa1!HL6(?$;~<3lY_Aq-z3;}fy;!uFrpw3HOwQ)NXv5F zc;vz^aOj;5+whDo(2W%lhSCshG*lJ)Tya_^=Hb`LP*TDGunK|)*uAQm>;;bm6vx~3 zPIndF8dD(}s9}hlSp@lHk;U1cJqJYTTuE}0OJORvV%HAPAFIfC{Jhk45I2h9!r-FU z5O-o1Ry(dc*&OYbt87!(GHG7#!pC_itEuCBZuW;FG|hj*V}2mLZ{rD~d20MT-#4QU3) zLJA;ol1ewu_Of9&##d(CLCRKuTt%*fMo8NC&!WW3t0tkUX%@BC%&UR$&r1xEzr@!x z8?B2+QrY5z3)(Eva$3$@AnA4VX1b;GVVWF9?rcs0r}AG%zOObKs=RLSJh{9cR<(+g z{vV1Rsfw>$4qy>_Ur?ugIr{F>ESm@|5ik}s^mZ*#v|YZ|xyS7q*sRjq=rh!&P#C~w;!U~q6wZhj1Q9B5%z8X{BM%l5;wK4fIgYc zdjtYkG3{_TadOhirSh}>84dT5IN>JI zw78Ht<;hw$w~)=I)-L!dBsa3RBnS#v2+WR(OeXEqP^&44FiPfMQONp@6(r4z>r8x7 z5APYJ`q@)e!r7_n86g_sKd4Nqn3-N&LCL2?8l#!Ec(~}PDOeaSeobipO161~kA4R7 zVE$^&-G93X;d6=5DP19QDWwbQoaY9#T%Jp4MTOEyfxm}Rve82;Eh9seQe47pe+t^d zqY$dc7vqn`{{SglS7W~%HCW4i*Eb8lC086>ob>Jo@eI`^bF-;6jF$4VSPK!n8ruY^G;=B$k3a#`mWv{#Q2-0;mjtd;eHKEN{CQK`+L8bRUNQr zZ0t8wa8lkmtm`Vry#D}e^a`cV#AGFHs@DMx@Qq){DKIhhGC9uV3Wl0JQ(DLI*aam) zIpxSAZ-}X-Cj)M+C7jn{{FPm^j_vbNV)}%Su^+R)=!DRR4Mw}{Z@BlaQ!5*T4f-gl zso2RwUR!%*rOoa0S>(0JJ}}-pgRdnQV;PHq<6Co1a|nJ;zr{w#*mJUGx5%d4AIUYq zpZjdKy>4+8FHTmlqLt-2VU(&1^p2SF&n|%Z6AS1-kOlY+0fH%Pi4KZJBl3=520^ zW7bU<)iBVpt+Vhm5r3Y1)eLdfy}Lqt06woBgNu(mRv)6N+4UWa?0irBFBU4kh=V;W z(B*O3G0e;2q;o7Hd2rRB8{4X`hv^L%?3@`sCZ3kVj_9?(gJKh;0CQVK&J1G%T6J~v zRPhV@$5$Onr>14z@T+QHiw9>PE9zG({n!TFoRg}b*~j1<&>MoQtCrC>E^aynPew1} zlkuJ5qU7b(Q&2$m#QrTWx|XUuGeXG+M+>coQ;G08N@sa-x8zpar@Nwwl`ZQT;{O1Y zt)WXPV3vA!x81p6Urgz(*=;vGba=$RlTQ>asg{fD5=36u3tZAb>g(loup+B8`)}y< zl+zAwh&&P1u5O`!`gyd)sq4f}KJGu{^|dJ|ne{itQ-EaB>=z%Js(H>@n6HzY7ILn_T_d5vH97BrewW;UC5L}Z^sjDm0NThOhQF42mu zv37E>5q9Ou+Gw4hwdMJyHGsY6ACbuxI|QExbxm@HNn0np(~($Mw%pa&;(Tn6_^y8> z_?zt>*B_E&^gnZ_i&tmRDvFa~!o*tL#Z4`rQNZ89%&6jwHH`tIKsUil8FY^b3`~vR z0IF)_E_;^Cs$e2)H|ze$J-C|SLFP9FMOz*Uh$EDL5YOheerA?e#D5F8nzpkUiT5sN zf=KlW8RHZ?ZVu6-Hcf2X=j66$WM^gT`%@TeiHwZ(&!4KQqRv=@ zm`#MO@So^Z)wNxmOv?GX+A1nGG0lm+r#TN3zI>E4RO3Nlv69HqU^(62kVejNkypBI z09-tkE+&cCT2&28eT(rd9FqsSqO5-mU=PJ*vEah?MTPxuuc~}37#VvZELaLHByPkN zk9!MlgF+`YIW22iZbFm70nJTfFRDCVso7`EJ)ncC2l}im;ZD8JG;d@`x@ZR6)q=Ur z9>@#c%0hA}*()7YIEA3FU#~PfM+V&7l&Y=!NqEo{{RtqZ862v@*b+5 zlFxS>pNR7GLfh$RBRoRtdWX5Oxk)R_p5jjJrA*<5XDW!WhnEjRsOp$8xI6MHf~0WE zW6FQ=WNwR&ak4W_F3K+<}7+C*xufn4qnm?ZRXCS$x<%03#6Q_rY|XapQUNE{Fqc~3<7(Q`R@YG0I60C? z{s#-T&OEQkt(rDuZh@dS*^Y%%QpR|KtE_ndki{G#*Uze$G>G+6&p2%Db*`yh5G-fR zDhiL za%)aYI|LQgiY~pA`KM&wNZmWIbBplhkWXxb4yt_$k(t?Drs!s{qW)^bb{8w6qaws8 z%Q6VGSpz2EtaVP1_^cD*jNo>Ot%$f49L#<(pEXG?wl-3-dqmB7@>R6iOJjVl6I#aR zv1o3a%?CAIG^P$|g;=hAtReL=hO?(KsVJZk!4p`~&~J{Fgt(}o zW0=m#0d0yJwz`^Q6P)2-4oXHmP<fn@ z+be!A{*=2WdTHtE-%&v$z+=Y|W-oQ#T?&(FeIllkA(QF{{{Ys^)dg!J@WojZz-KFh zZSq1bp3_Ajf>6-cpLPCj{;H}Or26~)qZ~nP^eK_Yh9RPjV9hzLxlTsprU^yUWftU&&~|Np8)%&bPU1KIiljx2&fz0Y ze-+tO@iyQos^Bla3;1rO`nzIr4$C(o1RWg){)_3A2accX z4IJ8TtE=CH?Ae=d6Pz%C^G$nrnyII|nZoZSG&jW^$50d}l8^8xkGK>=+zJuyCNy|L zVAY{UnujEJ%~2?1O~m4(rS_8XN%|l+SwTw^iE_t|Ha$x`h0b!m^5*~sWbVs(3aSIa zAqu{p*xiXh;Lz!9X`=L*km{~Ni^^HI^Zfjtwm?t zUd68-COl|DmPnrj{{XdT1f35@4EP+-t1=sm*IEvQq;chDw;uOMhc{-H)M8I zlr-3>>3d&A^owoEdv`h*iSUh9%%Og5yZXCTQrQ~zJ%OG}EC9hkKEL-%MMfPTiN?W8 zv`eO|c0BSNl@zqEV_;?NmnF4nW+qui9zYxJ?PD!=p%%K^gV<4PmG#$n?CiFK4cQRv z+U+%QI**0a&k;-Em8Id$=YK_7>aW>i4nHqM`}0^rjmd{cXoak}P_i18i*O0Jtz<9U zD?Q*LWb{r*1UCS&Z)PiBHN*fb3o{$D-G$dEphub)1CkAl1jou9Z57}hR(3`20{2kC z9hx=Fpyu5_89+1wfCv?u1vU97yE1imBB3}~@*3~ga4D_OZ)3%Xx~H1%kAcdrn)u_m z{6RFKxGSSt(l7|v2KKSHB|%8XaVhFv=C#T4I_^En zikVu-qc3sf0*)LLRLbt#kQz7r(B0R5Tbwj1zMPB`IaNYHl>AjB%@>pAsOJNTMEx8$ z0;6~!v=v1tjn9a7k%Ai_$<{oss%W;9RdBzy>|%2n8;>LAtDf4LZKY4x%NQNj zh*WXKXSWl&^HlF<30fp?ELx9>o|)L`Y6$)Z<`sNZPJq+)Phl8|%n*5xCE8Q5?vbvz z)GB!+iWa*Q@q=NSsDhB0GQ@9gh$C#1B5mIL0nDm7YdbbR=k-l|VZ(j%2(;v`5E+#u z6!AJQdH(<}c~VsIMsLMqo@^=;+Fhg^MZ|03U6D2x>amb5qPe~FPxnHsf->>PYN>> z2tmoYt|SRWjDpo!ST8jhirm%8jj`i)yp@W?78-}e@%gTZqqw7VaI6(^n_kZSRmXjg z975`vYq~B6eoC&D-qJk35Yuq!yCgawpEQAtW+GG#!uiH0enB!efCl)WVI-zP$A&*O zQ&}sxjgcpC-CeZi0yf!z@jX#&=m3ele)GpIMynF~n$j{MOBAvtK($ zK`WNcr8i_F7veden#&}}*j)Dj2Q>(nv89dE$>bGukapWfrvrW1+NYLGQSipo;=kyj zmq~HkBkHVfG&`;pio)a^+b0NM!~Nfgb?B<;KCe3?W*Ko~#BF?5vHprj$4e_^1htN1 z!-bsU%#XorlPF^*57UD(M!iP7P_!KCMg>V^t_&+9mzTYN`Lro~YO>I;Dl zyI3)1IjLJDGWPf(0GE!ct=ADq>zy;vZKufAnv&Z)Qf{u?pM14Wk@8{|!foohE32uh zCuEVyhpKdNv>eD9p=8uRo)3jIYm&a{D<`|_=Is9f!^u)?IzM4X=M(rEPtAQH z+SB%qj>DEd5ET~Ag7vkoH~#5{!2bX=_f_7KlMGrrmB;l=bXFx;?hXqJmnGWmp29T|c6A6+m&eVE~8`C;XMCG~c8*f{NkWu?_cUfY6uv6x?c@@^00k(KmOm1_5@dDH6RaVmWLCpjX6X=-wP{tBx zZSgwRzxyUKH!$Su^Gued%o1IVi~;JQf}UwOa=EqF)&?1vVK&P8I4A?eVdCdRESgh7 zhMCd!hQY_xaJ1W02}f~RDoIqQEQqt4J8*g~vmb_efsK_p*lL7oE zHmcfr10{jM$4-S}v!?kd<7faNH!?QnR5Z`JSJ+%gcWsmnv0NL23)4}Fy^;920Pq!|;nBeu3vt>W}&5RA!&Ef=(lr zib&i6BVAPT0R&iaTT<<8rjnLG?`1my{FOxXYYusMzn1!k<8hU2}DZJYy# znrn2^b(C-81+3{-NbEmefL#W(gSQP>ZqvV4H4M&Okft#RP7A%iYwRCw_lQbU55>b*8IQUyL3@k3f<$}dvqi!`ey>!UGr1N zgi3CxXScPnP)Y@yqkl9Hb7j@vw5Dz^#NHQt!gz6YHBHChlm7tp7T?)VzqN^@o~%DC zl|{$aDcdEz=44jPsu@dw{uwex*&>1t7F#{<4{Uvt#(1OQ{{Un_!sCB6V}3_6Ws9YLz1FB=%2sazD-NF!AB0Iz@ ztSA&W0EN$zgpdP)C?4gCJUDr-%4W^)429HFz|zypF}^9Hb0lDMU8pPRF2tSBqN<9f zndkO3Sz-SG`5XMzbYJ(~jZ+Y}?IE>8Klbr{OJmm(Agqbb8nX6y^=Zuxip4w~6Hx9o zfkRHicPBp+TK@omQ`9_{IUVnj!L1i1K1?#sKhmIrFu=epIVO!AlA3baDz4aoz6}ZW z=%8j2#w;vxg&ny-R1VhO&Pmf zLfTZsT2h~IB`S)d)|WL4z~W4IG&`FnsFxUfH=lYwANEy1dkLE;{4U@>(QUn$;L>J` z$=ZJ~QMheP7yc&XwtZEw%-mmv*%aa7Huz+n&2tH_k2F~A*&@f`>*4;2#5D66D0Yl^ z+h)uLPW)a@Q$Z|^bVaUiSWcteL_6u{GE zpt5Pma#)rc+KN65Kf1M*HWYiLK1obx=zt7P&(ZH+Z^W7dnflMN;=T z-G`T&Y`87RCc`NYcL`LkI@v`19l5V*YlXqoDK>5VPN(^p{{Y!+O|2cJf*Ow}G!j3W z>@%R+b#&jrU)wYOS#M$JzLnCS`@JoDI-|O4^)m>gfzEm5sQB4KOyE=9Z8MI)kFwGv?ULF6zVlim#72q!NyUg#3!z zJ3dS}p5Neo?fIyj>rYNW{7h6eAa*k`*tuv?jod*tSonEv$p^6lS_^oXf9R~NQ(uPT zJ8-#sK^`4)$XzqEb8ayLKvs2*O8IkD6>~N?{7(Fo^s=>*<%nEZpay6MINe-ps$(?g zsyv*o>p97|4ZYBw@aub_Z1%o3aleFS9!6>!T2_5o#2s8U{K}GPalG82e2uQL3*C7p zSvM=4#><+~G3nWPDynjL?$gOd+PUx3qN#+LA)J=CKvhL{Ja)5GEY-nN5NzOVsZCHA z>@8&*CBjZt)iObQpgE>kW`gV~xK3(pI7_+NQ}!*+=EP|U#QKH&>lFnC41HvprF zrtY!~4h(Xrt9jx!M52!KQ&|*!N{XJ6HUr2it)VU$uGq(k=Ry5SrJ;)iWBktMlm)$a3>lu-G}|k2Omr zv70JsfWs&$j!iwtW@ZT(*SDjE!r9YY#OFfqEZg!cYtx&s30gl1{!41ozXP0d)vp(~ z%{HO{;o=@3t}zYg#5D*BFrIoNQ%z?0hHX>BDIk`(XmnN1B=(0}=bmZyJ*!+D$c;WX zS)B4y)60p63F@V+5#kxKwg*KaJ^~Yrd_*RU{{S>GYm#N{)eK||mBzoMy(*tm-)%N2@&u(X$5!7=h$>SvqZB;vsT0OI`-Dw(hlTg7Be^HMRl zx|%3UFXR<-10;L=)op8A7#3+ZC(&VuHLe)1nr;T+KC1(@Snr;K>cOJ=Atn+Lke7Ae zZP*>u9YS+JdmWO`41q-;$;zC~+Of7LRoUsitO^=-o4GmogJ1AdR7gvYewL%_)6_&B z!)7!%W!CFwcK41~c6{SG{%Nd?HLbwWkjmdB#n1(O{z{&bBP^}~qeS^!_C)R;idu)4 zJ=Z((-hRVBvdg-6$jrlvuBUaw&&^dwVE1L_sOGjeVJe(a{pj%?FyLHiw_KhB^8*Ft=s9}2>$INv?=Or6~$y-2~O$5Qzamx32T>Qg6 z3am+R(9wSg(Nr|%)Eq44*)rPY(PUNc=A+N~q0|I#nO3%6nhwY{3-U}H+7x6CAbkpD zvgCpm(Q-hX^iY#xu(%c-@;W!W@TRPj%e77#r(&`r2M=7el+JdZRBb3@1g zsVE@Gf_f^d*!y?r`zyD2dq^qtv*n@^Fev8*>;OCUPGg88L=#4#Vm=ie{3Dx&wgnM@U94cg}|q0HXiN?60apNLqebGm46yrOOR9JumfvZb}0 zNIr@ukVEpa4r_y4Y#NyH%?7(Q=B6i0q7{J$R9N6bGDb%`tF9HrbmZ%t_Ye@W7gjba zu&s6ULG1@{88ummoPfG6TqAtjWr#aF+ftb8=9)ApJ0hENm_rSd znu@y30jeC6i<2}?5ditTN(u+2W>jXKHbbncGhxt{Eh1Mj(aEVJ(rq+_yiRj?6foV?XsX3vuTs)Aby9fYbG z?Sginii!U6X+ygdx!T1&ha~3eKFA^89l(NWYHvh3CUi~cnb9!vK@@tYbxsNB?zbcm z-VomT9inSFAUCmtRZUI}!%NT;cB&n17gJ?r;B|HJ?&5CH%J0s;a80s{d60|5X4 z0096IAu&Nw5MgnVfuSI=!O`LH@i70|00;pA00BP`S0>3}nnsy{_Z^%WaPX(pYNrt6 zX?7Bo(#rL@WBhh&K@D`@U}qkCCnC77aAy)GmtFzlFiOnWDI zox%^2HQ5zylCLu6tC-1C!3T1M;$C$LGEC6xfk(%=+1v2Fcs`(SEDV>4Xk1$taA=Te zaIYo|GCSf3EzL$*(GV8f1|&olL1d(%tjaD9CmvK@lo-H;iBJHd*m;N@KFa*tZYt&pi1Z~#{dnD(+2Z257GH5=(_pY@wXxnh0Fx3f38b2^0icKis5yLZ)U!Qn|z(LDMJP z3ApocI$d!VB`KD3mU20i3u2~AFJt{80#kwk!ovAs7&=b;KsPEOBb1!vcJYs!A#$WK z%n6fI6DYcdQzl4sK=62Qlx{n5ytKp z+(bG9qBJaAK#PQ*0fxw7^((AL8E|4W7NwaImr-O~Fh@9>$1rLZD#k6@Dlgj;|i&$?o?HNex{?zlwH4DS@-$mWMt81jMNi2Bp_6A?#E;9y}(zoN=h&Lajeit_T~cn+kyp&y6QFiD_(AE+|;d z;e&W$1QSrUdq(C6SIC%ueahIx$8i(W9TM4U%H9)ts=$EoVfz=Pz^an%bWpr$6G zF27R)5dtx41c`#3#KOcYxJI4JSwsUZccxKmdzZ`01?;FVD7F6p;E6BnLIWr!02rg0 zsssp#5yY|yDdAXA2)ghWnHli~Q!_9!&jUnALsI6^6u5jrfMR9vPZungE-^e9V2Z@} zo+?U|@O-+)Uo`NF4sI6V7)S7_%SgDQDUk$bJsD6CbE}ObL{iFnoOJ8UnSw(Sr&E(B zG=w!%p%17-1gB6PN2&bRI`iQ0xRrprSWa-3 z^9=e#G(^!8xFxz7b1q=a8F31S5rMg-XJnnpiy4B&XDHJk^@IzOPFM*2py^0(0aXL2P>{etbt%__HGqeOk%e&K%mIPgH1?dN&8VF~ zcv-Il72(nrsyg*3O;_PxS1wrF1PCHma0&jSATVr%?Qtw%!A-(#7>-&xJ4XW-Sfiby z_ZJzIUMs-o;nHm!;o>I=LE{c(BD*35alE>TT9%ODM2ev2#P>ar*=Lu(obg<_aAo)} zi-Y_wEV#Z`&tYSN%f52M@MfhH*p0!@GY;aw!T@Rl^$o!apy+_=bfr3lYY>nSf{=m& z2Zc&RN=lUyCx`@Mz=uc%Fi@c|5Sn;m%#oU9?TC)H_)9AWK%!g_&hHS^4Sh!<1_cLL z`GhSsG4g?2gm`;A4cT`syUmv?E9EX2gtw0f@5{k0Wuv)@65bvH7)Z4k2zM>=FcQ#6 zEY!W!z<2`8vHLc&!zqMCC#WcF52!e*L_gvlFdsA45Ygp2$Q z2s{-KjH|;`TGUcJL#q=AAU6+DF-BhW#KVTjPDrE$fjOEe@DVtMEN^Et8RlGZdieDJ~p3 zW8XCl`I+eL7*1~!3X`i6FAERMZ!y0K<(DZbE8wy6pAbs2ktjK+(;SeH3Wz0TWlEZe zB_J2cNTj3;tVAI};ma(+l8k1e8jeE3%q+xQh=~IeW){y2#1#yoiVS=$KpTbJekHD0 zSeA)%4~Z)@Wr8DI%xq4S)_|=_^$WEV)EEWFN_8RDpkRCt5I>ub#a3k(P=p4Hf{Yd^ zl2}!y#vgDkBKf&2rB#SY8d1ZwR80!@$KWL^QXV0PIdRmqMGRsQScY)|N_8vL1brf9KY%EeF)V^ggi0`w z@+@;ZGe0m_Qj0U;TCt08;I}m~MUK&yX^o^XCgrYR*5Wr!$JoplOaTROYr-tDHCvae z;k*(iCSwl)?}Fx69^xB?lF;^rfW(Y2@grY=jHpSH^As*$47_Z)M5~ynj8iehgan3d z32`OI!J0lYC}xvcUmGT&KL}1zwWx?eE|HQ=yd}ddxOY)g7YlJfgbeh+97YRLlphL2 zjJabUB}*k@JAy(b?mlRObp8o)j=1)Q!>S_cT--5SqQFJCxnvYIFKaUbsQ@KlKr1kk z1l*v*9K*Ycyvm$0#m|l2i;CHo8;)GWw-J{`zcG)%o+|Keczr%??viKJz?Eo-2ZWS( zvc5>BF9{|Q@|kmlIY%!N2_*2QJ`~E{zl%Nz>EKAi;SDgDyrd_bv-xERbuE~XfW zGgJhKkBN#+reDYC5iN-^$1e(ao@JHd?}EnVid4zhg|%h0<+@@H3Nbd;txr1)7>W=Rq9Yu$BmxY<;A&r+mo8kneisH`{{Vvse+Dw5 zN{IwMK#-`SBJq9~FT>%L_kQ+M0Jz!|M{#AZfvA#@&(U*HPm~*F_+J=z{WFpF!<=7~ z!3cDpmT>3pIM5%cg?mb}D@iFSaTO|X#O6K1u-L?lt{Byehlk=AV_R<%onbBN4U&&C zkm!^T8Ha^R@lu%i2p$y(c&PYEQ1BiamEryiC?Vs0u!A_auj6h6um1oV@_4zKaPWA4 zns|Ive}EEy08hg%T)BQO5uBfFyx|DStKc9cWpNGw7OERwgNcU~PYgBwO+jO^gSavO{>4LZ@UCsQr&*%nsd#nU_YS0an6ohDA*btHNR8 z=ROY!pB7@kiR2|lSBiuX5~CRZ04qzzim;_J(^9@XLLvMC;r>VS7&82VNWb95K58`( z@UpSiqX2})Q343~CB>HjO_6?Jh1k9{%6A0Y4_KUNeQlbxn|8tAm6!!eKt;@>LLr=? z&LW1$*g=iWkcb5|~;TAeF9RFs<$b)g~c)(mNoeVo z;x+ILJ_wKk8;dGLx z5iiLv!1Ax+k5L$pjSaKiDNqPwyrD)f#(Yx~#Lg1K{2)f)oXYnQa~tYd!ovI_ zeJsPAazp`k{{W12?)HA;r9-n2hY4Tj#Y8l3z`ZuW5zKb`6Pvd0wh|C&+;x`39^3@E zObrJq8oBDU-^4(mjyG$mMVY1CI0hUHGa9(C^nn$!EO9xxtQk%fYQ}ORg(^a+j^MAv zpn(8jhupGU97Dk}{tJUHIi$ETixD3rmJIv_g5~NrBJlEK6?lwd@Bk&SwTv=8DiKG+ zUmD6ofbnAhi_VlAg`5?{vnvJ*u*6FxDhZDnmW0eaBnB|}2qKY&A2~xl;iMeHF>W6M z;%jt2w9%F*#Q1|M0ik{_1;FrSB`O%(V#F}50ys*<;M~A;2EHIb7>tC_!<0458Um=q zN?Hz1t|e_+Qy2>vdvHJn2-k(N)K_0s3P06L*XoAl*oScRa7?@7vCj{HiW$K?7y$tx zDluaN7$Ak=eoN#{H<>1pq!Tewflx$?0R+kpt+cKL0oueAACv>L8dinW1YbFD(RLhf$PR$HK>CT8!&X@TxDr4 z)ZveJEM*nrGX4S(BO}0utX>OjIPN5yeC6NrfIOM~FIE?y2R{P~xt}ues}5g6Tww7~CGeTm{l>6uTL%rxs0x|fM<`G{ zpb5)qkBuYD*G!>azoKZ(UjbtH7%+TaxpMp#F#iA(-rUWx zUB?1iIZeI-G?g!Zf^!K8EQ@gw#7_{&ZB7~kWM#{g zhe6(A>eNmfQEBwQxuZG5xsL(hjre7;V&*9P;T}oYO|vs=0uUmihSuCtycRfP8c;~# z2;yOa&L^$}a{(PdHI#8N%P?iZ^1;`r8e$$Gm`ewWs0nojR0&Vw)VXB2a^m<|a{LLw zGB7#eEe{wr;Z2E3*BWdIX>4ZMr<1Rjz651Lss+k;Cy7)Y5M;uZgnKg>Day*crMpGN znO8OQr!nx;aeTogsH{wH5u8UgG~~Cn_=q+nY>Qa2M8pWY{VO$x4B4AXgg=WI>ObKz z1DJiW?1S(&2oNAZi3j9c;flrJjlrBlBdt1+Bq2#p0hYr&O7#IL2B69-!GQj6@CaFP zW%wCzcz*J6P(C73>o69~DwAeGrrfzzd=61Tfr=qDmlUdHV$tLXAfh24--)77+@L^Z z?fA@uLrl@Bs#9deDis&wx>_@aM{@<{4I54}aD=jjmK`OJWetZY9{&KNHG>R0n@aE= z2K=$`abbW}#dL|a3Uu7L5{8pp-IS6;bQtl!n_#vQjCbN_< zMDTbY!F(?$a@8hJ2R#u;it1$gbKJz0hE%9v%)!2;OQ9Aoiid#9gdYPh%M}Zk2M{HH z6~ZoDxpLyhEV#nhEL^-pY`A`*5T*8E4~#3)er34S@Jlxd$HCNMe+;nCd@Al}%(y-w zQ#VsRu#uen1nw^i;ylxtrVVZiL5!HZREhAcK=D%)7D4Hnbr-{GJXx66HSivgJQ=|v z`HsuBpp73BnEwC*R7l1QOi@HowFIm z3_`^=zr1T{qUUrVSK*gh2QXoVJ}bp|d>FB*h!xl|;6zR(iby6=3Wy?_9|@QcAZ7x5 ziE8X3UBj6=5*H>s2%yWD@UUa#V8tbq5SXcPW4JQ>6qha6prYK=9zg7LMVem(Hrjl^ODZ)=)GHE48p{Dz z0}a9FD*gdWnTLaWgb+qCo0s7DI%L(f2*-s&ZbTJRC<88!w8|&I%HWK%m_t-7BE@B~ zHQ_kj_}>o{dyY{tpPl1))r0VT>Fi7q%TsEP=WGmW`OJLn1r&i7G?ZF{`wq!%ubq@$ zU4fV*@K2klfh!jLQDs6nhk(gKCLtn(OBH?s7#s-w_&;nM?y4{;rYUKuvl2hV#xakB ziXskws}lUp(Q~=jo0kE+VE$l(Fu=@Vi%HE(Bwv+=j@Xv%OgV|e9^xHGtnLB4++)Cy zrd$lmuLZ6A`=us3;A%xx<1r%Q zEK%ceYsKvIjKd}O6|AU8{l|>9Ahl>WDU_p(dQOjUpHYDQtS~?tl|UXEAP@kx#wPcN zBTj@P#A0h4P=mm-*x>;J1`N2dQqffx3-b$e1}z!~zrrw1>g9OCmkEEA0L?%*TLcd+-=?cq=hj^p>XDj`2-Su1tD(Ek;JaKNC1AJSqgDEVy`DBq89+ zwh(E!X9p2w&N8N4E)}R3iUF|%a3YPjsH;dZb!98&I=Yn^g_xJAWYlwI45E8s!0*A| zz~cAdBft}JaOM2RZXRc{E>hEnYSt-*;C(_k01$zQL;#c#Q;lrcreezwRKV)LQHO_w zxZdX^8Myd)n3PZb23RqO&Uf%=itpyaB;xmEebVJ0>_ztWLs4-b3YQ8(4-1EaiOdwl z+)PCO0KziE?!b9^Ovhxiwa>X=cp)DTm&hT^ZyScMME#Hph?|t^230L*OZVU?7Y%AT zslY=Nikmb-(F>gkS2UGHN7Prq;xe%Z#YC5031yM1n5dwk)|s@1ro1xGV-K-_p>|#g z2bi;Z_be@eM7m0bqB}y&E-qL=${3_+l4T5{LMa`*&vP?5g$@O?B`o*L<17gUu-II6 zFn1^Y5P=90id0A*iD=ZZ0WZNESip-87A3_RVC75U;^Dbk0Dv_sN17oTJxWn7Gk!4; za{Z%~IX5a2yf2xSTwuh<32b^C(@+|2mlqnL{3Dr1b6iQz;|N9`82K?vUy6H6=*+4B zd35%6J*Xn2ajA#MR@0Z@kAuxJKz zBr%Ii5mF`0ebE(GtMd|GZ943+_>aKI3`$vn7l6#PSite)G>^CNBBp1F+z7W7jj>J2 zB{5_{ICYqyb=+T$f`vm5FA61@V8+xA zj6Y-nSm??k7(16A3-GbO2KZV%!I*XZQ5#?C6A+f7v0u1w66t~)g9pnP#y`V+AwJ6g z04CV-2&7@{2m3HoT8U7J)P*d~C*3tdRpgaC#mx9FTw{M0GWbS0ljX$DI4+QX8gphW zXhiDPCYX`38;Yh0p91J2>}D&W&ZYQJn3ule5EWMj1j!VMXA10%#LF+ z@lSxgN(&Ek!KJ?8gq8xc3kEPI*>#u`83BqVVTHaGL=3WsBuSY-!8vGS>^LmsAq#Qw z-y%RptU_$zq2==(>OL0S7ci*m0=!HSVftkz?tPe4-bh2b?fZ;utg|s?#d)b;z{kP) zRrjs*%=pKr$(!|O4M$elywc-I-nuCb31}O-N=2((pj%*mx0TwrK zT+1B5y|Tv;Z^P+_qysS^xa`o(6g4oAAwZRJryPdbvmT;uw;ezQ_QZD_7m1A>O=7My z)Kr<2t+fZL(6alMj#BJWBP1}VN@?hS5Du`RrRQ89x7{{Zx1nB2MW!qF86_&ylRMHh`3_K&niwUayG zVIj(7dki%gT;DWPF4=Px1`LwHnPRty-trS-#ws8!tBJ|W+^DsL4{!efQBi+L6tB() zq5%PH%Wx~)YQr2w2ZCDKxoE^%hS{MH3oEiF;QYZ-lU7Q&fbb#$G>NMuEX$cQNlNJ= zq2Mx(G(1(^GSO2OEKdovadyRzRJ0zDMur|L-_|sl`ylHT0-BF^6W>B;_=id*1OSZl z4$4ap{H1_2hC^0e5x@#yf*vlmMhGEBJv1N@Q=jRL%)x*K;9?5{s67!6 zkWJ2nx6uQOzv?0|3cPmlMqdUttkAS}m#t;7hz0A`q<6(rEzpOBDz@qAiKKYqBH2D;t+1(xG)Vz%YUPBrsYJkm;<}qg35t=Va*Qi2E*J4<2`=hn z#3ZMPLJ4GjFb5{vjVW{pCRkv=m5&QZDQE(+;EbKw!ad;a(J*920^w=MVrGi#H3yMU z%wf6JP-2%;Ox1Z%yMhCtm2+4{ysV?y1bxcuP);EC1Zic)VzxPP?uX!v0ItfY!p514 z48;f;fQ3HL3iyMuoUV`T%EakE6kppkU?m!67+^#U7(!gQ$N3hg>3)%)Z22LWks`l= z{@5|&bA_}K6EP|Vkd|5+^g+!X8<|SqaNQ71k&-B|zv?iPGgbM-D1b)5i)`Xm8IMM~ z5LHQ2QWP1eE5iN{IHkb`AP8JZVkfiA0^dYcnff493~a_rq-e&`a|guQGL{XCC}Y8K zJrEkiDOVF_HwTs$A1r*Y&f_xAofaPg zK|YW6cvu*Ux<}LtEH^a^hLM7JVW0q&_D2c|fTMRq8d4piRbGaO748R%APw=T@+a`f z;coCj82w6Qq(4w0DxrWAXh16vXj2Pw9AhqlE<)QC6crn1mwn4zo*HjM0;1Xify*C1 zq3jDG>|&Wvc{Gy7p+HLr5x5!f7;l#e52zh@0nrTLnQ5r5;WD){<&p+7EsnhsxB$o1 zRl^0Fdkq2jB3cmU(ffq+c3AGIxnrB9iETzc9wiCI)FZPj7C=5>+lh$jRgB7Byg}K; zErXk5yv+4+Q=bs5u?$K;KQSwN?lEx$a>C9v52#&6kDDVPV;DjcQHNh_eI7fP4Qzhr z%!C8D{F2~uH4zlHKywhmiVub;_&*I8zJ_M6eoRIL*W#~8->ALRjdLirWW_)kd2FR! zdxUJWtwse-5F57pEwIj}n}i7*CNFNLB|}V90Ut1WtUwq*j72IxGV?WRCQRZy5Yp=4 zCdpE}d|T*yVz$h1sT$a$0oYUeFVO@6z&Anjzieu*6z*}(w?h8_oS-2`l=TB_Dsd}J zTMt-zL2esl>Ol1ZW7PD_<&&(3cq8&pTp-tg1Yun22I`4qgP3oCnvc$2eGnu~T~b`z zS6pUV0wZdPU0=EQ%|S{x?5sux0aCEZ<|7V;dXf`-Q;Sgwi$QQlm)xFP^WXdDA|4m5$3O$h;)8(a}$%7Cjp5J0`l%q5s3DU^MG;v=^#eiylD z9@Rb~z6XQy^bD-aBHk%udC+J$CRs=RM@$rTV~72Kco$P~If$WFzCFI?aFV!`qqrEv z^us7FVLVI_AS02h6OcfSSdG-bf?HQIshdgLwWRc_DnH9Z)`{McVd2 z>`#QV#&uLF)bWF}Fqxv|Jb1$a0}SJNMG1act#L9=4KctcIgY`upi3+wE|JBhfCAZ% zcL=W+3YsUpnU!v!v~Wgc`;_r^^iF7vi}20h(n1{wZY7u7P`_v@GU6MuMXLLY!=Ig# zOTP;k!~EF;v)ZDfMR^6n$Sw{)SYdI8A%OAinN0TcQ?^ePcIchz*Tev4X@8uhRG`@l z!Gj0F@ffx~2#avRhB5yD-^LgrgK*8Uy!m)XX?DMC-QZH$7tt5Oh^9YCwux}f%1n}& z6R6LWeX#E-+Eh`Ml-$lmsc%G~2d*kHRLr}`CUHyof$EO~$C|g(*Q}>3{4` z(i7UMDwZl()yx}w_zZAh`G0^>;rO5Wj*!9p2Nm<Zg8(~#A@3;> z;5&~P%MC}dlk(;YmH;aN4vL-mVeLAOXjQQA%dj<9S*e*DZnyZ9b{Y;yA)Ma;HnBx2 zqHN=EpnM=$@)($E>IjFcoTyq{dX&N`w1W#m4PqyYR3qal=VFM+1XC_6M`IIZ5!Mmh zNM0d8KrF{q7y{bpjteky=>h2Q?Kho;4s4tAD6_fzt9L2bdv8Zz;EBgBekz!b1zUA zwJix;qgu_;^KdH|=_nD#8@HKnRWMd8G?$yQRHuX5LlV$jS5tDHKGR(1Mvk)X7><)y+N3@3VbGg4%v^6%&oAsMv(*f!T$hKzukNN zk@`ag@4S$(0oA`MgyPrSmI0h&@M%*7ziNN9QdJ%k{GbWu7m8S|)H@QdGSR^92i?13 zoWo$OFaw7v$_|!&s-`JD{{XJB!{WcI09D^-_Z&6p{{W#(AbgYlaI*mX{{Y+)-&B9- zftS%D%L@KM{j9K3nCs?n1;L7wNf?zXA4n8XQmAkds5FMA5Ex^)y0-{If;=R@LaYEl zXxH~Hm18ssW5xFiP#;$?;CTXE>rM2+-T_1eIY;phK}0QiWok==FA%V0#f#-^ao@_E zz613bAf_J?j4;A!nFn^|_3kaD4uAoGiVJEPQTT$oGSCB?^&5lLJC}zCwlvbSmVR4^ zZ7TrX&ISM&hFFoTvMUNqV3OFua))W%$HE6exsg>@mL3LM_~qaNZrpN2?gop<%1qU^ znmx0*v~RhFZM{1AW*50R+i+Uxwp51*!Q)~t9YTCN{a-$z@zeDgGjT284-gfSC^YJd zemBIx$N=ajNYoVN`h=G2a^e)A?R3-zvO(6M-ckBQI+CikN)4B~+_F!|#+rTI{^Kva z8G^E^hs217%8(_lBg=jfSKCCh^^Ae~OULh)8?)Wh{)?5izW)HYLBUCYfjkBh0|Vk6 zbJG>#8K`0PU+Eh63l;|ivLmPh>Tsc~sL@`g6AcfS) z4eW?*WzU-uF{p#K1qsQ&;cS~Opvmlp*= z;UeKJ>*bUYvu9TuTyC5Om4SFG!J#j?a}N**MjMHVn zD*MzUWAI^C6}4GiJ;5QvmD=rx4VD;+;(ovV8EbHkBhlO@Fjir5fEK&~2%dr8wsBLA zNHVEm&5VkTy>|v$Uy#v?G ztFdo%{{WHTZcAI%ZWU+dU?9CrH5FX7@g6SmZK;(Pmw_M*BPrug3i3WEVcLetMlD;l z;rQw+5Hu2->5AQ0_TN#gH-Yh?E!DV=1gSCjW@s&jAplaR9|%N6>$JFx22;6Dand8A zInbSz{{TY>rF=j1OMMN8%rs5=$q{Q}+rVO%2$=EW8FBDjM~Ii=R@A%su|J%O5WpM+ zC{I39dKb)MP9nR*0o+n^y+hqg8>lPt>KO|H_imFI*KED3gMGtdJBfZEv3$+3 zIK~vkyffzm1}|}(3?9&7XPEU|39{bEjDaqY%KMz;Ug&o{qUHXf@mCs0XSZ_fHJso_ zB8iG`<$GoWT(@q1&-g-R;36QOh!!VEf&Lu)Y9s0D!}&FL0cD_)3HJ;J(|?S_KSS$;w{FA3qXe=+PUhXveua5j>4nSR!b z-MNe1@9~e6$?&D%bqLQ5a5XzPKK$qh`f0Ti2WKgzUQToLT#nS{YNf<=GiDm$5 zq%;7BlSkq#Nmo@_PltEp`Uzaumz8uom<|_1Gon$Hoi}ks3gw6QFVpF(%y6#u$LyCh zpM+rNSj88Jpw%u4#@{ipr_^|nn4iQm&LD9HIJCeQnMxh*3hf~A zDRtu83-K1>HHf1mrE=#`Lczq1cKe5FC1k#Wu;LO;ZI{?FC|HF`;h{hh;K+;aU912# z4d+Q#y&rpF1N%X?7(NrSK@Ev!$Iqjd9$Q@76|hV~M4-b7_cW`hOHMgmey1&l5sVe1 z6)NRdF;bW{It_}de^$z5FDkY(tfE+TEd|=kx`r%r(n1-jSR7QRh#DRsN~jxFZ)8n^ zGr&tyGWaBI=!LbJWDVXcc;d^(Bo>icoHA zE&Qx5K~0DktEPl=E8WVg+P&n!17R}qo&CG*^umVlnnu-odWmQ6-~udefuf&^=`m=q zhK7zPnN~#~O&Fsn_yhueF8!)OZ1LX!#nnHLuhXaO}l z2s7G^i3j@i1|0#=`v}6JRTU8K!ZTfDd-Z#OQI-slY!cmR+_NcXmi%K3iMuQNgqqs8 zxJHzFCCnQ*pQ6?VTir1Iu+&T5x~4w@nz4kk=16!?B-%Kj%ZuSm8{9jd{{0s4ao{uK zQ0!0FAGv~ts7tEQL7Ey(YFGs_7Xh~PutC7SWncGWm`;+TEVg3+%z zzKb$5Xdn#(a)8Cnxv6x@#U?6F?qLpKJ0p4{Ntvab%BO6%#$r#9B?jSPX=#-wvI7o# zWIA3j4P0)OH+3pZ*E31S^h$+b(n4ste6txFLXpo#a~KG&$yqw?W@-anA53Pa98^~o zlc(~^9}c6`0T=?QKs^PLnrBF&qtH-iXP{`8Xkw_AmID!k0Of_{;J~NulwBd90-?5* z;%$l`Bs5IcxD*=qaj_2XN~V#G`^u{{>J#pO4V&2RTbYb2u|QU6`C}~fra3{D2ALqc zMncAzw-CWB28OdKayUhQ$od7T(6~GBP!Yn{5ucrgDX3t30xcbqD_m1@^s_3q2Tt4- z_*8!qpqKKD%Gq#Q87&kw{9*=?-}M#-C4y6P+V zW5X{lN-7hAEFLEmCj2TP5G|Qm&)?oqV;y*H;8)Xc(FzwpO_JYWj;$6OGj?!9*K8o& zy%35FwTfo*C<`n1T9(?GNuj7y6)4#wt30+Nl!IDtaVFrYcHxvxr&?hY&YLOH;4oi_ zN`hj*SKg+fV@YTZ6%d-gHB6AB!VlF%K)7;}hD*}p1W(=WP=pScehLlkzN#4tBxfN|nj5x436Td{0hyDuByO+*OzejOlCupgk2C0V)#kbp|Yf$zx7E!UMQh zoaLvD&FrI?v|GFG35;6a(k{;-w*_k0^fv>!pnO6oSP$}K>=1*9Kl&&ff(o_4ag^n( zrj}tQaeh@D#>EKhWeizmoD^+^_YGh!5xE<+(=%ATAsJTfE-XX#zsXX~JnGit8%0*! zs;G_(e&!FTITZtxkia(zxIS?jD6*3d1&&vVOi~v5sc`Nv8G%4sHy1Esia3%eFlrSn zQJFje+_0zi&3~vW3mylUr_@*5QsboPWv=V{p`rEqQ7|mM(VT;}Eju#YD$|U>?sEm|%I(NG=p^3KMeme4;sG zSC(n+P#fuDF&51r(M~s3`+!lZGyL3qMy*Yp)ymvuP%ke8zG1W-vghbW^mvj*T_CPHgTdd7VKS9kWr5FwFgN5nj5K2+|a6QNWtfK1Lw#w%IuBA`~HJxYnh zrsHg<{8x)55~?i~BLnDRFM)z)?Lp$e5|9dz5#l#w!-JrJrIXE1XsD=*kp!lpu9!R{1>Z8I# z!J8Tfy#25*RvuNZ=0phwXkUmOy# zW_D$pktYgE%M2g@Dq>mK1re!TJbz2~&-TCn8QK1*16ZUZ*kP z3Q&&tl-uUzPzrU)GhN23`iqdGm>#tTk}a+4(*_%1WV7)DfO@`po#1ta#xZU&S0PlN zp-~Yqv!RxG9px`AvMP#eWmJdT4a-=-6e-e6tG1}uZrB9CXADw>Z8H4b#ZX58sAA+( z!XJ1p2r2Rohmjld6hgh-LtKg60a;E0AVrTUbsWGR135*9=Yt>AMFzvUX~b_Qe9Y+q z_%T0n^W`JWQjlq7E0z`5qN~`Qz^PU=9mHMp7*U5S6wLzKrKuBWwF(~&SSs&kH)r2b z4sbR{r9})R4l1)3iG~fnf*Z%NO^?NM9w}u-4gL*W-Z488wEcxa>!RREa{D%4sA<6z zZ646nw3hB1hX=$MsspxRVz#&X!2O+(`({2);0zby1;`OWV_MrBE0h#h-Xfi@Ij($O zp==|syC#h0M|5{Kn@8ZIkH|t0nvBaC#iJJ<#UJud(F`BLP>!pd5r^NoYPXN^0s19) zdjQJ!$oDkqdpejomI$)kmaPF3;P{msL}S4-%R-n{cM>qH$p@GQZI1SGQUR_^N5HeJ zGb{wuNqaNF4B`e@KXCHhsab!>a6o;r>XF;Hy)^Rel*_n^cALO%!g+jR@P*if* zJ)76eav7gH;Zz^{6PGiEK6n6 zmlxJxw41#zwSmA|jwPB$myb_Do z;y+A2&xg#*;wuooaT8K7s|x7V%R0?4z^tV_N_z$fJO^8ZB8;S_v6{;dg=txT5MZUK zt7Ritma|hh5LJMVPs|%ds5O5gSB+3c?3Ue--~*2e*+Jf`w?U#(y|t#n*8qAW3%FA% zOq`nHKL!@?DpWI5g8191M71XFYXlF79z=BuJsD*VF)ODV8DCK5&@SbUzoJxROWqS# z#qG>c-|@#B9K*nkh-a9@vKe|HlP8rr7f28Qpd$mXP%hd4)8K)E?hPN*3JkWaGTn?9 z4j99Tq|NftfLt;vEr?n`SU$+U$fF-g)@~pot{BJw?m!S-V#7h#wxEG1qOcHuU^ILZ z#BbB^C3CEm_dMUra#` zxJF+(7yu3c_yo%0jBA2H_TYUc5yzo1O*-`Mg^;a4jt~VMSTd?mRWGPUl`<+uskT@s z4Z65!?t+Os3!6=mrxOemaBY>T0`rMmyVNUTCw6{fc1{|)B1xSvu^2MDsiT!wxCjf% zf?D-dg3kv;DylpeS@~t!=|g`mV->q68C2Nlm7a^mL<-znRlS@&%-$3grUWld^l~x8 zfr5o|6bFVPnQ@pE85>hGC@$L27x^-drZ4ADuBuT~6r~!x_XE*fJfkB1*+wEFfn#xG z8@VX=aYSm|ZX90_8{p@oDJ)`!ogSe&7&Y@8iXASThFH-aV-eVWi2UByY-+uEmj-xm zm@wq!vlM-G{{Y7XcubZm?NuBZnUSNE1Rgqg>);?}5%K{034#piKH+fqO$)zJkN^;3 z!eZ57M_1;?zjQgxx9)}!Txk-jqgN_h z4UmXY7$p+oA_?!KBce6w@g2lom(;p9feHw2k~GD3+7w}NxAu@kj}x%G70Vf^#5D`n zvXYa>q4lOHrje>erzv=gZa|c@3GUzskpr(ox=3!%E18U?yOfqN;Ty0D67Rb?eY2+N z%mDtP<$#p{WGT%`Ou(B~2EY4QxLgBB90s zuZ3j)0AZN%P7p8Y9rsm9ZnHO#ybPlw0SuqvOZ{c#8AIwWGge+P7eMZ#9Kc3sW!EL) zOp@1-P!_D<^V)V4LqlDprA2}Fs=!b&WjC#Ykt=evsJE$6Or+A4HtaLiqy3Q%lB|^r(l1m zD-0Vx<$j;O=PF!#s|b75|V6;*CH?|e45T*Bvw2pr=?y^McWBy2Wkog$K2=I4_PJKS zY$C1K{YgZm_g!2ZG3qTv%^g=4D{Dw8hR9;FRHc4wuH3=pDzVF(_?5`h*t67iqi`pt zvlBM9FF3g1m4et~BWy>k+{}Lyr840~Ml2ICqqf`;z!q=!Mmnm&r!FGKSSjW6M5;iZ zgL$kz;AN-`Y#?&ej0Z5A4q%E{U7hVBwXw=icIovQ$6|mTBEp+f1CA;%PBg%^XHtP7 zm3QvWBkr^E0Pp@(OpKBia3LevtXWYAeeuxKp`)h9Q*9+x!0jh%Y5I zmBYgv=J7H{OH1^f`av=brz+ZV!C@XA;I%%zpMLlVFu@EEK@CS!B!9r#KO`|>I15_9 z;65Nyj0YI1@L z`!I{U>GCp)mDz{E8>|r}hLpDete~rS%mkpO*wbUj0>otA1Q9s{tj&VBqV85!+JUa9 z4E+SKU-n!8Bgv74=pfP6nSlBsr@;G#dA7Vd5-;h1gkXUKz(OF9%HnF|?k8x_yjcN6 zOVw9I8MKdQwux4d0YdZ{f7wRoIqs!I0`+gL!CkY2Lu-74<~y~_?V-H6fe)^T8w4dS zT{XWvZrOXL)~y$E%H6H71bi*X;~yWTklBF{4}q21w9m=0GhCD?el#K^fxJ&#+g$tR~Dl8#Hz9FcG0@#^WQaBTz@q{P9v8~u<|_q>;(h`hwurP#cNtM$JBOV^GnJMR)*khUh@gh( zm({W6&j3KFQ;bH~5T&_sX!IdF27tJt0kre;6dKF`36t6>qFZwJ4nVn_Da^3t+kcq2 zSInen&QvbpvWK1T1g_f`6skBh!8MS7ACAiHhbz<=&h%69BR<@hJp46FFIFr=}jdb>;=Fr4CxPK%R}Y_H-f883lGym)*)uLbvXBM%w70C#p&y|twY*yfx4L5i zO4udax``096w&ccCBP|a$S(xcEFU0tOp(mw$#6B(?jCT!0ll1lBl+x%WZ#$b8C!cM zhy^1MKHI14B~m52-t;CvFb@C)0Vq60D%jmdVQ7F>Q~GJVFS61^ES+nQ=$2 zFic>~6q>q%wf_F26bpHZNn|{#*+%1GUXDn{h+i+{VYbkjz7veYHL8KANLBnhWfTZZ z^DnW2(4z~s11orib&w*-3H7YS(yj&_?lpO3?8Bz z0;VM~wQV#_bHPJ1h?pYLVTy^UgMKPo7r-N+g;~FyrUo!H2GUc8Fcp|*S%B$u1Or~Y zB^<8R5{09QaDmLqS!i#Vu!XuS4TC7%0p=Vap1>eW0$v4}Az}XUa>n8?`F4dMX)NKj z;ZDe{NZ&e{unI@OZG(cXWuE0n4{ikl2l&izY|C$LMK=DK2S7v8E%bn{;AV0245~vA>^?~9Df^w9MK*4jA7Ds7GU%>G0`9R48{uZTrkMlXsX;n zzz)Fw0BHJwO}LZ_>%%_^;!p-490)i({^9X=Nd1gUOyxNIMlvCTI5UTsD(CZTXe7_f zy((05a;eorkj%vz*t~H7fn>)Btkk1w+F-&Tm>&ajsSpbIj#fgoFQZgLh6DiDe}`V- zYzHLEiiUum$R|f2fQQP^9JWG^*c@qnTQL-Bfud0MqB;n-Ey}tmAxepPop~lB&m>i@f@xtkRNDz3CdIVC{yx zm^Bs)iecu<0LE(pj;Yn=I9lM-5dbFd^D8&6Nn-~IhOZ<3Z2d)VBMq-mXoyuSq5)WTijI}2O>3^Q+uZJfj~O1qJjY%W z;-Ew;+@rrydHhTe*6G}2a`m-^5VY!Kas0yT7agLKvgK4;f(J##+vVaOpslwI+5sUO z%p6oGl__#i#exmO{3;ahLZb}f0L~89Q1ut{Lbr)7ZL*N4k!!3gYz8W{96HD>>%B5z0jU z%m6M9OK1hF=#|$+(Wlo@YjgrJ4&V|TV;Ne0B4gaul|9HQTbc*U0!}fZEspA2{^Qn! zOT*Q+Y=g~M_e|NFEd)JOV#pyyTp(>hR<$2d9@K(^Nu|RZY$y+1pM-Ped#IE1yMAQHeBwF%3p3$c_{7S4AU2ph~*mUC*5C>f&2G-nN{pk&i30c*A@ ztm`mkXpGe%+%rnsK^>#IfukS$CHt;I1&n^Ap5CRDhYn!1bbCvu%l;e<9D2*Cps42@>2aceuC z!18r8N_`fDw~I%pQmQf!qJ?zKoPw5x4goX>>WUY+WTGha#NDG{cp-ts9NUnX2$FT| z1jJonE?O-Vpk7xH+A(d4;ZI>Kge*=YDzK#Y9#nLPp*H|kawgN;DX?fcUV>*20RCj+ zVzyGHgx)4*6mx+IVv%_=8H>Un!r7*XEkG8t=8Ck;P0C{v9txIIm;Kb|)W~PxI3RAA zzi}ymWnusX3Jh%;IqZL1)J;0AFTXf^G2^*-LOb}v6Y$ik9MR0<`iQB_d>VqWRkevN zZq5}`)_GXC7=@~ExEuI7L~rRM1<8+8-Xm{luP9>YDuVkU-_f3lnZxkum`r|1=Ro`e6Fi1R&t%jY~KKwd!ZqD;2n%PPt)|FNl-a zUB<&O$6Bze{^K7MK@NHDQP_7<$zv@Sm_W>J+_9ki${P<6beAg@VpMLff(3MDw%tQr)sgoBK!PQVvLV!M!!)DgVUOt* zA9l#yZLKf5_El;PH|f21e$Km;RbZlrN+%9*vOVh$T$Xk{;UiCdbzfOFD$oD{F<`J8 zAp%#$64Z{B!r^{x_vlaQgf&A3onkhK;0D+x!ASA7#%`W{48Nd_@W0z05`fq6s{9CK zphwhI7j0uR2rO%rJ#x&mH?_NB>f^C-`ng?xm<1Y{Dv}^4Q3v8~9H)!pwl1h5mZ;=5 zN=$oGOsJ^Voso&N!K!S6V@$WkJ}L{)M1bZpi^I5%b%L^+=ZT0?%qCZfKrz}pOLqrV zEgFr`+hiOxm0-&PS|bHVk%9!)`}G8YQL6w9ikK~V zuiQhyP};_?n?pqG-iD&fXD+1(!7adR<(CAgOKRN93U@Hl=OXR``-$Z4qHtR`9~B5d z2qjcjz&Sj{_ToAh5DwyAG(vTn62%Vshf8s!(zO@6yj-qta1EjY1%L~vp{S(};iipE zPFM#^%n%VNFg{7L3quWl_CfqG(ieAMjJ-<-c0Hda*>&opgnD8NBe9uOj2AFFgWNvl zocPka@a6EKDk1G^SaeZ|sL2b84bwsag0dl!{LFuPL-MGREBHPRA{6ET%-pCEL}GUz z`a4EG0hM0@@hi3;pG#_%Sv8vi5J|O_3NVS{tv3=_HlQBK=)EG4`D0OU}) z$c|O>3zY^{8{{&+ATv8R1$z=uvns`&9G`|&wC()?{>E$b-oRf@Vp3kvKQBIvG06oG zQBCKlvutmyPhF@0{W(u}@7x`s32&v9D!zZ@Nt_g|{-$$!249(WNMf0VY6@l`BlC73 zoM8?p7^Yi|sL#YR0S?JCjF3L$U#gN|iXydhUcsxYP1u{oNEr&Aq7 z^n|ooCUZvv-^z-ENqSq7pY9zF3;k8d0|jFHyBzYgLx&>FivVx!d_!Q zi;bDl2)BrLAWh4fhJtxJh5!|{`I+J!;A21zk#`@vJas_)Nzo zv+fl`h*i-5Y1Dr5t{^0K#{8m9QP4pJ-XKdG#^Y0mET}+vWibB3DCmGWs~Gwv^0k4QlwHcjG;Y2BT8kVyAd{Y7xR8yU5 zAaEg9H=<)d`A#IQR(oSYi2mW;!7!U0F!qL~&6Z~*QnKz~JAx560Vq0SA&hfGVQwt` zypXJirxM^s{8Om93#|J`9n&lQ97+I=3WvmNQ#w~mBqdfP8w-g(y19UlN zVi0bn@&^H^;!tlOS=ke^1`mig)ghD^=Hx1?n+orb{oWfEs;M7c2%KWY$@4AC+>}1OU5;xQKvHWVcbU@q7wMdOguk zVvtQu@teFXeuP|CPjk-!!V)n(CI{x_Q$>X3SJ=wmrr@PZ^`EB^bzx~x()w5h_zOO} z_zW7cGLek(d!}F`lw|doBCc|N!v~zKU0=OK1ufMs0^;Hg-ugFUk>~Nk|u)#D%ST^BC z7^~gEWQxK#O6-gjmCC?(eMSQ!%|`nrT^^=rOrvX21+ge99T`CnitUp1#3L00DZ4Du z9MqO9*?Qs{Y!3Wr+oG79!>;8Pry$C64M(sdSuJC{)z8cdNn)2MIh!bnqS|3V7#8GU zX+)@I*HAKS8Hv81anu6lQeC?{Se3NIbS)6P(NQ%pWh|*-#N?$~U|EAHu{BY&P65Eq zy~^PjEg+uZKm@E(Qdo;F+}Y2`rX%SiXXla=kggIj)+Nq}wX;mK+@_~nW&Q}^s_qV# z0Q6CnqS^BJ#A;D(W%*^+2--gp4MBZec+OooBNi&kq-c!+n2+QOQ(VA|{{YVd5r%4z z(hNo!bC~U^AB9|8RSvL#CvM1Qp>Tn9#fTuX9oZQ?qy#CWVr-6|SFSM!65y4~=Ml_5 zx4?kRX7J)yNl;`T`V%O|k`Q4(3?2>j{&y6GzLHW0ng`>#R4JA6^qQ2Z%)tC(FeFL5 z-@~#F!_VUtZWTx-0(mzUIK;C%LH6P;6_S|5TZusuQY;-<;%`Q*_C$$^T8#1U)Is`u zbqtY#9RY8_GQELz2CbgvWV05!5*r(_x}l<^9}g*k&! z8O6js7N-L^nU@8}rl2nnQk50A9SW#ovvH!B*+CfFL{)Uu>Y`#yl4XWvii8O}nI{pv z!41rFG8HXfFcUjQg(w3Jo0MQ(<-scyOvccZ0PYiT7&j3w3_Vaf&r*KE#&6=2ptJdiI^qfoeAHwOr?cxnq`3*5^Q26J$= zrF5jbC`9JFfOp?*Fm)2;xE~whCu}hD1;y?PfUBDz1X{(T8#Tp{K9|(8Rd75jOY?Bz zN6QoJhSiNCbSwjLD=eoPQkZ-UkphnDKe?r2IiHo75|juKQz@X1-f#?&rQ11G>I_OX zU_f>|_TpJ3iH9D~%nHu{u*GLW<>}##L)|A#YV0E}2%rtI8KKw=9*S>3qzu_d!YYh+ zPe2}*D@0-{k0PvBFv|6VW91sND*z5o$fIId3SO+1LY3QCm5YoEG|hR~#?NPE(n1LZ z3c>j!CL<+zW@EZTUeYx!6=7!qH+)Kz%IKSWB&C`nsV$}PTjPQ|Jj;T)s3L2cHv<$X zSM3F{Pz8(?LNSUs{A#1lfGd=OkqaSaIJO92!iCNylSFmGVk;)IeL$SvAdPIAzasBK`QIJr^>L`!BnULZxhg0Z+vJOtS< zTEqg}(nM`4ltv|rB?b$3$q2044tN?^IB7OSN{Y-e6C|Kn2&EcHSetn_#IqhFl@-3D z76654mK!^ddKpO^JyMUiVxXDYS(hUNN59EIaDwQVRrLowj1z|7K>-k-@RpTA#oy)qK& zDtR}64}^fO4l=K7xE*TU3H=-WL7ke|AB>?i8n&MINQJYik>AW#9wo*W4klJK`S<=3|W8-2@OWH;wBAb~`Uu*i58@9^+%+ZN=tN93ziR zuH!FgM%(VN_bUip8^Vq1+j)sBat3m1`@|nfAYHJu24(lBP(oeviGbCi!rSae3bvSb zr|w+cKsS;byp9Slxb=H!yHYSiS*>?1u>%TLB|bRn1xhPIuZd_LbJSJenktSJ+^qpe zdl+)|6;XF>T*hXeN5=q5rVAE9w&2i#W2q~T1w3o2mHWLn96njG1qPqW3ONKDM{%6` z`DbVu3`YIoB2rp1Y9N>Hmkuvw{GiB^3mH%cSW-s7EttcjFNBB-7RB7mcEMgT-AWOM zQ4v=W5qwNUWf-VEO4cEQGjSWma>zphcKzd~(CR@-qV!ZB*2 zah&hVH!md6w$@%<15v`nps4n4a;T7M5tXjbP~7!RP1h*zxrKgXn4xlUDS$qss5YFd zf)y92l%cr5AS%Kr;-YI3qHSB6Mb9zu+<)mBn8-bbB9z zjVk5>L6~U3vmat6M-JnnC?kW@q;Us(hOlo**g#+sn|0UX4rNYFHZE4_h1-aNw7pyA zpj%#uP%SYr4Op29mH>x~ipHw|+1kdphml&8Vw-nx;Dyu}j17-qVI8rKg7-6p!t?78 ziN0Y1fQgUXMR#M8w>2oNT zT%gg1Ai)A9CJ0)}?aXsXn=erCN&%3D=60YHW7J3>EGp7wGjXxEfS2J6F98bKy-Tnv zKUhS{yqG4-m?o-b?cB4J%|)RakBEU-&So4(?#$9f{M&-#QB$6!nuPM|b)muJjjdqT^z~$3E{W{Sz4555HRowQUnVWr>dAG*O9o zZU^oQHK<}{>T{N%X#yOZBkpuEwFa1>DHShf`It73bF1y?gpk8d8Bz?x@FkjI;*mBb zQxFBkd#`Df$8Q||$0_=pU|LoB7wI!4zn}RWPltfl_Y$ov4Zg&5#2#s~GfAd%HYvG4 zb;B8ZnZ~w%Yy6D&k@j6hc(#TCukv_<`s_Ln*-%q@UHLJuVK8wW{-ymX^kT|rcd-Nv z(??0b4t7ikUCSV~KXDd-1xvOOW!$)~O_1$P_S8%;+zMnEO>5{BfQp5CH(0A6r(sw9 zC338@OIm9%AT(hzKH@Ypdz^(?R}-z4RIVdZq0APVCN?mMF}Sg^8-Ro97jnXa9|)E* z4jjPD8;8doQ4EYl&PfR>7<>#tKkZe-Y;qZMtE(bsq^ecapdz5VkR14Y9WLD!sH+XvZSy ztJ(1osNShwQSJjkg8Hx!j7HXLnQf@04}vJT4;t=(7>u~nTA_x zThGFm2JEVGSvVrlaDP;mgECAy|1(%iA4Y z{^I%N+#Xxl-NL2YQ!Fc@vC!x4CaxJNPs|WQA_w2G{{SX^9(sgRVxa^{&4wfLdc-K` z2*J)UAQo`KQhfBr+5~nbjJsj#DDWoMJAesK-rIy>UFR%OV-E>T1*l%p!1YJRK@zHf zY#yr+Bf8p$xf)eb{mWsX7^|R*jZESE*DtAm7Lm4GohGg_#}v0ZmNY`{qRy(OJKF}0 z-NB7RA7mS}A_SMtCvIR$O(2$%ELxD_z|%~+W-dlw97fC<%P-VSR7l;?5UF6u?izEs z5slYg;D%=>3Ut9w1Zx~$sh6GdTQ|Ic=t+BtcGvgM)yv1))T+A3B?%Y@Ln{Lg;Fesa zU-}(D3Ck`MV;|7p?DY_rv}8wOxk~D*w)h|p@KLqhKd{3Bugf>^%gU)Mv}GV#0sBYv z02_TqPs4#A8+QJolHcXrs!n+snML^!{{W-{3c)0G7*%1J^#~AqCI)cOep3u%7u2X~ znX|g$Td@-tGPcpt-uDV4^TZy8*yZV|3tSe1Zs{w9gmob@el7Wy{?cVE&KuMG&LL_5F!h?k;yD~Um%_DlIO zI5Po);q@_bhN{IgD~YIX138mmAisho5nMvdSZ`2F{{U-aAn?nb?_2P1QlRR9V01Mv zvshuf_QH43{{W^4kwM!V=(w>5BQ`9x+*hP;sH=LFRy7o`ZIY%cW@cjW;%NnZL#leg zWKHu4XHv1UVG7*IpAco-yjs-xN7LYJ{-D!vROUQ|@W6OD$o(|~8w%zlTpiA86NV5{ z45yQd6!>_Vv~b$pUgggWRZC#k6Fe~DEublLk7TJz5av67gWL%;ZzCNVRztYSQ|ebY za=;m_SgSq(!nn?0-4Al|$EaFr(jk!EH7O+n@?dZUp|z$7H#&7F4Vsmxz8lI3M3;+x zF776ebx6bwdj=^tt%3zTaK<Ic4h8F0B4_ePcA?g1e$iIOHtHl*&^ zWssGj#3F^+nW(sytV%STKKCwNlJbRwFu9iHf+eFH#kG}bGm;2tgBKftEg-~MoI|wX zse=F$Fa>U0Du9K6!L~%U!%V{Ltu+UZLp-h)IT(6nK4z(#ghc~evrMW)gGGr9RV`<; zsPT7X+JL7Y^2d%Uk=YRfY+j8)O9#Oe@tJbpajYaFiZT?sxp1sMFpO#CV1e}IAR8~< z*oKtYH#o}-gz-xeM%^|TWvUCzb5dI869;iby2rKD;Lt^?vn{LekU_61nb?LJy5Sj*;KH;BP9VtTuC{>P#Ny~5ilt9uedrn=( zU9$BSIsX7qUKTNO)Dlus4mAv00-?|ZW40MF2x#nsYb;oW;-G{Q4NTq6$HKv2 zZT z;!IuyZ16-ULyD+#b^6f}U=_C;`GS=mH;6-x(yS;4=V2Q`0gpg%zaAslYM>aZls34R z3U$O2P+%lf$}d?&a3m5t6%Yp@+*=Aj+_L^5nnxyZ!FU2&6bsH$8(3Zq5b~u0fQE4c zt_9R3N3V7|+hg;5$|Ez<_m zVgr@LsulQvOrf^fW+0;pLkDk^D={eHj>Q?E%(YVt0s$5&l7KLV69_wOSwIj@T{*bf zGOLJ^tF|l-q9rYj5UMoGO7PXJxJWdUF_oZOuZZImC1y><$|7ZyKoEtELNP7OMawEG zwgZc-Oy52l8G;KXLhG4-b18MiHkw8*aT^qfB^^x75Wt+}AlV2xTnBQ*8@y8$RzkSj z6jB~R`Hu7!DG-$rq75cPJ3UZ<6c}FMkutsrU}*PFW6E4X6qSh1CRqBB&Nh#rO2ovx zNgYSl2BJh5%i1?;Q<5jBmDI7KJk)WLJAzWd#Ovc5tgEJ@NBqPk=#)5NaNgxCJDLmB zy{TBls-Xr32reN*y?8+|aTO?ol>{uK2h^Z~5ekV>gdSm_Kn+tZ#$WC&Te)Pq?l!rL zQC#&ABN5c6P}F_Jw-I21woAq$+hknMBXDcNC;!9%BM|@s0s;d80RaI40RaF200033 z0}%iO1rQPwAQUhL6+r*m00;pB0RaL4T!mst(l|^*Sv7<~JmpmZjfEC9TFUR)lj-#K z&hv*ZTnN;(^G`fm5J;}i?dJCkir%iveLkVXS#N%?DycQnG>sxe@FNRfv(+d9zYUC@ z1b;A%8Gu9Z_$(eI$q?$UqCi2zix`C>QC$>t!0RA?@c9LgBLI5`@K2&|Du_%SSK_-P z_Q~-HgBc7z1&l2LmFLZP@IcD)6aWi-Lr4lhie1dBDz%QPtDqdow;ani&^CI!yuZ!# zNjOvm11f+W*WmT$ywMcJ$|A3oQ~^pDk}#w7B!^*SX{UImZKd8`K=Lu}MJ4_(tINDS zSCBt%FS9tk4{0_JACW`8RGDHC+hcbx)_0Z~wD$$6Q23_Lz zdO2BNs_BIcx~mO+-&Qj33JCnx18jX0UP}3@BP<@Ot17U6fd>vK>(Vek zs{GegLkabjm0#v^$tIWceF5jsn)BnqPO63jiU1#j_#fqG0@Z)9=;Z)9zJLj3?z{-T zWdRL-3`YqBWdZ&Ge}#Sr{{Rgf7(YbX1x~LHHhjijO0)pLKln}@s_y%tmv`#!@~Vn? ztiM(;!i&|D;>5y0Zmvo25A(aek9A$q=wJX|6fw|GG(Q9ILBZ1Fu-Y3!Z(ST<+3mKQ zefD4-USF?XfU@A_bwi>*1mMc^O(dIb$)_Nji#U?&&zkP~IKW`Rl40)4dome4T?oW* zj6GgeD7F-XpeylJSaEtT`!jMup6kwfq(~(WpoITf{HPHtKCP{~?qAI+6zJ5Tc z#vZ5-K0u-Xs;|xWRPsx`F8e>4qzVT_5J48ZDZZSN?=HZ5qJ=6vlMi%qfQw9Vv%%bX zU044A03L1TpOKqxf`u#R!m5BMf(X2-uOO`JyquD6uE>!Ln12LhO{4@H+}7fK0)PPXL=Z&|uI%TU!7mvr;p}DG9v5*j&o`^mH?aP{NA*-*ZRvSg zHoag20IHz1_hvw#=MqCuyjI$%F!RgdKIjkB=3R&e8Ftt^mBhFK*5 z#3K+5Mb{BUk}xJ&;N1TJn$e8pfS%}J#lw~k!*YD561x*c%A5e@1rI=Z3XrC{!>_5U zud^79V+yjU+1*f6UNSxa)CLXd#F;riix>gINxi_@ zZgpjgP=G3c3*;iekSe5bYT9xVWEr!vTEyi5^h|+|%gU|&C3M(%pxQi#_pbi{_l`_* zpZc+Lac#Vurr4T&*C!^+%e)w&!NNh=l07}XKVOZ4LOP@i62P$qSfJx}(_eNSlMcLF z8zx0B6wuGKc}3*(wthw>h{WM`QzdxkNj@v5YqhZ=IaG0%er z7@7vxn_pz^%A6E^f?ghr7B5Ugt)9AHiEL)HNnn@{XwGS1r#GruVdNyYJtFy+7YqS}r~ zrjt%iFmVsUPsX;p>a1ZxI`|sniJwbt34kms7o6C`*y!OD2ss)R!za~aSXCj44li$* zZIp?0AA#J}lVB?A-X4!zn(3!EJEylF0GwC;aw`Sji<6FF$okkrt^Ckx?CCCqT7e9k zNi0+FjGj^==ypR7$?b7+JY^8dk+MWaryn;Vx4Ie~HCQHu?zEh9G?Fy&$T0M9=O?c= zf6a0CmtEiTe9E0~aqcU~)61u}8Ma(F*4}h122YF#?DbeM7@qt`3|bM#4({hV8VSGX zTT5sU=^HwnA0eum+j|B$Bn0J?geUykMqA(AWDVoi46Lz%#=+TV`KC*$udLet0Qs6R z>}p-g9SYVT(P-6GW6$eXXI*ozJ4Kvq&~jV*COCN+-*0c`v5^Z5d>zR-k+G0O2*qyz zDn4FbSnBTY0|z@K1!$iM#^~W0VNw|3Q1UEcNcoeTj}1TkpAozLoTkpMzQ-)#G|W=U zaal>q!-EXo(2^RJ)s@7pA#lJ@KJ(KU6h>nTPE|277^K!{e0cf%#9}D5&ODL9fjel* zho{%v(K4hk!6w|Z`e0*6#u>Y}0+?7lk?$t&)krFAN>l@dK9NSnP{iRjJu@_hV>q11 zM@<=s!SVT|NfR87EI8x4=)`mAMz+M;r!N3*p?q=A$E~xs%N#uX9z`RcF|DN70CbVUSnkv#XtZuIUwaB=ONmCrQ2Dh*iKe%S6gytUD-Lw z`R)~=o8-#yh`@IOIIsy=z95bPm0#mj@OcvqqZ~|fXg0Ja;tv}po9dW6QkQTER&c!; z8J0--33&&V_956^nf4PS)6<0(2^>FCPae2hsaP?RJ#||D02}=jFo#)&2J}Ez(0(oW z#^WD}ZXj{TN%;2SfAUWpbRS&ju-Mt>=E|trv1{n+#Hgf}W@%xA@is-Xud7)@y8Kms zFR~gV7u9C!Ig)c3fa@J&s&!7O)jFq5w4Xuv*W!;9c*f&SkkoBRv{yn7J{@#Ga!GywAcw>-pQe4V_Yep_Y(AiAtWb3^BEV(A;sMOV%J~QkSiU(QNF39&V>Y+|lqS5i zj&5N2+Oo1a16$LiHQFId{eUzNxj5Dy9tGR!PrcXxrDIvh#-TI#y#UphnKi|Pl(*C!wHWKYxTqe zAny@&)@6OPjCCiTk%q=)Q};}RadCT!n2+~FJ;VkGIUiA;$*0l~a~(tISL{HFA}#AO zH`_A4>|y3_(mA-;%**}LAm3QM!I+QtL_Oew2x0LLiR_ws^_iSlS)1ZMGe^U{Wa&PK}r9KIoj2nki>0ELfP{vZ(CV*qe`?=A?p5J3%T9hj3d^cDzu ze8bNf;k6pEyO~f0IRCX?b0^9pwp8tA&r@3Em7j;7^DawttLj704K z<^)j*&_YedW&jOL&5F90kuaDALCEqEY6<@UA?0h+=ST%hJnTY50txdBxVfH;{VpBQ zc&I#b9cm8NAPNALfPQ&v^gXT5N$oR8V1j0Uv{ZIB%uhCUp%#HL7qA?Of+&cic*jK% z+jGlEai?1kaoget#tUxS35dT)+O;zu57GxS8^k<>5X05Tax#Z160QQ|oWO{q zcr~e+`_S|gEEi?5{jqhugis4N;0V1Y#U0Fi+1bC;Y4H|m$PZPCW0msK0H!_1gv)_I zf$`nc35?Xkc2;5VV8#grsCk?@MpD4BnG^cH9Eje>ZB}V0`pnU}={=?!oNp7wV!?or zfcuDp9t2i8fi4e6M-^vd5Dnri$lD0)bv%zEdqW#D&>D9!F_4NXhQAz|!H1%}!2#_A z#Ee00W-IPKXATqZ>OTTvZzJ;*?7;F6LM~+SG7|-BF@Ku>0Ju-u82%K_ApZd4X_)Vg zqW2LGDu%qkwkXc5Y!qr{MLOfTiH&Fs#h)2Q77S&6tQpGu6FAHt)VOrZm#7CEwLe4J z-1LNFVmFxhUL9{-j5JXR!XF?VP20p^?5YSNV@2s@)Ow!2WU5kR?y{^2iBL6vHUZQ2%VxV|lEq;LrdFdPU9=9_tSL@0uyqIwd$L#_fj9Hsm!{lC~ zom%ho3}XPF65)2BbQ+k5pkrOTOlpK5xQMz@vUP|Q^=;h3@9oh>(4EOJ2;#!Ed5X*c zFaa0LGcQmfui|vAonT|uJZW))YpDWdvF)H>unyo{qyGTlg-9Vq_OTJbrXlL0qNdEx!7{cEA%zXmrOk&kVpMeW!#z3M7-+83>eF{!?Cqjc)u7YLF zldaFUu!)x+NSsz2t__vDfpLLen=qJQ1Zm35$l~-7Fdm+(G4W)-JA*Lh?b2pEqO2K% z0Dh+GK70s_ecy(T#-g}rI%6ib(|=&GVAgp zuq<+?edkgG)-~;Wz{DTzF^MgM>^Klqz zJ4Ce|Hqb7GbTI;&QKSmA5_=$VUE?F*K+wj3O52t9g!Yy?pV|cB)7gPRKjj#nrzMQ+ z1;X2yDYVjFX87BinDL`@G|0G@FNAK?{C*L{29gs7z(++Qe3~`i1}wMI;;fhop51HLL+@FdJOPduky&?Gbgj6a%&E z2{C~&fUcNIn$W^ea%QywVlP1o-$;*)R-ImF>Hh#x_Yb`E#fqKgcWOk8+T=gLoj6o@ z6W!}OA&`pmY#sQ)i~(Ac6(#L6{gD#sNMj z_~l{zK+8iRxt_&1oI)Wg1$U{$AyLuQdkeY6U9ylnMh8_e5e3}=q@xD&BY>!<^9tkD zi6{7+VptSwx0v=7!3I}I9@3=I8<~}GV-76zi#M#qA7AulF{p&mGfA)1I_bHG4oe?v z2%v`8n1O7WlAy&j~ilh zuJ1}jZP~rVwlHM z{ z)Nj7`{^ty%q$Lxr&J>UPK$-nH8(d%*icdo|c8U!aI()?`)|Y;6<~-x0B7ZY3E+-k^ z8DVF{Awe4vp@99$ZUAl(u((R8y~zA5k-*#?F(eg4St?1K#^OMFs=pZAgx$44-~8egGONr z4U-*M_pO9ry-%Qz)zkz>P*m9UBkn}R zGap+XrlZ(tQ8WRVP}96_k86TQVk&WrPg7&7(^&VW_&Mn2rvvq zt67&No}oi?Ftyafg@|VYVa$Do=0y~B9wrsV(Dz?6+8Ga0os6kRMkAJ=Pz4g;F^hEE z!mC{%&LchaV=SY7f(ft0{*{3ZmMlNBq=PbXHj3Q|{vvg5Pw_YvaID7v00sof!SOgU z0uYdDCl$h@gQ*&i1`$6?jN&nqU#Y|2=cLr*IJ~&Hb;?l%0xx(K7pach2%IpXld8_p z0NHZ2DBPL<08;d#k#>|cjJXIRf%O6ij^EU?TN8(SI-Btm4kbidP$&pQ`;ErBCK7kj z6S#^N;=u=?#|G|X9gyqY1bZ~8ss8{0I)yT;4)&v2hK*uT;DJ>Wr=^GTH=HA*0$iOa zkRzi3`iKSZMh4gQm+?mD5Yz@TLD<%YXT_VL@vv7lL{HPUQSFv=5CdD8e^7-Q#?nxf zCSmph!_3!18NTDy`J4m&>QwpOJ_kSZ5~S$s+u(_of}SH2(6R0TtNENhV(FJHjfoUW znZ^A;z&Z=wVc~IpuNL;_ zWbS7Z#=W0rG4`OD??F+3_f04)Js=+3tI&&}Kun7 zLsO(+z=k$9nMk70MHf)(M_B4T>rqdvLfz_ACZdR{BjwffUcvw(oxm{v0Be5+GX2U# zR~?MtxaP{3L z7-w3p;KPH6Rd>8BI+eUm7lR+C!YIv~zC-q`%=y1lD;%!f%x9yw#K(wR5u`7DDbhY+ z098R^jIk_Kqsv1S<}_uo5vazYte`4&5gZd{;fp={!K_iYCb2FW-f6rXtijWyVj9dH zb-hIC-j9eZ*E7kXA9BoYG!+kRBablopEKqxS$hbgiGV^+N((S9tZlrWOm+nN5caQ; zG7XPZ18_uBF*T5&A2TjYye$wD8Yd};NP&0w^ z1;7n@F>v^cIiXNw;+2;zhSpKuiEsKt~}pfRG2E7(0j$BN)Y46j?JSW2TGd zDlGxaq-(#3T-hG6+QFF@!$tfU4`^_+9+1JR!T6nGlypP+Mhk1+;rJ^{|gv6Pd!QL&AaE+sw)v1US#UOU%s-H0YK+sfs(q+9&H)XDC z6t!_+ItntF^9qNmC6A0;#G;sMD_5%3?u*it8A)EGUOv z&;A;ptW<6~yTUXWU*EV#pl03R~~5qSo)0~%KbDen^+GZUbk zJA>}1zo%gLm|aCSu^AYOH5CaY3WZow*qQPX&^koQ_{%oe?S#-W#i_nXXq5-&ydc=f ze+OPlqRE*v5!qrOpgCC*&u}>?vP{XC(%P??i4*`nu&Ad|q|TorF3c(evE(7DJi3Ts zxR~>R)$R~?Pv&&BsiQNoB#xuzWE-IohiP4*5{xalj7EYth`q!YrqbYh|jsI?H3r=_#MoAt$76~*AbO-p0{w61b5`dy6VBXVWW)1d{9B4$bL`^DdEORjB#-wgHjJwpj zxT-;}S_lWpjoiQmnE4x}KipK*>fV<;K0v$ZNAV6z3yk$#>2A08H|^E86C(YsGB4b- z8*F*9Z81KFLlng@K?EKkqD!Tv+D zmwle7Wp_YVpEwVzTpd?cmvvZ2bwE{oQh}F$Ha-EnvU-T(VV;HdjXvch&cKb`L|pG*6;z8^AtE^@E~84e!v( z?yIqtM?CqhA#fpuT8i!sYLk3@URn_!9F99Rsx}$(qP+vZL`0-Q} zXRDwI%e%Xud;e) zJ)VH<{{V=}3|jB~N5$Fdx+m9=weR%(e?a(FtT;4!vVX$w@7MnTFbClDFfB9pSO@`$ z!-#Jzp0E8tp_hMldaj3eeyla!jPuZ$&tpA<`S>ETmM+iujH>K+XX3|JUi^8_e(YtR zgYYu@MLOqP!}--v#RUeq)e%eGWqAwdpt*OA@IFAZmwr|>fM~vxKv1Dt&t9(&bTAw^ zay+rsdGZs*Wtj`gd-w0vl5tzs4vFfzyXwiI8p9TvX{sDKWlpnbwu#p(lI6<-)92<1%9I$^71u~glgH~%0G($^ zWjx#~k>JYg^w>cQgFOOHN1&;dB$95lxp=7@5$Oo=o_(M19Hbj8<;#{V%vd;Uvc859 zWO!A|D(S`T$F(Aq^~daUypYKII52c^x~0LNv2eiMf-`Vk`B2f=yWL?${h$pk2%z{BDq0r5hF-NZ+nn!nK znoZ4^V<)iIraXj859uc)oR{~GO?fZe%x5x1A)E08re z2}Zz2LoA=p{av)JD?IxwXi(0E;N6EgZWl3Z=^WIin=Hj7|HtyIQ?k& zPEU+njrJQM11qXHNXn|2S6R|0G2g7RZpkv44msV~5}id8X1=h1D?#eO$lXDe8RR+n z!jkI6uQq_#rlR z%0Z_l*2dt-dm}1CESh;h5w^iqy1OmVW9^jKoyomo&l#8a(i&h)3)BU?9xB%9O1^r!Hm=~U(%E@uQRVh5hR~jL4)LE z`pFmt^K&PRr=JDy^!+_ezVEB1SHa0P)lxhR_%TR+I#i32l$dJl7ax{SDD5p5z<5>Tnt=;gnA^pn##aFDzG=`AqJ6> zP=f&Y^JYn8k>ZH7j~@4?(JLaDQf1eWB%1mG{{W^%q?{lV$#wSUM;4j#&1DpohPA>TSD*33l)&Nb9-zOQbN54FbzF!WeZ_k`$o`%rtc7 zm-bwa3Aouf;|T;2O%Nvl3=!O6VIq?ckP|M|4{*kpV(b;{uXJ>gaBN;5+6M)&5 zEam?I|HJ@05dZ-L0t5vD1p);F0|fv8009635d$F*5-~vpARlCf@%n(f#w(#c_(k1KA7}MJjD(|kD;fk zJ#mQTwgo$~e`Mj#4kUU1M;ODN*vbo z4q-IJ61C-zS4k7Roz*;?SIos-HNpxwEODB@5-4#?qdd*E?|Q8*GslgI}} zP$!Su$Wg!{=vftVugugC?1Bn0o=*s(jG~9ggi0us_iUOqO>Tn&gAT0Z4KO{~LF=RI?n{)_Aro*UIU9xV)R2nL+)ulLXfldj- z2F9zXtMl1YW~DJT`g#ZCiNKu#sO_OsXOe)x{EH5)3X`@>*r%$4WZ|+Z3coomD7DvG zBFci&4yYD_E(rNzjul@J+a`~3RGXuD@5@S^oaMv+09vB$9z8%)HwufkO{c^LjWPrM z%D*_emSzZooTM6L`5b`{T%0OA*{ItwRGFh^(7!D@O_zOwuTo&;9fAlTi(nIE2#{yg zvi|_7Y5xFV{=}=RbBEG!L_Ik=o7z->aP#VfQBFDp@_MWlCTb-CphMIFG$&T5Ty)TK z930ai!l{!hMfY;4GnmhH#5ea()il6;yoAS&mjmd3HlO~|t`)h;8Hx$3q+oMfOh=+h zB~*6FgHo8?0s#pMM5}UNlKhShP9UgY^hgSDs2~?e@|yO@Jl#}&j{g9{g>HGW8Oj(~ z;0r+oKeBMy9@vynM50w!8#Mv$a-_`~f~Gf>+R4QkO>+c#vKCxnS8>^)Fkd_W04k$y zI*@i33PJ)<*%IXF0xD+)rlNERl;>zAJlvR6SOuj*V|8>U zi#0vRRVa7C${0Nnh?G05&S=5}qUYyu`Y9+Nvb-MptBf8raYXJ>C`_iXDH9e$z5!Dl zHT}*ixS-6}Zfh%#Ld&ROC{7xpjISt^N~-O$k1CUOxj+a23>d+xcF2@)D4YpECa_5< zk8x}eVqoq&j0Oh?7@dlC9cK)~Al}F^f(n9xP!zPQClpW$0)oGZt&&Jj;i%MP%r7_s zLUV`>5EI+_TM3i=z^<+6UAWzKHC+TzOdjV-rpq;;DZo=~l=+EHIFo~%U z07-BG8kGqq0MH;DUp8!p`IPLfy~;HSzaT;}I0?XrDqDo26sZ9WY=YsqT2%|oILskc z?~+I$>c5)}RYt8uDuInTb4I=b;A;MYX)^CGY5GPM&bS-sGx(W3Cf4svm<=L6D6!rb9pW7Moqf~2Q9BSZjAD%b@Gx`_c9 zx^uJ$4{=o4?F!g{f+2-~-0HK4156rFe-d2pYc%?xqXKjUs-PZ+D#YHAA81c*p?MgT z6BRMkgsugacM(h;*@XTV1nu5`_}r)niggd!G=JNuKEZJAwqOsNf65)vMFN-!4w%_6 zu(Sn#O>SVx>By5-fvR0XjjIo(<4D6x7rE0$|w? z&~6i;!O?Ld&2vYXTvcWg{wAp&9h3h6q%IMrT}U|hcTxP6O}a1+Mx8=)J*M5ZMb`!h z*;N{eUE2wVMYMc>fu+%5be83q9n_K0Dv1pONim|~$OO2y!(QcZN_*@@YH zpz3*;Oche64&zzm#>G+2Lqw_!Bc@8LQk_TSBFANQ(mf8WZk#E)4c1Ud)fZEP`A%wl z`XM#Dr<2gp9#vYAAv&W(G|1g?40IZ0!@7f=lE)%Is7F*p1m{#WT}-*!4YGw;lLkJk ziTYC2=k-noUKn3=|0hH;_tmUgn0pjVCH}WNgSF&z~TwVU1%< znbtuPoO0zPhMu^xc?~-VkrJx1&9Q(d!VY8eX7O}MG9(Dnm>>b+WS6A}mkST3Azj0E&ZaXs;Zi)jxf z05cn%kwwDlHkBg)fKz}_oOH5#ofmOL5MTHTG_X%@j#)&NUa#y72ffN`V3J9|l~C-e zZkQ>XXsT44q-7e)1l`&qVWFt8knjtFr&+KWl*Y=XGwdsgtxd(E<3Sp#^#1^1p6$A; z2cg8O)W&Ee&6*d)cg3hB$7KkEs(e_Y8*-d4oTB3n11#u^ci!O;-*Jh*m7D{4MsB40 zk(C76$b2?dBS>io&Q`Tr?33K5&VVKt%w{pYfL3bh=FAil5fsKZDk)PQN+#|(dj!Vl zFqHu{NJqLIk=p6365|k_?K)fB>Z&+Pi2*U98WibtPNik40PM3%&a(py2 zFqFsEA|xG@7iDf$0aT?-{5YA{vf}Ftxcy00>9_;LOdGX6tw%Yu$cWx#mBlf`F#&`_ zhl8@6aHK0}qAjW>3S;1%7scQV ze$J>-sf9WZxl?x=ASWoWPZVi~`+&N)IC+#B5CL|;d`exzTu~K40$M;JTGuG2B6mjs zj4EJ|!I+KvD)s7E5`VH|Vbvwi`dA}<&?&7KvI5QgsP&D_c`oDPJ2LfU0Cgi~2AbPpS& zQQ4f_joj*22rh=rd{@LWhGnEj2vpU z+clv!r4~1KSbY=NPfmvDyxB8%{sIfa1e=9Qkpnho9fGS>*={HHH~#=7Re1)bo3lcu z(P0UU8mHB-O^pYrfhvt|3x*p8 zJ0RmaJGP;5RD%m?hm){$1^R_npW+%|n=lPN>xiX43X57lB{)2}%mns=Layi~t?&b~ zN8(j;RCO?cOO`@t|i%ZAM+i<|Tz-{Ej|b7rpQK(=6S z;6$zgjcFV}I$5$xE@o!Khj5)TLM;#i1-DOgz@1R0V^r}Fs?=<%l`?@@!W=g4fB>5;!qprlHj{F;VrEI1D*m0(B-?cw1mQ66s6;kZN4%MZ!_hf&I5>+t zA#-QUE-=2(^ZjJNA3&*4ht+G`==TuIja2neNn}VotlJkj93KAIciSfGu=3Da5BDjPg0ATH+6b z3yTjf6`dqS%-L~McQx0Wur4SW83%5Lt~G_dV8?I_{Yv88#|JfpogEPa?1V*DNbWWM z<#4Qd$|^vJu)6&=sUOTBp6xbVDFZENCqO}!!~hOQ5#U(^LC+wy%>}^y6JKNQ@7)a6 z5=QC`&B~8X^RPlwZ?b7NA9X7=+*;ChDeU(!g!qC3zN(-TO~t3OHE-}(=mJ{tGv-$a z9^vqxMca^MehR4KT*{Q{6Th{@b|Z8fP*SYigy}Xi6TuPG4(s@L)3GM=8?V!i8G8VO z^eU?;Ih3lsqshE4)IV0Q9}t#{7j5=bI97qFI+aL`K?$?dXjNR{BR6<4jHt!VxmH1= zx@-v8quFK%4K9yl^WhZe{kU)+!|!|(N&3I4;~YkZy=!k zb?%-Bf~#f8Re|j6Zm6I1Uj+WgpZF^)>>LXaWSD$)iwOfV&)q zg#K=tMd5f0z(>M8@ryDKlu46vvvt1AKmy7`C`MC`jVBkg+Ts(4ii{5)bzBu+W6KX> ztFrlX4&f2pDb-YcM#*S)nU85%DjQtu<`z&vlNSMIbj8;ZSx^qyO*1agMbp6`h$Cdjcz}wwid9wsT+#tnC>@g%4S+>8mJ(E%Dgq&9Fi?vX6CoWF z$T5gczayKX*x3{cl9MlcF1< zs2bO0v$R0!m=k8fIJ_sdT7Uwu5J?h$aBZw~OPv)sZHPN5N@ zM0=W=?FuLzQ5GOaj3B4edn&NQnpF-il(ri1I+@%50K^?wJHl{Tpx)@nyaWJ*K(LfD z-8If`s+Y#ja~sTT3a0QSfTp^U6q?Xv8?F_E9J6f=z(wzCnfD5)c^L>6RVnJy71NKE zE|L}J2^bmE2Rmg^qU}&fQeiog<71SjKG%c&ks7p&4mQm50T{_n&BM9{LU9_| zRdA5o9{6^`{MSwn5J**9XAHy2;Hv5i3aSLKhXm&82tcO;tfn1ADHb53+AzvTWmbu0 zYHrHq@wj$WAOc0g37`^9fVyjdAjmjbOGwccz!$Qp;$@%@?})$^PM{DVgb9YYk0dJ8 zYZ`76M`grR%@mzrxP~+rFo2!_FjY#gV*t4;ilj$QX*(yHpgLfQmBdqdmRVF|+nPpU zWNI*VlIT>(biVs89-QYT#ZnJ!3+|Xqtd4@AAK2m+&R{>-pq%3XDpUl#%eD#i9eoi* zkUOb#>@-7U;{XLthz_fFY|rwlRCN9T<+{H-s*KQ(i>*PM&`AJFW2`__ z9Nf8JPRf-kfy@Y$8sbLjj%+!yv#=bEBpX{q_JNu5vZlnW^;~@591N$i@u*O2aD7h$ zx~D*8V3%%Fi=^TlD|Zb40Fr}6t`q7y8WlbqLkM&9C$e*iB+0~2uUUr9-BEw~j2}>_ zzVzySimc6AaVWXILVIl~?Xe{U7nT0yZBtI^z0_#rM&UbR6Q^Xy0X9t|+&O{>Cev{Q z*)-tdB2Y$93RUcy8=9eji-uO&xLHmN_>OCg2Z)qfZ&Vfy&<)8>%^IHgo>{{D(TRk6 zU_g+oHrb?hD}|^!*_8JQq)j@2s*KgA8C3>_JQRE5<#|s|N4h=H?}wCQRplP&Cig)> j)n?R$1{1on?1@i#uvBOZ-O1Gr`9KJ#kp;x^{{a8lD5pv! literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/froyo.jpeg b/compose/snippets/src/main/res/drawable/froyo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f3126d5077c9961fe6c137368e44c5472c892459 GIT binary patch literal 75308 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�`UW4& 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 VU&Hj&vMjlep?(*ik^can|Jmjh5<>t0 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/honeycomb.jpg b/compose/snippets/src/main/res/drawable/honeycomb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94c892b576b5c3842db3cb99d0f5bebaf04299a3 GIT binary patch literal 77136 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/H!HGKBZ;?%8 zX6KPklbrdK2i$HRE|g*wTk;Kc7z&mpvEFQ<7$VC*o*o5+xjnL1MUcFA z+-(S%4F3eLsr)Xg96zf8T$_&0Up*pB=2~@Dpl92r6dK=bycF6>Z<=46ky&)ntts7D z(>ogN$^bu7z(06M0jXIQ7y0}wthn#gDp25?w1`eurS2K-D7u^3@I=wEJi@=8`FTbD zM14@5*rF6l;cO8+tmCr1=lL0FFB9mlTR=ks`S0@UJc%3Ewx9X?&m)kr$;QC}L|V^gOB8Ysq{nb&;< zdqTAxga=;aN0aI9}Hg9e;3>B(UgM{512u99KHL-CC<(OKZE z%n;S*o$JsW$kNeqmlj1vQ!kigN4I_94-{unFF;+UA7~2PN!=^7Ed@`cUSuu_^H$md zqA;&QDyoKrJb(22r6Kx0=XgDm+ecqz&l-k~B*lYq+Ld4*Yg%0TTUW2~H|>X|d7HD$ zNk0MQ6`K6@_kicr6b)S&yV+0;jY_SO28SM`Z%_~ci86 zpc`eRWba%PCniW-yhC_hs;|!b#lXf(G8U|xdz_4Sz^*C9E2zgpf<`sIadOsf17G-E zWnpQ8o=stdDk8=vOWV|B)yfoj{$#mr{7r7`1f7~3H|vAScXq;1I4ZXGtIZhuxK?pj zYB@%NbdN8mU28i9b{eRk-^*2zY0}*C-tgYvd9}7&>4Elz{9rrR6P%kxJUU;9%CT+_ z%x$c-nVGq*d=)m&>=XsyBq1m&`$TPPTDCgg;Kho!v7*L9uqd6CD+0@lc8A3Lyi&si z{o_yH)XS>@;m_^ck2hew(Ti zDQwErvGT;Y7C`*QQBAflAY&)januxP@oWI6+7VcE@Td_}=Ea8Tf}a-=AbeO;z{vjn(Y6@w$&09`s%r|KKnlrWa zD7^rlopd!gl&S29!FOgkn;&j5S%xT%P!(}n-+cTZMNr|NpJ+G*NNBH>U&L-f`{tJC zm*7>Sq7#nQzlzwQI%p8xym#Qc&1CNNU@OjV)`$w!#`D!Z4)Q?>SkK9STZ^2js%m}| zxL0{>Or4*uw4npqud8C{zE0(+xqv!@AM)-op5@wzs%0y3AFJjr81A>kUhW71kBSA$ z*34AOZ`aVfe=J|lo{P=+p>>tUHCK=56h(xtF<3b4_?-W4pPfz7=p9r08Wn`Xsud~c z$hQ?FJ`INuu;I|>27?sEyg=P{3F?oCF0=xSD$-}^h}YSeEPw2yio4Mi>m$!=0{(oZ zT{EgHN7rB#`=c;Nd*$hOxZSM;?_V}3fLsCM?m)f>yGF1INwei4=Q#S!RL>-|OaoaG zcZZN*t~@h+b~`$5qz1}_%rN$An^Xf!%iYSmL&kNiyivQlw_UgN9CToPk*mI2m3rAD zh6lY`Yc#a!xAVnM)yzzXhD2bFi9+X>udh~Irh7bDr5q}rwdvZ}C>wHQHCj#Z=uqn; zNJ)vQaI@^5?6+D9s5{cgvz)zoN4_FGQU4^m?YC=@zLKfmOs3;^$7s6Z26I?+VaQ za!(M~p}&1z`7@-K;}4sV{=}xTe48#y8}2)EMZ!cRS{(F(*979zp{S}U?#-UG9Bn(C zLQUyq=6=_>8}&YWWX^s$k+Ir1tfqp*I5xfa7SW1Icw$_=cP{fMm`HxJ5?0dkiWX2j zyL`4KKba#JT)hGw*t~k$JAF^P9WVsbYq7qsU31Xzu#Noy@b=cH3xPeG8Tt6_&{>(F zW#~%bo=w)TtiR<20~N7T9;hNS;T4wdcxu(`7kKX6BVU7JYgklukep#YK~j5l0@6P}KmXTX-C zvtF%5M^4P>K~gv~BG^N;8FC@e}WcC^KOw!Tn$OjS3GvC~`!0Uq>9iM++jvjAGQemYu zm%nO28MiCx%_%5M)L))suVF#@e8uxmJ?rW+jbG&*y@fVcL?BA~1Fz}rG`V65DcanW ztoM6IxBArw;99NyBJ^cqT47#Vp`4R^L(PPrNdQusVd>E%=B zoc7#2(vw%U1EWl>vAoIkR%GDiGo5+;r|87!y+Bs|&5ReNnfrPuyTxpAXl|*=VNm84 zzU;J6@0hhfK-a20rIii3pzH~=cYkxbv!G{nPQf=nA8G&*emGoYQmEnBJ5QA|WRgkpB{gk)9 zZcFtK)?CAzeO2X}Bo!JwE<{Rg$S)V#19PiWJI`VO*IL_^95O&@0`}PzS z5mo@pvA*pD{ar^M#53RYF;Ny#?;=86u#=1k+zdZRNxs%Crq!!Y5(k!Uar4mS?!8Eo za%X~T@z>n64A#a4R3{_^HhiV zTMe3t%DyRIruLbR-sNpG(|Wc#1gx?V_H&bMgLT286EzPA4LOgdx|)~wtZ@)7e<3_S zq(Zw!M@ivR3D_~p%zQ)Pwz*r=_R@t8686nk;URic@Ka+;fs**DlaaAg_EkEf#4fPR z4L$P=FiqMI0P(V^s@inV`*4#?8UsZsw1EQd>_L!}tOox%#qHV$palA&#cL@9mvc(_ zt6xte@-#5a3l+2`arHMgWs<{ih_Nz1*g}tyb?zWOjk2g+SNu0uymlbb)F`D4$*OrA z&JxR~6HIjBt_VXzYLyRby_B1$3~Fx+;0WaYZdaX}xoGBKdCH4^&Z@#$R_1C$cOwEB zAArngxOS_Wd0kLSoaz^7b)LT;fFa5|*u!~Ff#mj5=YyH~f`wBbB05Xlad?i4Q#>M8 zq9EmFl^VYj_lVcnxKXLUO?SK;t2z^1kw==CL(UKPSK$4>Q{%AjLbE>ol+%*S&Eow5%t8rDt>cCmYsjv@k15wvX*SclBZjS%wJ)(h3LVm>zv?yk(K@ozqd%a&55>$QD#++7cNrAIgkp!kFXp z`T&p+`4gnb<(+TVD_P*Ge^n-|J;W?AVho3L2r*M!-)>k^`HTA5cMbCzHrTq3sZxgg zgVVq|m-c~(j^KyhdBf*zgu;#nwn}Y^ZK?gwfr`C{jP#mX9dEeaTJv=QK2tV5>7%l5 zs8_P)()tzg401R%``L4n|C&?p%;KD9Hs`FYmDU77@&z@6&j)}_O;=QP-|(b;k~KS4 zy^S8jg^_ca&%{Xmw>z|bd1(TOp?!rWq9iB7y!r!hlG01&|7-p9x+8b11|3ba)S4bc zA+LMoM(qrOsj9;Dyi<5n;^*(H;z98tYo;$(08L_y7}6#~did7CU9nj|r#{a=G3^`0 z&v|UX$|0NVoNhkCfihqH>kxs_X5N~rUGr>p)b+hr`$L2r#5L)3^ zghl0Ju#e}GapSIr#pyM^NpR0BcUn3$UP~z)#;GFwY1bnM3M4&NX|{*FQ$7wQsSxh5 z>wj_HUV5V}QxTtk->wLk{w)Gph>?(KBy8Zze5u^>wa&cDLSO`hos8>2KD^V=U;7B%?Y|N{OZJTs_U?JDHe}|>4e*POE{JyoJ#fF z*o5oanfI)IQRn5>K`#*#+WAwnsx|J)@9WlSLj`!C&?%_N`S~qT;}{RI!YIKNgv}DD z{qt!)B`CGFq+8&HX7>H?SavNyxxjCT*J^>QzM{IJN`kX!u4ide!K8N-$2T@`gM%PZ zmEEbg+8D`8JEA(XT$0Qh$Lf@iI`5=@nWQuLn=2 zcu4v^A1p&%-tI8;`{01;P+Q8vD3eiF)0F8m zSw$^qv0DxkozKRyCv~VjWtEm}Rl5{YV4Au`buon+76#5UYrPB^G*0K7rJYbB_Y3em zrWl|Ot5f=l^*hy3X>v-Vt;Q?c_w$dN zHB!p_U8B_}L{~FZtlB26&#To#*>4*~cJLnnemF&q$klsSXNK#lp$`DJEAz3-8_C4) zMi!`2r_4;y8m;2;yQ9Lw%)wj5I&pNWY3*OF0w{eTLSmVM5`;EuZ&!F>(m03D)w)hkJpY&du^dq-uQpr>$iRdI7PpN3uvJMR0&g4o4 zH!`#ZeN~p1AM+sK-c=JiXY(|^UGwmE_)_W4(^j}=?A|5Fap}oTjpvZltt^=UJgOGP zmYh+M>Z)VIuw)A5>U>1WRO^n|9Q-y0v$yx&*%phWU+mY--~9qzi!hhFX`xyMLW_rZ zmO!0_ei5XVE}^^I{T=^t;SM=y21PX?*UC5U zkYsNzqxu9YJ$ZXMGam;sKS8zZw(U9?5Zo*{X#F&9T@0)IUS`usmymkRTUr!h}Fi;gboMv{N7hY@G)YhlxonBul zLr@(zTqy)@3I0#pG-n#V*W>Nk*?PKt0Ey-G1nG=O5~w$w7H+YO+r6k(!-Wrl;@MyQ z+r60n(c_I9`|0gskE;+3xmxAP;(XKJ3f6}`ORHr8HhKQ=>SS!Eq_S9#yuE1;RXL@a z8n-c74Ubmj&z9?4*zL6|0Dw`$EwI+Fm^nS_tlFT>7f*`!BhjQI5ymj)Tk$-Zj{X4b zD4*x${JxVYoes*u9Fi6;VgAO+aYmHu;eRtZj?l5}cAHzl@o4rHJz&eEf838oV^Qj` zJhlHW?{AeL>wC9^j$z%g^5-36^jl3nEfK;ccgFy_r^so^>_FKi!M^LH)K;?0$?0RF=~{cX~Af2{=y>F9$AIYc?Bu zIx|bRzB;Zs<2-D_jq~LJRmvLPhRX*_ZcQ)I8#zE5nXY`4=g1tLU!JuycC^gUl&`03 zYz!6~Z+;`&5P8f+9qHk>C?9|Wnt+(CLUKN@%B7kjS9SP3;$BjI8q5`*#Js{7TiPV# z@CX<^$c;U>BDB>FGB z7Uxsl?4$CV!FwI_SHmcTNV94$E2F6F1K?5{ug*SDW(~!NgQ~v-8t>(F)`!f#RFVc? zI$J86w_b(e${@&^k9 z*C0X=%T8NTV?R=zUS4Q?_>4%gYGv1^DahR2!38RJsGb$xm%XVW_3@gzRxY37j>c1| z0_S0ayUud$uZAoHLvvPd-Wc{=YC{XNd#ipE>Ih$|(3{Cchs|fE+-OnwB{<~Y$Y4&~IoApJSLPrEb^6z&b<%d47a>{9U7FL?O?v=ucN zt+>oS8HTXz}K2Pi;8vQ1ABtq6vf8?!GgXTX~N)*8b@t`iJLiN#vHX`aDy zY_v6FZKF}&Hi$d`Vf=fnSGW?pGl07^-vkY$1R)cBin zM@kp9a^32BybUnILiPUwr$AW0CcRoAW|7c@eF0ddUUOYwt%QEo3F`fX*rHIkfbYsAkW(M$lydFKR~Yny{+v2y?Oy$achTdZS&&rf}#~$+DZ)I zr6~XqMM~(~z374Q-o@D0QYSLe@3QP<|h=^hRPe zv`Ts`8un%W!6a5#RUU(|lCSPapjb07Tl)`gf-rKx7ci70428(5p&IG>F_TGFcj z01;m%?Hr=cWh0?pr5b%spNtg0g9Qc8UelzS{{XLwp=z#=r&93QUX*l^yZ1O9Gw2j9 zs=g}q2bOWrBf67)t#E^scT5rDa?AUyST(*(dF-5%EXUK7z>8 z-%BeWg$qOjeL|*c*}R^LE-r~wW|N_+m=F9leHdlEK&k%#992amCbD`R4=>U%70R1* zmgM~+6>HCyFsjV|!~j7M009I51Ox;F1qKBK0s{d60RRF65d;z;F%Tj_Q3VrWaWa9C z6eB`Xu^=;Ip~2AxLvoVg6(oZ2G*d)lqVfOQ00;pA00Tb()S{@41_=XiN1ag2U6g=! zwbGRYX=sl{rm8YSM(R8c2M)*X8}zk=#6RrvQ^!(vUK;LZPFN2?s)sPii$5^3YW!1a zV6dFg#hBN`b&hjNKXf^Jb0GfRd`xgHIyZ#rLMZz2W(`IMGdUQqd zJ>5wwb*eNGAr|UYAe$sR`X^x~bF1#(sPtO!^i&kM=`yoGH!2?m!eoiRc;P^vr@C~G zbDV6GWbyT1c#T*^&&-B51SN095WjV**JO9T6x7)a)-WQ2^=qLqcP(gYwU~Z{D9fFP3U^N!H zx*=OE=xmDt$`*abt0dgQQk^~? z7XzncI9C9gEMmZkS(4oNeMHQQ(%Ckd=dxtJn<4LsW6Kt%5N_vNPjk*Wl$;o81MX=SAam*qm#rS;LrH zm=tiBmyqAPdA9ueFGTGT3oCMgsb3G&sQeQE>6||C;+Q?tUzs+5s)o3!4xr*|zm`iWr)EzF=l=)d7E&UO7-$WWIbqK$rY5Up5H=}!| z=OMoc73reR;$#IDtxlW#*Sw?f@B~>=yQkYM|CEz!n)cw zW51%r!s>hu3WsIcNjrgiGPA#Q%mhLlK8CB=IJ<$R+lyiG7Pb34SI?sRJ~mFz=5Nhf z%H0;bAw^xL(lbaH(YlMl@GOV{n!lQ!Vsk%pYZ}5TbE3zyFE}-|g^YOS4L+(_T;hI- zvqH)s_eGeDMgIWyJM}_}ae8QKYqV5!3Cwk-&^C*n?5;angC7x&dL1aK;ml*_XY)m_ z)O}G-#7Zfolwf0}lDSXA=o9g{qt9$-D|pdb+6k_1UaKS9eK$d&W-FSIcnD%-WKA3I z?45^^u|(QyLYD&0VV%8~g7}BWAC&Xd=&%#&++ZH-1j@PG<%EgV6kzGT(@ zsH!O60*Ws4;_fs~jzd>TYpKx^_iFmwv`N7_Wsy9b+WU}_cLSYq>O-VV0H7b*ZkLp zNNKSF?$v~cE=a|NB)BY5V~$cQWlK~-E=HC>p8R7^L|W#o?o?L0EYt&Rl+O=?nEmvf z2jN<{{a2dwbk#mSs#cq9jvqB6Uv77$gnYK0b+kzYWxL);CsG zmHPro1hZ)q4eR)d4liRgZ|bufD%Bo0Jz3iH^hJ`s{r;;>I0l4KX+-ov$=+@$qiO`K zCy4?d3z}MfG2LU@e(t0nLa}k0b{0>islgQs{{Y%nEyBhf!}%z1-+3|2>iAQn$ryJo z>bTzP(Ks7MeD5Vl-36?}O;Og!yT)voZ8d@W%PFfcXyIh}+)t zss2kbt`E(spb&7ieOKB%G!l8+{SdoU7GkM=Q5{jG{{VZ1w%GFlq}*#S%fC>u*|R|Q zoi2`x8HYcA1DX0QQ0|QM`E88-QNxEu(AKbQ0y9W$ZNL$_rJ`&&m>zZy2!};D)I4ij zUkrg4aK03qguuP-(?2m-JS25lk7lTi))o8yV55Bj9E0eh(B*f{eXZjp{_X0T=p>iT zAl87cbE>;Xfk#wZ(Pm-3sDU(gIY^~08hK_7xZdJ#wXJnQSyk0Oau4C^P{Bs%<8ZUJ zCl}vUqT7bMp_Y|9%W=_tpA(2@@fEFbEZG|fx#P0Ta<`&vae#Cy{5vh5wlI2TU*XL9 z;#hs$uuy;_%U{B?zB=1lS)G@%9%*BmhKALkvaG0QbT9l`g_22|TR8^>O1NqQIaGra z=H5`ybx~lWdn5$=Z)+PI-*m>;uBoq~iNc@!X~6wg_-=oT3IXm|ya9xHakZzo=$njx z+|E87dMlbn-R08wS>RQw96#z_7GQg|XD@T6$n(V>C{%DX^s?P(e?vHfnyhZFcmPq#X2;%cehSk98-HoZC zbx9d%^$SgqcT{anivAXUZt6S~IU@s2sX6X*oa-do?tpToYh_Q#n}6t?1~yA&HT=z4 zpTLrd)|Q(hO1CwmuKtPGc*GG~U0QktXMc3z_^Eh?7*u%2k4wMRc%@O1r~d#IkD1@R z8+<*}oYzyFOPgAbsM~=W+RXbzH9KTVdo&5{mdem*p4~4)(Ki%4+&h4I_=iGPDn3^; zP^Je~npdes?>Dl^8JO6=ZUkL;@1>ar^u zBJLn)pFSoCz&f}lM}4+;WrUgLSZ1efOB4mRJpS6L1?G*&{zLRrN&Z=ASbQWeYa`aV ziAGnFtQD18ZBaqtWht1y365d$Gz0ZnZ4yuoR<&2d%NU$lv6q#n^-w`G!?QSz4o^kl z(!3Ldo!{!pSA@ORa83>D$`^s+J{aO2;+KcNlr}cIp{)~qi3e?|7tb#?#Vt?uv=ut3Wp>)Ayfzaoyw4-)=%kugz1z5>d#hR^ z3iBCiq=~`RdLD=jOrQfq*!iaA*;%d?x@$(kUbKx4!3JiT?Vv?!u+UBinehG)Ru3NH z)08;v&8msi#=Ean#_rb8+}eeO&S-6crSwu95TXl9z;~h#C_R=HJ5)$sMk0>R(aFX( zJ0*K8&9#`Kw@z{*fYg-V4{w<*d5&(s!aFL?=E!pPSp3<6XcwTREKcUbGW)Za`5^4s z@cXD-e{)`kuhD(9yUU2!)3qrYYPf5%6|$g#C09kFX^vPQsM}u7M-McO>}!E>JS?Er z?54)b8pbI6GYu9B0zAyUKM$|XX6d@hP^GeX6dp#s3Uiopek}@j+9qk-INGwQ6To&> zoW}wYHO;9*82BOz!3-y%y+n zRI@5g8YYKP_XtfK7=YTYS1ou1Q>JiP8apE?1ETUz*zoWF09ozmyP~n3F*1L+tXtdz z=W$MH-*qM{2P`#i8vQ#jE20s%C`U4IMY0zmh{3`L{{So(6VTFhFMLlLeiPjm6GGQ2 zvaHY+qQW!n7>9H89h31da0iq1S?#C>@X=cGu?%&P4vs#EIw;%@xpiF--j#*DrW6X% z95yyL9gVc8JX!$eNCfq#Vm(y&DGYM6DMpaA8@ijs9p%9t_jf__Q2zjj@Pa5^n-L)1 zw)IYx&U@TkUm2{a2BR zlge&pY&G00JH}VxTwB)2E5Wf8e73aw!tkIS_ig&x!LgYz;D=vjB$#=m0oo19t8%+r z>YV3jvhK7+jtbh+7n;Yg#vIeV^ipA+U}k6LAJqT}Lse@wy_D0NKM&}l@Vq>6!t0UW z`)SfRxyMtfC0Yw&gI?969I|_$%vJk9y5buCuAFSN}YdUf_qz`HH-*wdzq1&eJs z3hQbIYa93IvwS+J->j}J9f$W&VNcz*-_rM9W4y7`a#L8!2)fSzP;XUQ+UUOB;jTKF zBfp}{YgBYrheUg?RArhbxAP(4`=#3*>JwPY zR)WzIS4Ex8XzRH{1%((KGpM+I<$hoJO>4JA)hgWpY%KMztIZ-OI*W%ZcFdiJ&esYd zIFwLVOGQb-A(GK<9nlH9K>RZF?aPF7y#Be?U7G z=i;V)-n2c2ipm2;87Z|vdaTgpJr>Eh{0Msw-bH^t>iTMlDbhGJGch{_7l&coOTO{L z{{TYHOWZZ?rE`m!Bb)4Lc$8efY<+v$@hHHoPt*mBIyjG#e80StRAuJ9!X)a53xC*i zMTK~|Fz(sx>>kFSFujWoQkz*q{kTTG0@m>H&Y!aDr(^Iq&)@F;c!m)l#%tRw63N zGl!=|9y%b`HKEi)uXJvZrDtRq)NG?`MW8ma#?g9uBJaF|n=#d+dn+!7LKUpe*#@IL zv;t>?;j)H(>-GgcXFcw9xyMqR^P+T0%IJ(w38kz%mYl=U32^Mhvzs@?T|L((s`_vn zA(du*l<6`xeT9)l7#CW9dQ!hvyp$_-J3bknJ)BlBI9?_09f`E^)2_8ij&I#fP7OY~ z`==ACEk@BjQMB%f!0N5Kp@w_gr62vZRbd&34c$TE@fT=bcPq>%@`adbvgW0(%8|{Y zcXb=QG8tR(Q(Q;7t#}2hD%Oe6__i6%8|EKSzR?hS4ZXcPg!Y$cja@AV4@C|TI~9!3 z4ZRb*MscQC+3+*By0uGA9TOqO#vW)pOYBo{c&QC?JmzW-RISH>Z$wHu1op<~KdAjw zI7u?Q65PRfUx>Rg5xLG5U4Pj?{Mlx$O?;6DmlVKPH{N3`b;>qaOdMy+?PmI^ad^B# z-fx(J=mIK+%QB*^XtPJ^6LApB1C6o3(Dfq8*W?s=kOC(HhWfgC1DW97c{Oy26p1 zy4D8_%%Ok-*YP3eyD!257m#ontx!NZmbxH9`(K9Qu;g2rx3OAPR|_XzE>>1~B%J&) zioa5@_$HGi?V^4+>0y6|F)qsKm|fnBKbcrLd82ln+H_TQGQ~Um$ny8KhL4@j&mcdD zZS1`4L*Zk&BR^8LD|-ka6|Gk=JwZdnd@?CoIiuA3byR6`tyS<1PQ^$m3>z`h>8|S*b^AlDc!OSZOPi*@@Sllunq21CJhz~4y4Bahf_0<8!8koQ zd5+eG$`2E3gY!0EGjDgn3{L$UN*+|>X6PxZSUqvH}X^tfp0VA8QL~(MAI}ap( z6>MGq00^f9LL~4WW>uQo^hXg3W@T~<^~$wYP}nYQk;*hw>ZIr};0F-rKIs+Wu%G@( zc>;tB4HT2Xf4HrBiFIwv#4Bw!yLC;2ZU5=d_=_FUvr?Z6aM zpCee->g6AX;hP+P5FcLTsc}+gd&|A`M>2e01dea9rHu`*waH$l)-y|%)+-S&mf1P_ zT69>fKycSJ@TEan;8T#34T*+bS`T01Qeklq0i?G1PomLpqH%W1x|b0vBZ-8PR3G8o z6*%4?^d0(ql(>msBi)(Lb(89}R(Mh*rc6U#X!J)9jGdWiU5{hI-IerII9Xm;({&CD z4S1Og8@s#f(M_G+K&FGCJJQBS%68v%47cV$;eD0{S`^(nJ4Fo7ZdO(8*1|DhXPK>T zcDGMO%z)JgJBSLg46f@bjqU1~*3`q7U*?V$c|5k)@$M$QG#sVL7cH5$w zE9JWCo;o6WaCC<&TV+9jV~h2X!|0tnj@4HKz^QQZ#WZAxF~Ee$Bf{fZsFAct`h*;T zR+<)GiuxcImj)tg6ir$5UK;m#b4?pMYCxq9BwRAGM)a@lpZ@^TK1yz4AuAUArO#^_ z)b3Un!7x)z5EcgKQs*i0Qo325T<3LPRNypEF5#-8z7o@@)qSfC4j>PQL+n*(wBf2D z$mp9CW_eCf(P2Lt?4#gr-l*^cbkg8Lk(pk{*Y^q7p9jVeGYqy*TUxCsEmf=Ns3YcP za?VHP3oaUIzW}{`8oVY}xJ!s=@0q5Tgi3QmEOlSyzSKwIl}In|+OX{w>9ZZEFSErS z9vW+1cU^}?)TXr3(H5s-yf<=O(_Yk?SVvWr&rfE3Q{O6fP*s~x(M1j(Io3<|!L-}oW3t1**0we@e6$O4U8!2{ z!K#(&v_|TaJVU`T7)R<@X}*`JMj0H_xHO%7FJ*lY3Ha%Q8?g9~V3~tsa2R9oig^hA zQ{Z-XNah~xG`v}q1~uAuqx!EF((z6!8fF4_g4YVYsY^G7InB+M!Qb$!RDo5|6`47$ zG@L`TCOQ!rJCf2p6!<5Tmo#T*e{?H=D>Kk|GCxS!sZWF+do4bI|>^N&`W>rl3^l?-2 z-0%MYaafjQb0l_L*751+zS9g60j6><+#|9mgQ6uCODrX~eAW7|E=Pdf3TSJMFEe$O z_Je}U(S4=X?HD&d(KpNTSSU9`U00ans%EGHp3PYD-(yP|3%`8l4$jp>;uvRB%N_Wu zaC;{mdn+6@R(NQG2CDHmz&0#z@+wDv+`+HruIg~?uVF``aR{mLQsj-l>OBIB!Z59h z8ZtXv{{Yn&mpGdw*;??|hg95d0r5QBsI%mHsUVTjy}Gomc0-4vV^Hja1?-y^7BQF` z__Wnv;;`v0yB}5I9w(Lfc~}YjEI-j@A0Dbf{$(g*7c9GU+SiwYb0eTDD6do-rK>1# zDb}*MTBo%1O~zr`__dNh=G8%33q)jaUkGTjdMJD%2R-CESDgUT&-MyTOst}M(c8purpR?+(ZkcaV=_q_gQA(X2-Q=F;bm>d z%-uH!_KE990NYUr2`+7ZQ?1&jnz*(rE48c zvvs?cnkR#%hr02GWexEu=y!H+)p)dI7fvJ{oGbKGNgJ(#j;F53%i;PrZf!NpvlU!N zRYg;R%LlJT%JOx;hx;hzea3PUEQ7IAx9}YnAQSg))6q^`2bSyhMk;i=eyDh65z@sN z+e_>2rpC@>mG)22dIgm<^+9Q(EmQ$cY>>{=R6}H~%Stff3)`%3)O+x>>nPx$GDzAl z*%${awcVq#@n-Fecd^xYoCJB%$1olASVx1O2=*UJclKBeUSBEt)}ZKA5;rdWNtxESJfz;mELfk&%+L zIDsR7?7X+rg)G9=Amr)ak-B$1lz3Jcez-)*d4lf4i3v~d3 zyr~}<-KLQxQq8&phKn)EHz~M0BN*rW4H|naE-0BJepjB|RxSgqWQ0cSBjka0x+C}) zefC2G4A~Dq!}U*+M>*S-K^GL}oe?WV%oo5@UxkMeTC(I^-{hpk$Xw&>H~^YZv99U3s9zJ@1KK$aUDE#mupH*t?Aq#sTT1uhY-2{jrGwAp!uZ=$lfX;YC3NT!ZP9%h>fk7P5j z+azcq0nDr?4Y*iM0X0P&c!^H$)8rNyoRVq=mun4(F34E)Tkyq7Q?kXq!$8*eDYy(i zNS#H;DLqM9ot3``(GnAuii)%mgBa2O0N678`Y$gPp1wAN?x-zOR;t<%J0a$^&TZDa zT6|I#Mg#KbZ$PoqI9?&zY!*KZ0CSr&e~kwke}=UB=KlbNfh2#~ynQrSJXmXB`Si-E zk!|sG>!KlPswUO&C3$2kjA({04CrMXj%`p=;LSO`sb+B{#*^bA%_JX1;_v`I)0}@8%(0HIx@h)Nk^|XZ z%k6k^C4xY`sG`@9RV@}|6{FEO5z#Zod@46@DIe{4-{hoYoWk03O&j6NP$hDwVrFY~ z%e#+Yjv2pZ!#FpWDFg6;fV~!1B2h-u;+3vxqK-Gi46YXFjr|Zs#*>@TIFx#WEpLHw*$vLY01Mxs z8xQV|GIB@4G#qMQCP^z!Q~eh^s8>~%jUaVYR)t%(SJ4Dw#A8E`CPuF(I|FTo%WGZw zCdh7-%m+m%I<?1DxyH#wX?!xEvXGf8{Fmy<1t;NWnj#M=)7zr6vIHU1fg2$oI*Sbin3>IK z{J*(atYoh)c?{^mupAAnQ!;^wkb5|+WLDEDb^c?r5=_QS4Op(%>b$IEPOTinr(=A5 z7Mmfu*F}?}%{u`4sO52q!!?RG)kIwHDqoY6+JCZr{3Sdzic!MbF0wv~*x1>-?>Dl_ z6H{Egx3&F^p!it!*|F6FuR@J1g=Rc8*;-^#O@EAyI_R3v1D_jX19IRN0})0nYfbG= z1!5~nK?&oaP`ta%kPS8)mEqV(oLJ8KjnB83FiR{JO6` zCdwP`gifV>SE?$)6rYKlMH_Yf79RlwY;1*@MINeXT|tGy`ngJ5mDqb9>i+ppNuwZpZROYP42?2vVYtWazOCY3_zQ4#^^OOo6{& zMAniBq7VtTv>GDwvN)N=jz;dAHY>=F;D=9lbzI9uWi%B;Quth>@r)32e}2u|-%skR zqO?09sx%j(=}Gp?iy@}wFFNnC#xdEN`aRY@J@UKi7AgM#<+Oa(A=^8B+jI(<#=M6= zp$jz5f2UPzy44jV%@|(CPP#0nMpmsyQAyrqRd5<0INi?~h zb0JxmiD1XvTG>e3fWzt5Ts?qvWHY~QMNf7nZLuSKC1`fa`}uIB|GU>rC`%h-8-=g zdlb?_ana4B&kVqru=+^-0qQ%HZEL`Acr=`76_M?`?29Ka{{ZaQ=huddRdj$AOF2;B zu-S`_YvgD(Wj1YbezBgQ z^$4~{irHm-6g5`u_!6`Ut0or=&>8skF!UjIGGEb@huyuPw|&hsb=^ zX@<8=TZC2c9ZWX++`&D<31G`UWFT{NsYuhLMU`^V44DHLx)1F3qp7%fzRp7?z`|dtRsZN8BUIVzaW_d+(;)+g{v&Q z*jE_+#jg!}wPd5*f6DNed^xQ51z>Rmd2I#NvSTa`qWN{8pEJv^OI*A?RjX7};*pXx z)0%92kntZ1!($jeAr1&;)11FgxIBw|taXcVx?+uU^Msv0ihX zmouHaoUsssOjb|vQjN`Mb{+0@b6r=V3&W*&bMg<7YQj00S(VqPDi84T#(pXYjuut% zcqrh!UKT(1Q`BzsC*dnA^R#H~LL+vsM8MSE%Jg1i{K-BR{{S@S;tUZ;Ls}`sbv=+; zq7WTc%B5q$_tiR~l$*BItjX4m@HVn^S}f8qovmTKI!7_i7C#TfO7O|Flw|j5E5K&F zxQhN?s>9+1$2f33T0u<*;-v#K2fsCSMUwd-oq3!u=(4wg;^81!n9x_3CF@F`=0-VP zt#&EOx-5XpK8zZGe;52IC*>axK#keqWo1te1*WUAKVtZG@9Va!N?C5!aB`vvS&9o) zVFTfhh2p@G-~Rwf@HpwGPh`N~RnD4dF3L%s)--GSFR-#W+gb~Ay1B(VLgGp!qSdba zCc-~FZ=~N7@X%|Tujbv*j!l)It!b|Ty&~*PSx4g^s>5Po$sp6Y9acaHhcG=tVbZAj zt#(ezrI7XYDlZDcd2u_Qi&}kE>%(3-LNac@>V6wM2ltF`C%D-LXmmZ0aFv{C(w z;0X&T(Pfpl{nSm&4q9;As>3~{%zsUWw1bB$nto~WZ~T?@S|9)_g|1~mdGKN)>(jod z(ky8zi*35^rrcmlm!8gO= zro1{wcj})!&JL439r)U!wA};?=7hI3bF_Y_vC;rGD3nUna66~C(riQ?sth)4_C3$& zu)SF$k4hiicthClHYr+9cHR9gcpKf9DX;VqOTv7xVRIaPQ!!6_SjuVT-}R-R69CqO zKdQbOqrlQJOaeH3TMyxOj#3FuFAwlP<8S46e`Pa9sz!}M^jYLtok~9r!kJ${*Cs{zV#@{|2zf{LErNisoD5WKhkAITS9%i&xVe9I=w~$c_ zL^^SB)k%c$JR`a};x~V#`XXuOPD3DU?05avV^*{x$3*k!Ln4{)4f^>|I&Gap$hc7-{zgXW`xlF!~4qe0YxtXt3{{T||01v|}24}Ii{@vDPoyxeK0?G$+n#Ot34IAA}=R3&Txn3h@ z??Bf66_2WLVIG<+NIckV!~JD_pk-`N9*)&TJAe**WCvY$1G;n*NY~bF^f&Qq#`1?1S#)=3)Ip6{tq|P({Zv3(b|5 z6Cs1_a6eO{{{Vy`zW@+fBn1aZ$6w7lDVXu_%G>#?;t^S%0<8jbBF|TprobH1`WJaz zc3v4MXFGP(?7TeHVkuxwY>&JfeKIwWC$>I=429_!~uirw(&`Oy&1l zxKeZzS9RS2tS-TQqChg}HFvU#7~2dzHm;PVmBhKk`<01@_jrf1*~BjtZ3Bo71M>i} zp#9@P_R%vG+Rc>f%6CngCxO@E4OIJA)oQm{$^(P6trUJM;ZT=eaUb*8qa3;{;Sd&^ zEjC5&YZ@)Y&3&8%wzT-WzEp`)k@1OU?ER>#GZN(o=EJSreIpoq43NppghB)2dZ?1 z?s2l?WTK5CEjTCiT&%OGOz|unkp}ayW^Ja~2)m9@h&GGAsZD}7p@a98Z#|QVB%3^G z$*vpfjM-r%*cGX~!Fg|cI~w6ujqr71PvIq_=7V3EhvcKgQ=H9IP17ohw9!!Ad7FGA zTTtL2F-AF_HAVMszjOx5)f7{j;O3GD>KEHtZ^|6NGkTur#Waoe(Pac9om!+_OVL+F zhKIwP*@+)`>OF^|!(%PX@AdXf7ned5z}Qod!d5E4Y<8gV+%c0jX?mXCfjbi;oK^6o z6)z(b5xp*tu}z*AI7l6*MCfI3^}Ho5`SAD@A8yDv)vk z2J}*Sw@AcVbxfK=ijAY2_m%phFGPDH*6fNd=%VoK3#E7jofn1BOdMnU}a`@ zoeyo63MT;f3-`1mgyb7+Q73y`t97EXy%Aq$#zIfR^N{}l*|eK%;Z2< zN{|XnM9hhUSAQ>69uEN5wc(+sOFdeh%w&)cKndMpIef`ox8y6r=KwN&Yir-+u$YR< z@2-k5=C(Omo6u%b%MUU7DsgI|s=hj>1aUZHgnz`(#Ct7XTHe1@SSW(m!|=?Cx$93~QnQy5>nDC1B8VzR7PB^rv2J-couIEUofRXZ^j5PSlOqE}bj`Nq zLx+sIy574i9IejK8awp06WN)er%wL>(Kyzu*J>%BidKab5r##t@f7@CAdJMdx)17B zR-Lg`8yK0#(8HKF^w4kZ^sdA&&g`&L^ zp~f-8ZHoI-1DZMwdKGtUTI{4Bgr|e6Q>1+c*--di3Q1mhvZ*l=z3)1o<>;+n8bPx% z`V?lv;iqWPyt;G+Web~uv=|lhQrX`{9u@~h9KU=|MLfuL#I?Bu?gO=~ zWi`Hb%2^xDAxxOHuW@%wzm*0TUqVoJi(R;SAk-}ujgzvxg0T3Pa}9fU1I9jxA3e`y-6AvC;o2Si1igA8#ygT}-FQ=lF zpXHSQ0LoO>0AVUW42^IF<&1u4)SfJs9NB{L}>3n%{kv20Yp3 zY3-`P;g8+1K1MPu`V*SH2Fi&=#d+E2I1d02u#<$j@2UYr9}tmOu`*?o=%2Mt|+ zRf^0=clB82em4CUB#LkaP5A@83e^>=8*p=1lZ$f+{o{X_LpQoPN+DU%1!|M=bH@;E z>#wqh404WxK(VYmnQPZoh+}G88(-{ccvaNcX`}T3Id~k686{E4fW9qL4t4o6%=*6r=FGFP7OynC9v$ zy2N4u50S)nwMNscM_00(Y3INF#ZPzVJL;|ZCg#0~L715Kr$#mDYcb+a4@54?tV0FR z>Y#hw_m<^n_k-k~>#9<;?4J{dDJQacEPR911Z0y95Fj)R)INb}Xa#FBD=Av;pFf7a zM>{i^;zywDgNfm)29?l3sirA)rjDu8xVgvBA{Lt>6{YytJAMac}@ykHfIe ze218i{Q()?URH|HMORhj$lX!Icy2D(F+SPXc95sKkTptmTUT~9&e9J-A5ER4Hp6PAxkuk57-L>-4=ymdLR)+ z5J6Gnd_NV0kmyF9icBnzjl))&MDPeX$OPw+P1LWmNA^~HM^o%j1z1^CqSpgxKA7vP zPHsOE-{QZjp-X-p6%GNdE-E%ho=4>e)nOYIeWkwStPvxfx9$j7etfdD(d@92em9r`^gv2~W&c>SbuBx?Jk-iQKQEOKNN+tbE7$$MHOc-TJWK| z&Ug@4*>P}4b`BTpv$2z914=%lx^TBJCmXcGxJ~KR3SMjWQed!C&y?~vGyOdjxT%ZY zeTQY2qH}gMv2px3nFq~ct5@bf%|nZ<;@;i;l}_RXbwH2UwP=E}%`;1MEW7PVxUeUU zy7l$-MW%}>1Sw?IKM^L3CX+lmFEP#=eSHFwd8Co%+~SGgX*j!d=9FrXF$_o=?B$uu zP8!V`KC^I8#_!Z}Dr z%GFp$jDKmunHXHpF`1j(TEQ91DW;p3DE_I`OIvIwZp#m@l)oucGL*+e%o|xO+I9;J z{44NSLz^{ul6Ul7&^=WY3ZlG>L{i>?+K)usMj9MMdV)9fLN^eB;9b#B2s9vFvN&h? zztqJ1*kv#CEBi6*kK zoULfsBbjNyoe|wo*=2Ih!qNe4Y7bja!(v~Rq{dGvP6KWM7daPKs*3@K7-l=~ByPXL zI9ChdL?GylL|AiA^F}whglZ28JVuH`%os<>jX?rWpOy`*}q zV0&9WSG4JML@9AZ^S8^bOG@(Oly)nfS|n8<7pDt&MmI1wwx+FNu|Ia}bBepmwW-)X z0u+oogyQDu^IvAHqWx2`SnNcE-!WPvvNvhUkQ*S^G@}0i`-V3E06+KrsRh&AK5G*j zvo?2vI@<9F{vy}=kL;$dct^M@Y*;O8w4_>CTpTm^T9C4plq}Y>6bD7DY!PiXAyk??4q7LutHizQ;v%nhta@D z-&AY=0E>V5Qf_KEV&7fX8c6QgJvJ$m#^5(1jVgQn3DFh53qT@zDrxpkV_O^9K=;>l zSaU{gr8>=YPQ8_CLN6IWMH}Hs&`8-E(S4!@oWay>Sl|m*yhX1&5fge{{S!k4^-Xnx zGY*Rk?bsAQgwib7sbAAUxmauzQWk%>sj<@=I&=#w3b`mP5eTOtkMMZeV7v`|!YnsS zGW17O2t}(fStV=8&?s>B;_gx1cq5*3PS*M_197p51LV9CZ5xbl&qafHw!1|R6^5eU zOGWwlisz(H3R@sb$l!;HVGMFNL%;g_g(OaMTr~!fZ$)Ed2IXd|2&TX-=9-M}y@2Cu zRj9R|(l zS;MrYEN*uycjZU2D$}KNMJRkP3IICv9m<;&;$(gLbXuY*5T=XZmBZ$pj>BXmSk(Hg z+3hqq@$8>r8brF#4r>S>5FoET`M~DtpPSh-sm)D42`EJ1(zh-&D@6IEAiI^PN>-_6 zR5)dIFD$msg%-=2w0N+uqSJ<6h|2wtU^jqa z*${Tl(E>|qt3+8Vs4etG5WN$zGEf?IC}84a8(VCjGs$zTtje}Ws&Fc?431awJ55zF zu4uN7t3tCXT5z+n(LW2~ICrp{y3^G+5XQN?^-Xq;Z6-;rsT;PcSjMeHyHv~$70-~+ zr6w;F=?OLXM_{x^qNPX$+4q}-MQQ=s5k2Cli zL?hix8^I5{=)Tzm@s^7tLXNhtMXwzes5XgH#SnBt-B&>e<@1|PD-M4t{!0(IZ79at zqJAv^T9{(cbt@}YYvF5EkOgIPBl``)v93B7>+)LEYafL+9vnX_hKdKYd6-hi`f3zb zDX*o4EXv4SN$awjcb|+S^oO%@ltT-jt5lF;g)9@!wU6Z~3JAsfS;p z^O)8b0qU|(C%Us-M+-EmdM$Qc)hvKa{kktR<**35RZFtdfy3gP`A(k6vO}C5_Vq-# zt$11B5MD+i2?ybLDY&Qzap);Mjv&Wl(L?!YuF1n@sUKXc3*oVOvu*~7*x6ox2SBKv zB^yq{Vi?lyN4w}&YLpEKt63jbhYMOP$7Ne6SEBSq7d?4xXlT_p z0|^>=jtIH#aq5C<2W|smt+Bjy6t`JV3*(ibcTx3f!?l^Se3o;{QyOzgsT(yPG2rMg zWI^F>;CNDx6XD=qt1N^f(`xwX!Ptq~a`J;^L*eeQ@Ecn7)p%>3+|F>J+Lwmnxf?up zeO3|ml(*`z@7T3Oz}npxj6DYmyX=l$BexP$F`fw+lv|kGr5R0yC^u=$(5m5>?2UxT z@c#g3i$@*E?5LFMSjcN8A>UQvKmGpz$zqwKfI9BK>Nsg*ty~Jrn0C{Ks?p9UGqT*T69kZy}bTLjEBUTe;^XyPY)p1ON+dZlD4C{KoSN+He!Q5*`&6_u42+xj&~ zIda;PSwM7IT4-oi5?3{usleC0Aou;#U42oPCT8;iy33o5@!3BP^1v(;bhC5iS%%2; zPG~wKdvJX62DPd$4riAT=jxv;oaeZbQMHt*V<3r~2<%oSKZ18DiSng$Pi+&Y^53^A zEm?`-rlAFEqAU_HnrYQAi_5xo5(Tbrg$~Nr+H8&$rJ!>-eG{DGPUyJspr2{YKuF6z zh~cr0-z)it0;zRW3NLk(7!xpXx4Oho$)VQGtW;kULzF*`60lNLvc1$Zi300Fyw>D%e-Bh#Yd9Y2MxKf6-Gw{yDQ0+UTClzqgF0KC z{K_&t&O4oW0Id*+3DLQ(ZsSyO7#7KxY#bFf&?kkeN21vW7dnLvHBXN|jeBqCux!!J zqwcUXZ98p3PLhI{4=b}MU7e-1OaAW>&zNS>Yrvz~1=%@|UvI!LyW?oFz_+IxD{T`n zjj}c9q?!4ieoE0+f+4_yg#H~R8zCFxTrF&lYNZw&a{x3^*a4!gVI^-%SZCKh>Idt0 z=$nv+ic|_0!#1hSqS8Sd6#Q&gE3-YdWm{y?WO)>{wV7Hx1S~U1-CQ|uvimfE{{ZMw z4Lp}x!M~PR$Zt(9mxWLN0OWvH43HZ$4XC1fV{3gKl|E@J@UupRty-bR_g;%dp8)9G z0i#;1&2wvH=H7|pq9dXOX6UmJ6dn_V3~$7-*n&WmupW&m?mW*WIBen;CO?K}eO57_ z=BTkg8u#btHYje3Un5T7o%mnu^8^^do4S5tS~Mz7$^DZ6`alK0heUMIGY^M+kLAiV zPo3^@MK~S>5{q5|Og0=h3nShuW5dyF!q&}bvW69ns=lbo=RL<#sZ!M!wu8%0aGco5 zbIXqn7GkLcaM+>Q;)?Sv;i}w9a7CwsSDxV{gOGIYoL%I?>J918?!8osSOFT3N-0tiOdc^h_4BI5ncwJ{=RJmv9sDbIBp^ zr=kmQ*fHYcZfv$xkmF3*e(qh0z6PyYq)NTiIB4?8-$ff+<~v6076x52QCL|9lC?1Z z0GQPenWKTF_i@I@Xm?s6^FxKL5zdZU3DR@c>Eoh3m!|;}SC<);#HUDeIRI6lPYsh? z_cZkh(aQFb)nDv5NX)z1osEv)Kx*dqP)&To&~rg(K@+o6L+)qOM?uvL796#WttqIR zBr6D~l8x|ua>n8KNGX_zV|@-`(Ph06JT+QusU4AIh5rDQT5x_$&1brTT+ET7q#f^d z;nP_2+iC}c_sk(-&E}Knu#gIkgWYD8v9oHjsUO*NGqJ;=Quxnah%!q`aQtM~=dIu`;M#Dp~&kU@I%jZJ=$k z8bRb#fi{lTo?LCKUxL+hyJ4*(hy#{@R2E`*=A=TQV@|2K))|`}7U)yDg-XJuyr*XD zjE|m&3vK8VGSKekGs(-}@QOVOPb}oo_(Hz3~S4GXkWI_+oXTxOtg=QC871^pr zZnf1{0^&4L_;wJF#_fW9uP!dTRE?<{v(MFH+Tcv2*K(gGgMO&}pt$u5KSiP^g;D@3 za`M>Wsq{=TIq|lddLz&x4y|5@3r1S4yRRsHo+Ix__5GZt)@Hgr!-XeDJdGn_sBqa* zE?H|um?pYH*8UYXoaJH|M>?NQMyx>^G%QrWIm{JnE^dg~L0DGcfN0Zz$e8qj`?1*x8$f5y4Q`M)aJTMaT+f&Jq7w9)ruEgwM2de zAlXXk0LoMz6$x{|&r}rH$&227hh<9m5yR~Gh8~A>>De5cq7m6z)mKgh^ihSpx+vnT z^0(A443XAl4PF^IzqK)8oZAzytUP3wYNKu*LmYYrqa)nsbwF_RRH@f`206SZ&Q#v?3yi9oYh z@2u3G)&71~c8kA?lR-;I%4oZ(TYs_k#A&_FjZGa)18dR^~1knWAIx2)S%Zqx|i+(aF^1i^iFKSJ3j(W}O(FNBtw5)y;XI&4NjG&)y z`kDSmrO`g(X_{(QQ9zb%)h-tfqM(H}EWX(vY(pUxuF->2s_hLyEqb2GHOgXbqR zak^fUcz(0rL#>*=nx0eSdKI)*IT+K)tS6ZJ9=HtX0%jyZHmq-d&}*Ca23|<`3V5d3 z%I>|f(+|? zd!VVLZAdn|@iqKp^NUh%LPSKuE|^h&yI5UdD}%depQ~2}92qW(nkSw-K*|}mOtOkz zHva%k>odvHMepk>*YYp+rbxYJZSd+hugYSzwcMV5s# z&9~7rY*6Ur+Yw(LX^(Tru+mnwIdHqRO;ujoh)`0Nd}}{G_)&nT4&Ps{;<59?0fp2R+}sN4dN+p zVWAYfMRF=#*`hbMQg|fPO5ISVv2;hKA13k%r+&yMkHcBi@#|z--;74IQ}qxEoX~1T zWA7G)3Gr#;dTr7zMGd6CeT;W!kOt!eo05AmNvPJMjLi4i&EB)#(XONM88fvG%hG(H}ok!Y07ys9*XE z?&o!am%uLr+al`UpMAN5Ap_T1AQWU^b6R|0bbZ8HZBZXkT``_Gs;r z9G%Ja#LXbY5N7M_)05fqLxMfYuo!n1*=uC5^$F<;f0p-&SDtJ6$>VFaSoXo3Ez0Iyz+=sXA z6Ej)D8(ukddc88mMO(#t8;Pf6S47qoZ+!cIn3b$#EN>*86*jc4LVn43gEbDA;a_V2fLlMKuugD9Q?gTMQrrxErdG9W+5#x8Z$f1Hl-JljI>wvhv8$3i z#Bj7UJKv7J_~vJ`l+xW7k!JZXM`w1f1Gp&X>7J4se$9%EcePD}Ny;ye*E+_NL?|XY zVtF9bZakb?pN~}Mvp?q6@qGh)On0u%mUZdm$nW_e=~$R1V2Y*TY}Q*9Kxdi%06C_& z!6VE60L>4^p3#d$A7XamS>aNvv0saN_tf&<=EH!QbkZD&9xrE!U|SDZAs9&rv&&R4qSXscw$Rm#$3k zc;1%^grMhQq$eb-Z&Q7J?;@|~6;t@%^9GHrF~E;VL%M@t8tya>j{3;ExTM8^MPsc* z8`BkUGIFZ1F@NW@x;kbpTmBYV^NjJh>wlaizyHJlLlFQ10RjUB1O^EM0|EyD00033 z0{{^O5+M*1F+ouUB4Ke9BQipPksvctVsfFe!O48Yy~a8jqEBY4-at55nzGH)l#< z)9$Ftmi4aD4k9)_&Fn{kqlcZ-mGnJFBeM1Aajq@ExwwgZdYX~7F5f!Ept9m*9~#96 zSl&{~#@9O9jm>MdWbD|)+AgIY*U5gq6^uRT&`P|TGkWa@{=r|z-Kcvr4`ey!eGHuk z-P>zXX-ppE+7aW()4?Og;>Ar~itwhvMgTUM#oMY5L(Ype*xa6Gh~UQ5!Q_DZGO1sU zt6h=dH<+0;Utx5;&l@Je+raVx^P&uvqZ*f}+4g)6Bv~1G>KHKfOHCGr74t za=BCN$fZxltahACwkF8E=WdH#ojQn{49u&dy68uhV4qm=xjyWx`-;IC0BmAAa!?2d z;%TuHxhJ{_3OWs?8CY^RuJTT+>gLpV9%8Mrr+$i}?%f4TKXpl1lv!88ik%4_RXzT> z&zZe0F9i#L1H^K;^XFM>o$ED!Qm^jE-fF^PO{R#px;kh_^H>f)>K5=Zo7ZPRtm?-R zB3-yybf%g|cH+k8YeeWr9yC)zHK$-*w2XUCMq2CCNR}cv z<`%40_DLa3=*@jNi_^x%Sqh$qN|zG(5pVlaVb7x@UoNiSX#W8DT2__1mN&KXur;~F z%sg&9j-zes4~4))xS4=gyJRbS-n$r+mPyBuxcuv~&YSs(JhFwaM}jCLk0Lg_bv}PX zdx;Sq5&{iLg_)yeBFE-B(KRH_5fGLt z;5oBaCUz%!%D2!imibmIoVmXk5Bk%@!DWdIWb2i3k@BPIc#Ho4xZf-N2gcyh*SztZ zw&quj6k-@#&aXitGvX4_uAm(Yo|PskjE(ReD@}tDfx|FcG$f<{0G9(+8x0IIJ}K7W z22~wc)*^Cui5sukWw@@-xGjTm_+-=btRPlMaDp@8-eXsDoY1`kSq~aLqlFX1zOZQP z_K4;xNXZQw1JKdoNr1zXBKql9xIW11S4#AGb1)?c%HyasV3E_O4-rRU#L6ymqU!8; z0a$muYlm4B9ZA#WYV64dV;M-go&*?ldjK}3E2KEe_F&wM)Ek^eh>{NBMpaSZ3))2qivU+P?M5Q z>khR(8I91C<)*#mEX11Zb%6uDIJ058j z6kM^eqk|E_hP9*O-CCYg{YnWmwb!`cF<58`-1c|}?K5UHaWX|dwshyzaTG;7j1fky zrD5h+Gfs;l_eYO~VhAM@FzTlDiDEO^N9Xdb+ng+2*wc-@Dc zO(H`+`aIDw0FHO?tRs`V#|7xFr}Y%`HdV#pkCW70oPi^J^ELB741>atU9B=p7}bEx zqsxsEVOFguMy-mI*-v17rmR|$;$|1|tU|T&#C+pl;*%Mg8Q#oAqvQn`+bJ53HEpSg z?D#z(<+rljEGdh6j6^bz2LSwyVqQ;J0uL~MN{0c5K^QF3=wxm>bRR-YOftf{mGz1| zxYIcR3zI{$6aiz1W&Z%S5ARG`tpNZMdq{ZP;+Qh_4lg`J1KSAFW4nwW) zkeGyyZfZ|-`5MQqj^Hx&R$Epgb{o|ZMmXzoepS7a!$eIHdI}{#JSbI&G}5ein|)&I z_=ev}lwU+%^PYmA5h2v%_g9b`CBwF4YZ~;}A(SRkhbsZKP@WNdbKpT2qpvS$wt$cDm-Y@yDEXHHno4I$GDC#WE#63Mz`9_ zhK2tC#>eI>v#+iN{t}vj@CcY#OmXi!-gf#In{-chQI!7F(7P)wh^x~mUZ;Sj!z(6l zSl?OTKF{;8RH8(WIVxCaO*C@Ihl;TuEu$?(g2FRzVS9Pj3T<%spoi?sp!gb@n&slR zT;SAQlaR)ONm}+}!F;H(B%6|MPSGy%ANLo#_=cj0zMFj?`lefj(FfXZ{{Sjkbe0&{ ze5(O&_7T2g_^b=y@lrtxZ&6RQZbqC%d}syOc!R>8NFv09z0_y7>$23iWlTiLd;L=N zBbo50l$K+5JZnlRVhxQpGB_u`pk#jnKbkaax@&R0oZMwn7x6VaAX#Ebyj)!T>i|#w z-ba9x+Ms^U#H<)`6If=kxwZCYrI!Q|-pm}7CzWC_?pdNfV^LB}`l&RSNcZ@KHuqDT znwJwJNh53eRq2r2554~Hr{9%+^}=lKq_ERo^YC_$7r zJt`7Cb`c!)9op=S!#)VFi8+NA#6)j&-Hf$ufv8I)@G$PkpQU2(#NHxT?JlC9fQ;0E z47iKNiY`U2Dk#eudkM5hF;?~+N;i?FhF3$#{OP5BHUm;m04sR=xSZ}&LF406 zA@0b-$l9@}Z@s^rJ}MYlt;WaBh@*N2k?{(LgMyziMgiaBTGPtvink=#SE2(1E#Cg) zj%T3o6?^9V>Uh10-F%6snI*%__b#U^bH7SA`V!9+CNR6v7z{XG)ih0MB4j=yo^Bs5 zbhsGWCHlt}bI^1ZeVSU1D+u%?$K^|h!$lMemMK1F-A!9%)K+zsIgy!s z*IHwh^629Amra|7Y)qOWXgpZ-p*rQ046MAhvk!=_%_jc<)Gvp1zly*t6Sf>S^C9-M zZ-uK}g49vb)as`6LkZM+xqHIgiQ*{JHAfP9M83+M7wwwFVoA>{8}hwlB3mvY?bDCz zSlHZWaO=zv2kBePLdvJRA_BE)HLWM5NL{j~TO05`6@->TAjGKfV{ef>YaBv}j`OtG8jbn@l2_FQQ@sNTp3L_CLD zd0e}-$)?2M9wVuQ=TqQ$Q6kpb(qf~xyRNkwEq58r9S%#vF6I*y{UPT_c7+dJN?~2>s^>h21!@^L9Wkt zvf@cRff;XEu^X^5q?~{rf2BpOxAKiX;_WfI zu;oh49O>-JxAI}cY+Mp=3f@K?#XPUf);{a~LDQvUA5!c800pBUWt0ReE((neyeXt5 z*xa`rnMDInEKyE1xU+eVb!s#+wjxzKsK5S?O2tmb>=k(cIDBgp5MqUkAmTAAWL^vQk4kBz zX&mZJ147i&M=lkgi0*lfYbKOx!jap3H`K;%e)0P?i!!!G0WYGJ94aO^mje@i9_3&J zgDwWnPn|pB=P$=GA1|Q<{hq>kGL7eO^zp1&KBO$m)fiJu?(S|$zRS{ylQB7Ouay|2 znmgR54-s7LMw(Vt97(lDgd2n##$M|N(Q5+t%^Z=RyJjDqc0;n}#j_L3E?QXQ!$6Ca zakkAUQ{pg%K)H#p@M_Dkoq*#~c650oa3p_ham&)NeHDE@MS+ z!ob!op5Bb#8cxr`gBb=#?uHz^sFt}mHLk|QVIn-?IS-NHRyArpYDmP>6}o#BgOQ6S zE!pvt*ctGt5O-> zHnvww8`SB1t8vKIB>wNT34j@e9#kiLzoW= zWbbm@zMdGq@Gaykv*)_V8sp!Nuw}cQpe_FZQA+-G+4sBRR%7-M{Rs?!uni{=>$%^0NVD;G>`%HZq%nK^-Y^cnDnmY)zHC zj?#-9ct>Pa7Qb4>J%jGw@gOya4uSA6uUEA^^Qg~s$_Uyh;$X!JLu}){cszE8Hs@u`)YbmCFr?R={c zx)>aPiP@;2YkP!^?n#W~K1YRKtwhvtER(zCTV)#B=fb->d)_HgkG!`0>k5DQLf$CD z_N*or2gD?s#|mn$vfI8mY0XQ71}wk|bUwfE9wybIFm0mmKNk)+rIk;|7B3h?Nv{ zQ*%nwn9*_~8!GfxG5sHzoV6mH;?CE5@IQXN#xJ}2-u>f360}i4= zO9Grk@}q?WZkUH38po*B)x6jE zp^n4L8-00Glya=rJ1i_HJE-BW8Zf^4B+kD2uN^tmZb@Ezs^>wiE($3onoP1-cQg%ij z;!N0w(&OFopeRr@l1U~V{{Xr>r=tpZWOQ}2154JPR|>0gPLwdnxI`l3Sy*#!pADpE z!?&|2E96ZTBpy3smfP$EZhG*p$CAXuI&}boDjYr$@fb`u4}J9`%8L?7)bZE|qa3K? z-8Ffo%k29@$ksz@CYCe5kxuS2bK-hdCRRB>LGz|^T1a7#^<>xbrj5nnjX~y!0jUl# z^PWQ9R@rK~rk@DeQsxuOm^Ga6*z=ZSq-m=$qcoZ>R2nMu6>&v)8&c!2DPl~KYS-6F z3r4M3u_9JEQXp8hc6KS%B#gMX)}XN!*!LN6Q-8v+F+k0RlRFWsU%f?`-;L_q3OYAK zdX>nU7|AEwLD#6MV>Vm;{NB!)bPt2v2f#BgoT6#4zSZ%B(8&zQjhPX?vd` zSP0l52IHEIN0_V})+OLSit(DlmMkYj_ffA;zA<|$oD^`@fX#Xqplf}G!b@*s)wk_g zIBe;uHU66tM27N{nokc3nYGvsOrqQuez=3*|mok;|CdQ}4Nn$KHo|J|$hJacnH}P}S?Kpf|4Aw{PwQjK!FGf3e z(urzP|j(5tW=vKnsdtBnM`9;q0bokVG zkokM0wra+~?iU|)8pOMRAtr}r!Xb?M=N7B#8cLe@5v3Zo!HC0R zLme+_!=6z}KOR#^_uWA#KZp@u>5+OwwrOu}H7e)M4j$RY~La{&q(Zt?sOO1|Lm}FwDV1mG#RkrY`aZyClN+FaW7jI>&64%|l zQho=$Vp&@<5Znh!ND$#7Ijr8X{?QzVg$I}_?i~sQb2uMmFsOUUYmpA-i?DW@Zox}zQQQJHZ!G_N!GA9sad0)V>k9& zLGU$<;u7P)gHAKaI4K$nk<8k?Ab^XKCH7PK@!HX_bYd7)q*+(klxJU$5w`q@{FL;pSr&cUj*PX2xX;;< z{{V@#LyGLFOlg-cTdz%ifJ{mTwU`w@8kRBY#$i`$5mU>TDqi$3O3+5YyM1GH`=YzF zb+ZvuLg{*_fu@E@5xvuGm##vvaA8*uGVg4+u;jjJF#M~s-bKDQ zH{G^d{Ocsqz@P}@P(U6u0IQvkjesiaBwPnosZiOJgX6JbkJ2#%x;=#E=lHA9!^<0? zJ<<-EUXv01LJcJSM!{U_JQf?)4{N+fg?2Rl^pTU`YXvFweWJcvUX!vg%*y%ZZtAfd zD3f}%3Q1a6PYDo@jTBoEtsRTKY2-FYzcP3VVmpuz^VXtf%_nEX$EYM$8f&6LAs}Ad zZ&~G#+Sg)g+cc?hFhPh&$?gEw)cMu692`hn>t9el%GY-LEN%@n@WC@5xPBGmu%1-C zmjfu*5cVgc4;sfC24rF4f}qU1-p+*hsIjHR$pnk+ZuB1=gwkSgvqd28gK&Bp#lptR zoONAm5)ah3%9;q?d{PApJFCo}8fl!n8qp-+myOA|HPA{lSS)qSVaFyMWvz_Ye; zR{T$mB!|^c6L@D8Gh2HiD)<|k3o(T>NX>vBuHDra|u`;pw>AJ{UOhpy?TFT$ky+v8NPyyR99Prp&oP>cVJ`?70{| z{ni}MPlZT_GRVq$gIN3j0P5uV(Z^szmnGt1m>!3p(3K_Lvu@N5C&s`3!~h@>00IL6 z00IL60RR91000000s{dA1ppEg1`!k$7XR7+2mu2D0RjQ?BGG~4n2UA84VlZ%gYqfR zt68SjIF2h$Rs5JCZ|DYDcl3XyT;gD2cOWdVsS^2cN!nb&J6Nl!nn$BhB)qSOu4Kvg z>0>ag^(w<9&0QyqlM2ptGFs}<2tQ}(*ED6Y+I5GcuBh8$%^JXG+AD)H_qn+nL^mCq zTuOP$sKSG6Hs>#nGSm=b+Xq(UoVJ~Fh#g@U`9auuV1GF?6ZdkyZJFa?O-z^LTE#?n zuu1lcNDZ`;G4)MmQq{LnOTju?8A&N<6~%?IA%SPz>Xn`(ZMT0f1&FsfsVrnsAi2rR34=e; zc}H>jRm>U07x}tm6V-NUefW;xy&P1m)Gv z0v?IjAJXSnly{Rw>RUX4(ol~}ui^x}Sqsu)3aai~suL5*RLPaWiL;|kU?P8d)8j1m z+@JGhn_(YHC^wB;UTHV63-KVNLPW(f$PPc`{Dgn2KribzsXDGb){De0H^1aGbwlXkGiV z+I82(TSq(WxLBstyb|}*T8pQSIJjaEScsWR z^qmrC?p+xRmN3#YE}qgiHH`fkN{M1FRwm09-6m(_om+Hi@HYEu>4uwZQvqRD)z73+ z%xqdsl-+x)ie`A1m&S5JS}=^3(M@$pxNT@FKHvugLnp3|^^h~o%6!Mkz%L+u(y`4#>4S*KJ>v^g_9F>ST8n_|t})D?iT$*z71jSIBun%P_z6Fo~jF`a>u zv_O~Y(X=*6?07`xzvDwxB#YU3bT11&(%6`rh^Fb0=d!&of&42NnF8Y;gShqRF4VjYZJx43#m$=vNhs+3Ny%zA z{RDi7^r%)6iPlwn5^ZA|D*mMD&_{cMP|hMN8S1f{A0E%FWDKP{{EYz9wWA#_2hg|S zDz92;Gvja0M^6)u&NipLlKWs%S1M+ikrCnr3b!S@DT;QDtHG;)H_)*Xn zy6=#lqVw4V)3s`zY=PR%O5~djLmFbsIniQ*aKVG`$>Zw^4zq?tQ%au`NJWQ53^A+yx&XcHVU(Y+7j0l1MJ) zs>}PeQX3szW^tct&SOv}ac|t41YXqDFOJX0QAK>i_G&7g#I={|piUR1mWRyqtOj!_ zyz#{1Bqn+y44v$-H0P}GnV@UU^h%(Q->k&H>$O^sk4`qmeQ7p>Qrh;^{{UhPOWIth z*3Aw36V7G{2TAr*$>_A-{n#iHznNI>1Zyt2e*1~(Z?7Ixe^ zrF)2$_%?C2(x}%ZmQWy}>;tB0003300R*r1QIbpQ4kX%GGTFnk)Z_?BQru$ za+0yZBtt}Eg3%zNQ&i#q+5iXv0|5g+0o!SD1qzg^_3*KmHxP*Sz2Vl?N-E@{o3ncK ziAvqhrlmfktkoa&xb;ygCbE}%kWZMK-fn+M;)AR;C^%m*$oCVxrmge$mYIi8dzCgH ztoltcK)uT2(rBNKoo1B~y3^ZkkSOg!Z5o!ouX1n6m#?&=!HGlBu{7ZM@9mh{`r%k@ zq?y^*-d`P-n+n%XDVVj9T}}+d*f*GU^^3RUrWAhT0^-<|?|q>BAn-U)HZVBpF4vYK z9bifbGv+g0r&~1*>-(3F$|{>}sej=zt#=fV6bFgtY27NQnFq6VFx=3F6CsBKEi7kr zm*P$U>Snz^5h|jV^DA?jwKl1vC)Ewa)R1=R*+(*9rA=1Z=6z+FSixGGq5VSBay2JE ziA%!6`^)wUS>|w~sfkDu!u1<0(OCG98AW(fUzBYoy1E>oa znwkRi+zaHRO-~QHpKxZnp+qU&As}arN@%FO0JIQwfP$x(n7A+t0hT-jwn@1;CJ;Ew zh_v37KtENF#$Bc*qBRlnY=w=9OZpRs;kka#ET1qKGGg)N&P0Uk&3qj-NyboYVy zI4~$Thf`c^J{3MA{iVb;=n?vcRP=_TDZjkhC#>#i_;Sa}C15+=`)TR_0CVjG{{Sf* zb-kvt*ZaQF%-;5bnu0jKNthFI%+0lH&^(Ui_A_r~fnsb2IZswzy=1s=AU!6Jk`e4> zAJbN%{BItGdaBbf18YiVZKf+H6yXz427FxBF)=jhbCx_8tnU0yZtchZyF;rf7_<#V zM*=W@9hYpFs!6^C8jIGh508TSL?4q=XQ9ZIcG>kr`wT%v9-c0(^f8tc1fCO7NV^Iw zX|`oE#~$*Z07*Yda4NoCxOxf7U1h=OU{rc!=9_&d3AAE3GOcRVT7zw>ztU>(DrlS3 zul+=(JXEUx04%AiH+9=ZbGP>&SV)%=^SP@@Luz#8nfyyHcpg##hpv@)uMKsRQZLC-2*|scAH`*$1;i`iE z;&^WwcVhfcAUK%o_>~9ZHy=+)e9OvueMLmgokK6fjIf8SBb=n#S1hcG6!7X9&c9Sx$gQ@Q;z(&88?YirU!tOp<7 z1ecc0;n%sS^$OGEJtEUz!PM1Xb9t*G-+Et)N|ZH^-qa4;d@~arn<%Ye#*<(E;<~FT z<18n7`8ES2#ne^bZ^BO}`;S?C%kY$zi!niPIDwcRny}_C2;mGp_N+wBEkgt9E+)7i&!_S;RJG`>S6z(5%YbKu z0RpaK^@?e>U`Ki-xD&P+);6Z}X|;g!pY0VX1W{l+E~F6`Oxl_}Gr4_lFU|qNZK7^? z!Kh?Go45X>j6`D8>pFS^iLA(7XU%0q)zWH}yTNnmV+ataCT`Ui3xc_nc5U65yKWpt zuKOvQo^8?%Ju4`e;{#sc8TUO?0p+RX_Z+({BSrh2P+y5p8PW7c1@zM{Z!86M(yl$FThKE0Rc1v+OjSQf5sTQ(lDvY*1%kUBWL`#>qS zp-;9VqB`3$DxQ$Tzuzv%TAAq_#Gn9+*sbDd72Kro7mfp z?mfibio=|;+nMDE@wo9GGL1|<6eHSb*kMZh7`i&FndD)H@n`r}am5O-_!ujxmw`}| ziQb;}pvUP`0T!^7PZ~+`iA2+{NpP$;FDp&PZH9V8qf)9h`?BY0=_xwhDhBp3Df5QA z3a{l~DD~?x$FksvC~83i6)=7Ib_>Hv3pc_Yb6vkJPxBe3Wdpcd38p6C5MZIKq^*lJ zz3(q9BePtbKsOnz3{5n+JdX*!twU7ap!!Q2OUw()3UxXgA7+7pTjfm0VXPK{9~1uo zK{i;XsHyh2pJ^$!>P_pJt6G%4@waB-!y;`^1iV{8Q5jDHCDhVm!U~>QyeUZ2JW+@;!dQ&UpGkT{V%@h~TZr|V znraPgJ9~jNn}+u*@Qbe1DkFG5tO~f{2UrXiXB<}`!(N)VUOw}b6q3{Lj=+<&aU-ut zr~-}xEge!-TyMdE=5vPg{53^6-C-&z+-^N>d2AL_Deb~BZ=~*1d*-9$_KNgf4>5_} zQ2_ad474_cT;Bp}^;H_ZKMB4sj8C+a{G~q4HHf!;KGD~VvUh~ts$`j%w~AoV>d}et zRTe(t7}$cHGFyNdo0q+D;$e^Wj>>O>fczq8^>k~Z*$vh0z+PN-HTcWXsdH}()PxL` z_Fs`4XW9X{(>}9UcNTTG6KqALK>+D~%5SHuagZ)O;Nbj!yrNWJ5|DWQ+?km(Ob_~YqIZ8D%z99bqFbKM$*}Ww{%w?tE za8!&O7%A?ec%v}-%X94AA74~cN_){TPpsCb2T-GevEB8W@HY zEMoJ5ttTBs4m+aWCHnRXVqt( zj>5senk_pNB<9v8ct8V$#I#tnHC3oz8@xWpvceW&NgKr9Pg$m-Jhwc_np&pqMP&-3 z!b+cfMxd1_k(G0KVH>Yu)9PqfP))^{dqt_8rc&n6y{OPPcg6Y$v}vL*06Q-`r=?on zQ)c!u!UHbC@!#+$`P=C<;+lrO`(=TS1*vM>e;0~tHl6ybsGBHK1Ejf@o775+U3;|M z;m@q6`tH8s3TmpN!d?Lj(r~_RB7Rd5V9*{C(`D}}>rZ{VyS_o^KGCP;s*mv?&$U9I zz*`P?yeulzY_|z%jP?yKwOF4GMf!VBL9=_#CoK5++>-0~B((pN4!jJ+=3`fJr>D=(dI>>R!jj|CP$%*iS_zva+KHrMq-d{Dm!dJ zc0Wj(abc6p#D6k_G__XU*i+SU4GOiWxXrF5iI%*#6ANk8lpV_A)|9)Y3`k)q5&5Ed zcAdqz0R=pqvEqAMPpqd_-WC=n4&LH}o_7ATT}*GKYai0{T7$)+{!@9Z+xZPme{m6M zQ5m~Gh?%krW-Udu8hYlN9|LecuyQkNZes}{6E4QUMWIM96U_B8^KuwzR&YG5KBKUc zVHARE0L1c|a@Z`s#yH(=QxVbxq~h7#m~SmTAfs1LTi0oVdiGS;R2y4uBtCE4W|f7F z5oxDzb~`Eg&$!k_BXB1VXbr6`3>u0KhunG?Ew#=>Q~IKyE>8*f+S~sC%cgPadseL{ zQn$n%!u1{>l*}Z7JE6u@*E3XOYJ3N*Bl7hwzWJJ={;&T4S+(nixnXRdSYcjr<1=e- zULmn5e!68$p~rBRX^|A3FlqI!mhiubOUrf|?36&cUB}Ld?K;~ej+wu=No5rPtQ{x!>mhq>Yd$J5R5LZ$HEn) z#MP-(kJEca6e-zkEiZuxJZ2%%>X;8J=F)>&^#GIhG^R`&_t5M&##ZSZ_by7Pm0H(}%T51#nO$k%K8Y7F-0YfE4JJwg8f7+v=4Wx2L-1tkDNCFMR0(I10CH(n)o?;TFj z<@NQNYNN$POwtjJ!{ZK)syNL%jP~t=V_b5B$o?Le^@wmxU*9TMdQ_;Un)rTQiY3pa)Ku4()A3ao&(dmX5605C^?P zePu%XH5LB=;=JOTOJTr6X=?~7>FO`0Cg7pC@RnQ5#;N#fd`*c+DBk4CKv`>59~n)M z+N0m297P&+1F4wo%v~I;j3&=y(5HQyZ8A%t{2voic8RkwJ`N496*>n$b1abpxH3NR(0F(~S2SKEg0 zG~7Hfr&-_CN+X{iX`yR=9lea8P1dW3`bS3xdW&41A_>S#ncbk3R5?MtcN`8PDDzQa zH&_e~aN?t57!ckVN|>xIe#2g&PtZKZQQ5P*1bWR4{{ScIW}PWFbwq9%&R{6Oi&*gg z0K>YiMz14-5rDR0xZ^v#0lCirCd;#%yK(fEl&Xs|13u-e8SuCu8HtX-Xj_g)39q0R z@K~*{ahP}!ncf9O879$aEzVr=F!GGCH8fpH@`34;C&x_fJ%IrxRI5-T49av6Dvxv4 z11Z&~k&(NLPl-zD$7@v3|{z3JW4+OWdGo@!=e9q`HUisrT32t!rip$0#s;k_4%`1$Um0TqP zSe|_#q5=WfI>D#Z)2ap=2i{x*F9iGwx9K%%gKFQ?(p9JDrsLrh4+^s%ke8?4x1HwL zBG;zr)LIv!QHT#n?IYS|c&B!jUuj9u8iT}gWfSD6$@P_cx3;L9aJ01@ma{24hi=eJ zVB6D_;c+d}ci0?1QU21{5rp0*%KML%uzd_loZ(g7d`$O@Gt1H=i!uZ6G>ktad?($t zi*G66F4u%hP4wF_sf!$$O|Z&Gtf%Jh1)V+ZtyI*gwh6&|4fxIiE}vQHP<=#Fe9=ZrKmqADek-5h z5lz9&q5lBFv%0E4Pyyj?-J&Zg09?=i!~iA`0RRF50{{a60s{d70RR910RRypF+ovb zaep?h zgRKZQTrh6b6A7x%Y@>6!QOoU#oUs5-(y>Euta05G{ag`6B+Z`AqG1jmL5W`rh|AP2 z&Bu(qGYVBB+^V*({{UkP#?m#CB&AtUW^*%J$Bkk;0~h-sg$-(>k=4Vdpl;vS5IC~= z84*BzZvOy~9Sz0^_Zt*>7P6R+yoJZBRkKS`gRJHtLDnHu#Q@ypBjU8?d#Di#Di&Xc z6AWM$vPW=GST6X`45w%atOz!WWqd@c(l)O$hz*$3wdrwa7@1nh0DAsO)wWh zzc@f>>K&B%5SC62ZBrk$sk>06SGH+kX*d~T8S<1xo(7{!@TZ88X^t&;kx+$&@0K7x zvw*`0UDeHT6lDm0$z>({+;2cu!c`cKtiVf_EcY=9f|BZ?R@Y?Xd#dmvGj2G64Npje zD66|lR57?@&`Y+=!AiF1RS-r5@QHWC$Zi3)oxttlrQG+mvn+t$T1^X+;-OoR!2dMRYO&p4gOZeR%nB-3EJsl+%v;k4SKiqO6)4Q566J_8PeZgR%%JE^%n0WId4p9DT@ntk z2wAN~Rarh6gav#0MpM@2Xxb1OqhC-4@r^dI0k{eXr7v`k1h=j0jPm~gY<24?Rausc zhl*jA%^QT~)-h~WBCI%o*8%t0m{*u_4b{ukYdM#z(AmibWTerUqZ)#<{6Pcw;e!1Q zumZl1E%k6t;V{wR63ngBOvX^YV7B)NF@%9niKW&mtKa~FKz+YU0M)^8Vp0ByUE?jp zv_~4$bPXdc3`kd60jxPQJCPAd;^w1e)zzP*EXUZ?EBR_>`Pz!7H7R{4t%I0>S2=yS z`n!Y>8+c1RVc8x~t+tA0Faa66sI^whe6B6Eh9XqsBOMXFi&a!jMS+E}YZhxL28z@a zr`Q;>R&pGERJ9trG8>skTKIfQ%bP`_c6%x!_htxHl$PsiW?VsFFQ~S_2@QJ+#T$yW zgG+hgjh`L5cNH2IiI99svx&f_EvbPmUG9$M{g6Q2ax&&uDc7u8?iEUL%s{O?LeVnA zdzb11QuE1!$r>Nyl@!4OQvnbPEV>(E$SVCSzThfucc_Vue7DmKpgGbmR_v)^zliG; zXHeB_Ei@9E0bBMnF+kQL$>Yh1!ze%lM7;A#D))v`y7Bsn(eVm}eaw6~A{9$Hj7SBl z30s6ivGU8o>c5>4Omo7Nvs_*LpzE8p71nP%9vb2iM3jbMWzmX^wTj{Sfp`iMF3N{| z#Vn@Z8Z$u<2GX;%Lj2psFu83FjyK%Xge&r#JnpL2nMRIUJ*9S+DIL-8D&eb zbt%AYwG^%92o#zI8<(ONbx3u2=~vB0p4b&O)}@^@c=(O83j9V~e}HLqF)+c<6i@J$ z*F=77ib^81nYay#`##B(u70H>1h@wu6Le}J&RIbgDl|Drtj$7dg7RhPTs}0}rFM?w z%dNx>#O{kF(O{%*EEx*xHH(!GsF^%@@Cj=M<3si!^4TF*m zZ(CE|p;@U#tIa0o;=g##?P$0F8Nwo0((BG#j-I6xwR%L0kcA&{e;9v=*3 zff32#2(xvE5NusLqhC*9{Uq@<{!ZrLxN_EZUQnV{{RG*bYbMpEl6KD>Hu6W7DFs;IwfUW zEeK-MwL}B_INM@S-W!CiVL}6(*>bYc$-X0NBb2|QVpXESrCX|tH)I??`GwR2aIRv7 zm_dWOuc@UIUO!;dp60~0_|qxowVXz(HozTB69V>Y2{2B191glrXzJeqqwSFm=2iFn7`Qh)KryC-!Y7C;jN&k2+AS?$+!;nS=IRr zO2?KK$zf8n04m8>+BuwD^zm$A28Y$c6ius08>p3kkVxu3W#8%du6+fZwl$xpI_+K9B=Yii?IQ*Xy` zA+yPC#Jha1zOwAO<%rv?O4h=x zASfN&6$^zfkZz)xZr1v03hi(Q+Z#LF)fYARf(5>%C?_;7`7k02Ym_4Rm_)bi5H2k) z;fx{LEhbEj*Ah|`4LH)NY|78q5JJ&`P9yQO%Et%p;tSz3ILW93+SxTx{U)_S+{EZ$ zG3x2}0nwP2BGO%k6adPe2l>x9d1h6GH$0RRy^@73L&7=I6(5+Wree}N{$rsU?KqzT zCSf~G-LToU=be98j-VmX_=buoaB4O<;v zV0)m+oS_o9OtFnZ2XFdE3?D`dD)o~Gsth(ZeNVA8u4&L}A*r~GB`=GKnh6$Msf~eh zD`vp>%~T*IGYr7X0?&<}q6|&TEZn#>!5-Rz+cs}&wI)E8LT&YIy7i*}0MjX~kgW0e zNDZpk3{37-Ez>GuH`x?Cs#3O{O3?KetJKWpEEG!1rfOH@u#NIV$o3|gelUzOH%Z8o z9elxPXiHU;V94N#0+QDb1ajPinmQn?IE%Eu4F3Sy0&Ma$0cjeX9kj-+felXbEXz1I zJAhRd%Z(!HvLNOnFxMo&g#171;Q;V-E4qu57?iJBtBs(XG4pWTDk#YKBUNPpHirDh zHZliIke#xVBu5h2vRMQ`yeF%}0JQKA;fx5fvowS!7=$QCbmk#>R0dY#m(jP$_IZ@B zLyJT6+_4R|NnYD4X5@{&Rg4{~u8IYKNGjbG@FKrqQCxmRPPeq?Q5=x~7KpYHT3lRI zs>djX$(~`l5Q2{$2c{qm*?9<-8JhJBbb>LkL;hiS=JtaSit%$gB8{zue1hw+t4+;4j9Y76tV>gTd`SNQL4xRw1@gPR&)`^H z$K@DMip@%&Vo{-+aV~+U zrZ2N`e4a6bKajSTvKK@Ee**CzvYg{=svIj;b*M-P z7g25UIj!{dXCWD-`EZpJ*zQH#U2D3SoB{6Hb64k>MsWcZ}dV)_*qwUEE zJb&!WCI!NR1u3co7^A_>n`yxn0`9?kh&6+Aq4fw5pv-voB27C;8QGOzk8-t}&MRZ- zfwn>U!Ue-F19Nl@+z^SV%Hb@NbcIxT69(|Lqz0TlRej1UrmYM1*Eeq!EjMMwFl-bm zk0PYcIh_hVdWJE+kS!LuWv|&;l_lXH?lsNCHPdpu3$rm`G}GFI0i;1oXh38N?t#0O zm7#-JZuNh0wrXgJYnCxtHApYeAp)?k`=QFV=((rj>5Tx|iRFoRr4&331mi&9Fp8~W z1&W$+$IJywNL?O~2VX=aSQjJ&OF&)25Ge{J4+~>61z#v?%b237cU>>IsXZWR%0>B# zlkCJB+&X4v01PZ>xp%xrbpzB=RY&zL7Xs>lb{ObAfXePN$O>YJGTK#zg=som5M^jk zKV$(~ma|A-tw1elEvCO^byJZjG2E(KpaFWN&r>x9d+?)VBKB$saS@c5d3!In!94O) z1XZGwj+gahy=<_U;*~+R8;07|kBAmMnp=%R9pBP3RmR4KzGhO6t1;5o#b3!9v{+T* ztAQfb;9gxv#haC&AhbqbDlwK0s^9Qo807=Kr`lqfMD%e+DEveyj4}lm+XV((S2==b zg|Fad@?Fuv(JDcfanvzvMw`v8eMaLN!j;8tRZ8KnaVvbrW9YMFwU$>H1q)iJ z%||XSygZEItTA&gIPcgwIeQH_>ZLY}H5lmq80X2JSvC9x{He?ga_#x~6|#36l;^OLOWQHt`aabGUZH z66#{wGX>V$FfdI-br$6MW}8~nq_}YugnT-(U^zu&XqZqEuN;QEsGh^7fjovSFj=!3 zRxHJ%KwG|0 zlAyFI)HexPxsT+>OGlq6!+g&<`+$J>5B(8_7odb)>Z=jzK-<#`#NWqpVu3zGD}>@L zQ8bJTH7)!o&IZrs;;CSDI7b8$Idv4bdzTkbMTWbGf=xD2;Qs*19F2uebyHDo_?IK_ zQq(Ke%)KmwXR%?gVt-;)K%h_W*IlIQTY%1iSER z->Wfy6@T|5)V_b10^vAn7z833OCf`^z+%0Nr7<%b-9n%t5($DLqrpG&R2+Dj zh{39YHBrwo+G;3%zG?Mxjq%EMpXMW_dtxwr_dB7?4B%CJ!X0NahT z?iHdMo9^XG3uX-nomxb_wE9eI!o^%yDmqGPkQ@?&{rND_MB38EcspYQQTbIetgZ`U z+Ep^p7=&w?cG8v?o=Ej=UhkGBRV5^FxS5&u?N{fBK)`I;|Mh>)Y46h?R z1UKEnvBgzT`)QH>k4o^;? zYZtUwVS~F3gjZBroEHB85&r;!IF&m2?h3{#b=K2P>*KjVm_wH=UlE2b=v=ydJb_wG zOL||(I18>NK{Y9*BWNYSIoM7(%GlaHMSOjg0>U{qt?=5!^mHd4!|AGh!PUxNWz2s?9+MVZeGcPW@nr|bqQ2v|Tq*3_rI+*^5mikL zObziE-l({(AxK3!K)H6v*AkRHP2r9h#Rc6|1qvsA%NmV9 zypCmTwON=qUBq9^a&+7Umt%)o7*c4Ws1bi5wY%=~F=dGi)Wj_n-y(qgR7wya@8CtW z;L=q`e$@+)&A^CeurzrEXwI!FT0l1sn2{h7sTLkB#e8C~h=kQHF)ZBjKdbUooYA#y z#Sp}_%0?cpBAHZ{=2|Ot5P|h6VO^5o?O{MD3v$I^3L_;~6)k@`+-G-RXb);tWx*2G z{vlQqqrV~@uQx#X`{rPk7?#=@vqS5>nelgkBgd)pc^u2!Bp$U3$O1t9T z$#ub>YYBH)VQ50(5X9hYOIF1v5$IfH=a^V>29+BtFim;YgF736W=JiWW~d-0iCXJ| zT1YlDw?~rAji4|Nd5wC}a*>+q<=GkiMVYXs>jI(>xJps5`x5b`##JV5UT!(1b#a(E z7>EV+GI70ysRhUtUKd|%b>x*RYCcXbfD!aaIJhxdfadjE)?iz~THZ>1#L^5&6y^?L zAgqzYU?cGm9+Kaz#M^KMC>VRp7FJ;rOu^4AThdkK^wO9NLkmp99%Uoimu!-il68qx zH3~ZX#IT@Qp{DNmV9jdOlAYw_f=ls$EOPM_mryK$^qHfWEsHGhrA-DFiP3h-7F4<$ z5b(>3`}vl$jMInM@z%O6wNIdM9mFc4Jlh=4Q`hI%>Y^ZnsDgyb>$&2^BA6H=R=N0N zQnHK&P~dX`p@k-&D7v|3WF*uyS++O}&{)vf4A>xd()9_-HgiU}<{&Hz^_d|Bg1*Ir zWVj*yYy2UdT*d2f1`~-=!-|UtxOE)Lvnrj4763#y)$MGZ6AH!>=)UnOX0l3%maHm( zZj1bmr5D79>=#Rwf6?btWMyt70<+twz__5zqS{pOYxc;bP_1 ziHmHOk9Er^X_1K%<>L!rQs0PpvGl1_M)5_;^-Uz?f2d>)OVgr)qDQ1#6`qu$iAs6P#Ty1)8{~92NlKxsd@XL9jHBj5mS<)A`OpU^YH$3CsXy zuOeE4_F98B+Q)X{M99mjQ3ZWCfo(?+dk7aGu_)SiMVw76Wuq#`t5TVW8@h;TlnBQS0%q{XYE7TYLn}$~9Sd(UOFN0G`-FsABQGYycQ4+KjDhL0C5jDCkiE z9l}k+Ks69sY-@lR8_caWkBMvQWvhr72MVn~#f7lUU8R*S!>SWwLdmtGi;qoUD<~Xg zsKiFawjtn>widMtAFGw1WfHpTp+TbXYX-U8XuvinigEHdmH^!p%gsQEN`X2hf`~wA z#K3x5I>c_80bGM`k%r#`n)HUo^9p#Hpr0Z4QNSG|mOW(`P(Vp(OgC?kRr>ghD5S`n zAiTVceV==Ufwufhlyb@z@iHq{35Nu0p_s^_P!BXWST_A-1YEmTS!jjvDgtD`Nl?|o z$_Fc<+$(~Gv&gZlAD6h>N`Q}d3L8~!JgIA2#1hw-Z{M0>1ydKviD*m=#O4CHT%ZFI z(^!>Ds311LeZjnhXszLBa6priuO89<;+}J6dGbF>`iOZsXCp0x#8qMXz^kgYF=EP> zLeetPb4Ja|*9b{wZUMAw4)H9ovk(Dwwz%c{Eio1)CJa_Kl)0&0^#1^?#t2sc4?L}e zBW)TkQ1Mln$Fh*QKrmVQmgX8*GN!WB!8Af7r;BczsZDiPxao6H9qKLYGF-a@6$wlU zR0XV$E;63mnywW%n@d85kDh7@hRSL=hP8`B3Y^qwS|fxqfY?ODvdu-xTMT6X0J6yR ztFq$>=aL5XmKKD)W>Ne~J=C*wUS@(%t~lIF$-64UBsbR(JG5 zwjVI~b5SVPLG;nNLv98G_lP-w6f^oof>!CA6`-=(Saod3^|V^~5rQG5Te+7ZgpJ)x zoZ8UlS+urQqllACT?XY1;SH+IMI2g^@IyfX8-XcH8jPFYNqwV~A+Ep=s*0@)+C8XE zhdseVFkaUYMP0|B;x!on>l`xmOb8oWawZd=Ug0sAi4?IeV&Q)>mbSt&e5_y|J5!zg z!3RBLx^mnY-9=vZ;grT=h`?$z5-Or@HokMreZt}ui;K2m3WDqNs4q_%VJ@iE_c$3b zDFRV>CJjQ$=??+Q{6ahdce~m>kHDQ?B9fIhkv_?Q{{VveUf{H8+Zg(YusTrX?#S4i zjwO|v`H7xx3Ti9M{31FnVJ{{@1&pDw)g-n7)T5I_)ft-s!5{*axRgEh3Mn!l7l`x# zKyUtxd1nIWNWWp84p?fqrZ1tgU4(?S>MYQgM1oEMocv2~mXcQRT=B#%RTr6X1LCDR z)-@3OHxlr5f-q!S^fQTBQh|5nqYQJ3xf1@#cb>c@H8c_im}reGI(*wPx9g zVEjsQR6-$}kDiqgo2Y!}&Z83-t-?uRF8-i&gI%y9pSUrOBIb1)05EqRWrq;Tva;P- zGh!LpJW$2NTc)FB$sO1p#nZoxXLzzorJ(}KjwOb576RZ{!C+LbrEBJ(VhY`*s%AR8 zs0ggT5upOaGVy>349BPmi2#~oC%RGHB4x2|=MpVwlnoIIuMtk6kXd@x%bR;Xqb?NP zO-1;WJu;iDR8+C4RxoW{Jb(r&r44||148SzS)~}zdT%e1m}1ongtKQ60>FgNR%OAM z_6S<3SP!->n+3}pb2to`itN9ZAT1HqSgp^CMY%;6iw;N(7mK&IaY^N>=KZPe60QE~Dv{z#7{wEGd+zXwWeF7#KL@UxPTWwXtkt$Faax2vi)R zu1+Nlf$&4P2Jri#RT#wXI=41d=sCZED1)mvO3&F1E2g=x$C-X2pDANsj^MmlTX@8y zq$pvxZOrg9I>Q+b*mpRtC6vTNYHTcOu+h4KgHd@7EUNMrg2L(zbV6HrgGW;Qq!2<) z9kE!htA&gDhWVR_Wq~R!D}SkA9;8yNW2L&5=HRt0#uRuVt{gWZ-qR&3OO`4Wm-}!= zsI3UV7gCg`nWZqN;C+xPF)D{49I09`w|yYzot2P{H?2vW};S(7Vr3;ogL zB|y-NAUlXEmY>vMI#c}yUMXoV-yx)xDxu&W5_bR=EBKtMW_qXrqv7ToeaBEEH4G(D zN2G3T$e`A)%nDQ@JR?a7UE&zGd4@1FOCCqW56ccWenFTmNzavDYEaOL9?B!6yO(~X z&1FJpD4=cn@Jgk8;sUzVp==rojD!Z5$O>KzPrW`_Sj<>xQ=s9AhkBH{zK0MscbaI& z!wjX1b|?FnDmD;wH7+`cuoAZM2(r>BR)A_NL4_5J#Z1<|r7yOd3ctq$wkVDxSV%8J zPy`;P085OGQb7r=uAyWg3ayI+O=6{yCmC!jseQmaQBB1T7O~3sx|XrwR{sDDuKL?R zMW|*;#Rd2TGNEp6W+oC!LiH65yO@R>p9-K1kq7S>LmQR?x0rS2A%bDtFsuY-%|4&-)z6{i9ucHh*6mA zbrh%coaTULEXZn_!*ZZuzD_^f$}Dr~DUjDtA6b@pLYxFrX(`+uN(I2T^-g2kvV*Ir zbj(4Qa}(Jxste@lGHzGmY5BQ(ZNRX)mX%7G-W+d|BBl;i_QbWV(%~RUyK=EVTunM$ zV~yuTu?sCO(YMH9D7S2Gg(Cr~3!9?(8q65CFxD$egq8O0E9+0HU@=`Y@g>GvjjX{n z3ou3tM0A>j08+7X!+G+Q&2PEMbBHjw)zi*UIRCk>1sW$=UWa_A5?{ zjG{{|Scf|!ge+VTftLiwJ=JLaR}GX|AaOO+M&w^Jh*=ctFx7@)1=}os%b`lL8C6iW zI8&KNm>VIluf!gzFy90d1QZ&Fxh8ge7J-ffIRcio@P=Ihkt^w$0WV%M2qL6z!m2uiKYZetfvU(zt4657qm#NIEnIYwx+97Wy;m!w zj)ioK+J=DC0FVNU^DvsfV|0~L+l0(2kQ6!7vn*3OU~uMvhWp#}ox z%qS~BLdLXxgP?2H4t&J79T=Glc15~^c(>Tdj^N=9L?BpJGnu^Cu2xg^DGD%Z&%CW0 z=}PwCm1tcU4xpXN=Go!9kAvE%6`jUN^l)NtMcGVJEcS()jZ3lv^r>)O?k7Z2n!13S z)C#KZQ~7{(lrb-6+PK&9fCQ=~{&^Qmi1n?vf!i)*<5|K~3`Xb7SwS#LsIANeIhIh; zlZ1OC37UpMD$zyK<#Gt*gV13REm06CT}`2jXMv2;3KSkb;MEGvpJc&}P7p#xRhjXx zCS`|Ci+~N-Pp@iKgaO@WP^=LSb6H9V#~QKnrU2ad1?C7b9(vVFL9*{%SKw zD$j(r(t=;=R1XnRJ?1^Ha8EFcY_<)l{akiMBP&%CDsgKS0}xuS$oP3GDufFx^@jDr z(p5A$I9_fp8(mX}p%Nf-bU2J$MNtw}6@~-L4P1h)OKXm%du*nj>jPKZ3K*DK7S>c> zhEbA=Ou+vDUvoI6@u^K45tgdBa~J@M2eH5cCQ)Ao)v#`vb8F!5>RN0F0T1_iY@3k282^Y7`Fh)3)hekeInGT zd1=`#$TU=l&6N(}eZ~_Kwj&)qN-KMaf-pwAO`&2NRl^?nz@maRN-_ zmzb52js+Ts5m6Et>ccJ^qk2#*KTJur3yO>PDEz7cqlW-9b^j8irz%5djp(GMhs;WWfIb5qlrhdj9}BU||f<+@){}iMjICW0qCj zLBgx=nL_4Tr4LqhFGWKeyN+QmR9(T{u#h3S(PI0D7dW~$e}XkUz^9&WTp=v2!f4DE z)ERNLBJYe##F`GDPZ?d&)K^(|TF6^AZxm|@-8s1yusJ3Q})TuQZ&;@dtm`i^W(8lF}*clVKsMKWsmsc@u zDcWaJ(=m7gU!ugIQ?4aq1B8j!+|c-!u7W$VVoFjAna7F)p9<`|$*R5i$TE+yfkVNi95#UJJ|7{SqN>I&c& zad=e>fd%>_CzFT|kd`*)qFz48aUz2Sv34UOVXa-vkY&zrL?Z6NQ*|x16s^Y+6+6s0 zt58FQVY+cyQX*k?{$q|Hn_w4YN~4Ozp@qWwq$t~%lBOhiHyLm>L2}|sP)Ukl<(P7o z0?ppHRR}cf&-X6?b^t$!3y4tFevAU?Hej=N7pM+knuc^762qj;c^IOhMg7A*oxETnd;5JO-@Q7g;Np+mDXkUfq(RXSq+%xM6i+(ULYTT@K3V zg@6pYO`Kvec1#A$T~sx7ZMSX4D}$&2)6Y=OoJVryoM*FZbP<`Y(Me=r%kBy}Ku%|Y zh!=Syh_NBWSy4+>I&4Vs{@G<~RO&&r$ychqDTk5jm9id@$So=S!DRz_3Jp8@xrk%0 zBj*W#)W(Gz1LBc#3b>()Wh*w3N;^QJ%lo1mRu%FW zFB-asR*mWlBen!OEvu=|aEdo(UJ#63O}7-jyV1z;&nTExf@4u`|a#BSMF zEF&E8a}eBoOHfcFLDLW?V4$nG!gGYvm^NSk0Anf=;^XFnETPIkx+ulB?X?ot>8mA% z3SgT>%&@!$CCmX`tE+}VV@I08vig=bt^Q$bB3a$WL~#Tpe{Ew@Fi8wAvT<$(ZXtU_ zK!$g%N5)>oaU8Z;cB45*a7?sP9GIke1tvi()<*&pL)7O%}8)Ob*aN5#4&S=C#+9Nf7B z&8Bk?qyGRH+e8>%rVRMOKvi;>^s{;4`-E`h5SIarXCmw&P=r#txme+zB_OPB_~({f zXxdNMPt&q-TQETf`=)xIjYtXTP^0p9F z;s&9Jl|qyV8Pb4o>g>Z3CfBcwmoO(dnF=s-DVf_`%JOPirLaZ_5e1!>f7f#BO)5gE z+*Hz-G}yYA!Z7W`pqAyuO7#jLb{F>WBetT`%%QG7z_&|*g>DM-RbFU1A{eY5ip4}x za&VUVh|-}OQpyG(iB>68hHAv4STtX*CA@%(P02U2z;5jEen5pwB-rrx}b5S%;gJV(zG_@>~L(HdQ1* zwJxkd=#|#N!BKtp9+xbo``p+w6t3kqhr2Br&Bdu%gGsb*&J}*$!$7*2-(a?98;yiq z7Wx?L3?oIVtl0r};Wc%df-JWTWCdlFG)i1q417n(s8BMlp~+MVPZQ$YrU4gbxS4pO z?hOno4+)7(x|^_w-nE#vk(X*zHxY#%Wt3;hX6+2sAX-qmmA1k?kd1rgSB4bhu+xZWz@)wQ~?dac3BBR z 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 Date: Mon, 29 Apr 2024 15:33:31 +0000 Subject: [PATCH 11/49] Apply Spotless --- .../animations/SharedElementSnippets.kt | 68 ++++++++++++------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt index e79c3e7b..41c13f3b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @file:OptIn(ExperimentalSharedTransitionApi::class) @file:Suppress("unused") @@ -173,10 +189,10 @@ private class SharedElementBasicUsage1 { // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } @@ -280,10 +296,10 @@ private class SharedElementBasicUsage2 { // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } @@ -410,10 +426,10 @@ private class SharedElementBasicUsage3 { // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } @@ -557,10 +573,10 @@ private class SharedElementBasicUsage4 { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } @@ -722,10 +738,10 @@ private class SharedElementBoundsTransform { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) } } @@ -776,7 +792,7 @@ private fun SharedElement_Clipping() { rememberSharedContentState(key = "title"), animatedVisibilityScope = this@AnimatedContent, - ) + ) ) } } else { @@ -814,10 +830,10 @@ private fun SharedElement_Clipping() { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) } } @@ -1456,4 +1472,4 @@ fun PlaceholderSizeAnimated_Demo() { } } // [END android_compose_shared_element_placeholder_size] -} \ No newline at end of file +} From f45f8adb99cae42411f4ff7aa77c15c261bc0bff Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 29 Apr 2024 17:16:22 +0100 Subject: [PATCH 12/49] Split snippets into different files. --- .../animations/SharedElementSnippets.kt | 1459 ----------------- .../BasicSharedElementSnippets.kt | 467 ++++++ .../CustomizeSharedElementsSnippets.kt | 549 +++++++ .../sharedelement/SharedBoundsSnippets.kt | 185 +++ .../SharedElementCommonUseCaseSnippets.kt | 84 + .../SharedElementsWithNavigationSnippets.kt | 152 ++ 6 files changed, 1437 insertions(+), 1459 deletions(-) delete mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt deleted file mode 100644 index e79c3e7b..00000000 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/SharedElementSnippets.kt +++ /dev/null @@ -1,1459 +0,0 @@ -@file:OptIn(ExperimentalSharedTransitionApi::class) -@file:Suppress("unused") - -package com.example.compose.snippets.animations - -/* - * Copyright 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import androidx.annotation.DrawableRes -import androidx.compose.animation.AnimatedContent -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.AnimatedVisibilityScope -import androidx.compose.animation.BoundsTransform -import androidx.compose.animation.EnterTransition -import androidx.compose.animation.ExitTransition -import androidx.compose.animation.ExperimentalSharedTransitionApi -import androidx.compose.animation.SharedTransitionLayout -import androidx.compose.animation.SharedTransitionScope -import androidx.compose.animation.core.Spring -import androidx.compose.animation.core.keyframes -import androidx.compose.animation.core.spring -import androidx.compose.animation.core.tween -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.foundation.Image -import androidx.compose.foundation.background -import androidx.compose.foundation.border -import androidx.compose.foundation.clickable -import androidx.compose.foundation.horizontalScroll -import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.aspectRatio -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.offset -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredHeightIn -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.itemsIndexed -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Create -import androidx.compose.material.icons.outlined.Favorite -import androidx.compose.material.icons.outlined.Share -import androidx.compose.material3.Icon -import androidx.compose.material3.Surface -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.alpha -import androidx.compose.ui.draw.clip -import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalInspectionMode -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import androidx.navigation.NavType -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController -import androidx.navigation.navArgument -import coil.compose.AsyncImage -import coil.request.ImageRequest -import com.example.compose.snippets.R -import com.example.compose.snippets.ui.theme.LavenderLight -import com.example.compose.snippets.ui.theme.RoseLight - -private class SharedElementBasicUsage1 { - @Preview - // [START android_compose_animations_shared_element_start] - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent(onShowDetails = { - showDetails = true - }) - } else { - DetailsContent(onBack = { - showDetails = false - }) - } - } - } - - @Composable - private fun MainContent(onShowDetails: () -> Unit) { - Row( - // [START_EXCLUDE] - modifier = Modifier - .padding(8.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 21.sp) - } - } - - @Composable - private fun DetailsContent(modifier: Modifier = Modifier, onBack: () -> Unit) { - Column( - // [START_EXCLUDE] - modifier = Modifier - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 28.sp) - // [START_EXCLUDE] - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - // [END_EXCLUDE] - } - } - // [END android_compose_animations_shared_element_start] -} - -private class SharedElementBasicUsage2 { - @Preview - @Composable - private fun SharedElementApp() { - // [START android_compose_animations_shared_element_step1] - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent( - onShowDetails = { - showDetails = true - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } else { - DetailsContent( - onBack = { - showDetails = false - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } - } - } - // [END android_compose_animations_shared_element_step1] - } - - @Composable - private fun MainContent( - onShowDetails: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - Row( - // [START_EXCLUDE] - modifier = Modifier - .padding(8.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 21.sp) - } - } - - @Composable - private fun DetailsContent( - modifier: Modifier = Modifier, - onBack: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - Column( - // [START_EXCLUDE] - modifier = Modifier - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 28.sp) - // [START_EXCLUDE] - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - // [END_EXCLUDE] - } - } -} - -private class SharedElementBasicUsage3 { - - @Preview - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent( - onShowDetails = { - showDetails = true - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } else { - DetailsContent( - onBack = { - showDetails = false - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } - } - } - } - - // [START android_compose_animations_shared_element_step2] - @Composable - private fun MainContent( - onShowDetails: () -> Unit, - modifier: Modifier = Modifier, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - Row( - // [START_EXCLUDE] - modifier = Modifier - .padding(8.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - with(sharedTransitionScope) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope - ) - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text( - "Cupcake", fontSize = 21.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope - ) - ) - } - } - } - - @Composable - private fun DetailsContent( - modifier: Modifier = Modifier, - onBack: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - Column( - // [START_EXCLUDE] - modifier = Modifier - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - with(sharedTransitionScope) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope - ) - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text( - "Cupcake", fontSize = 28.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope - ) - ) - // [START_EXCLUDE] - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - // [END_EXCLUDE] - } - } - } - // [END android_compose_animations_shared_element_step2] -} - -private class SharedElementBasicUsage4 { - - @Preview - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent( - onShowDetails = { - showDetails = true - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } else { - DetailsContent( - onBack = { - showDetails = false - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } - } - } - } - - // [START android_compose_animations_shared_element_shared_bounds] - @Composable - private fun MainContent( - onShowDetails: () -> Unit, - modifier: Modifier = Modifier, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { - Row( - modifier = Modifier - .padding(8.dp) - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() - ) - // [START_EXCLUDE] - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - // [START_EXCLUDE] - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope - ) - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text( - "Cupcake", fontSize = 21.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope - ) - ) - // [END_EXCLUDE] - } - } - } - - @Composable - private fun DetailsContent( - modifier: Modifier = Modifier, - onBack: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { - Column( - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() - ) - // [START_EXCLUDE] - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - - ) { - // [START_EXCLUDE] - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope - ) - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text( - "Cupcake", fontSize = 28.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope - ) - ) - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - // [END_EXCLUDE] - } - } - } - // [END android_compose_animations_shared_element_shared_bounds] -} - -private class SharedElementBoundsTransform { - @Preview - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent( - onShowDetails = { - showDetails = true - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } else { - DetailsContent( - onBack = { - showDetails = false - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } - } - } - } - - @Composable - private fun MainContent( - onShowDetails: () -> Unit, - modifier: Modifier = Modifier, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { - Row( - modifier = Modifier - .padding(8.dp) - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() - ) - // [START_EXCLUDE] - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - // [START_EXCLUDE] - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope, - boundsTransform = { _, _ -> - spring( - stiffness = Spring.StiffnessMediumLow, - dampingRatio = Spring.DampingRatioMediumBouncy - ) - } - ) - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text( - "Cupcake", fontSize = 21.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope - ) - ) - // [END_EXCLUDE] - } - } - } - - @Composable - private fun DetailsContent( - modifier: Modifier = Modifier, - onBack: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { - Column( - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() - ) - // [START_EXCLUDE] - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - - ) { - // [START android_compose_shared_element_image_bounds_transform] - val imageBoundsTransform = BoundsTransform { initial, target -> - keyframes { - durationMillis = 500 - initial at 0 - Rect( - target.left + 100, - target.top, - target.right + 100, - target.bottom - ) at 300 - } - } - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope, - boundsTransform = imageBoundsTransform - ) - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - // [END android_compose_shared_element_image_bounds_transform] - Text( - "Cupcake", fontSize = 28.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope - ) - ) - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - } - } - } -} - -@Preview -@Composable -private fun SharedElement_Clipping() { - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - Row( - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = this@AnimatedContent - ) - .background(Color.Green.copy(alpha = 0.5f)) - .padding(8.dp) - .clickable { - showDetails = true - } - ) { - // [START android_compose_animations_shared_element_clipping] - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(100.dp) - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = this@AnimatedContent - ) - .clip(RoundedCornerShape(16.dp)), - contentScale = ContentScale.Crop - ) - // [END android_compose_animations_shared_element_clipping] - Text( - "Lorem ipsum dolor sit amet.", fontSize = 21.sp, - modifier = Modifier.sharedElement( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = this@AnimatedContent, - - ) - ) - } - } else { - Column( - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = this@AnimatedContent - ) - .background(Color.Green.copy(alpha = 0.7f)) - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .clickable { - showDetails = false - } - - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(200.dp) - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = this@AnimatedContent - ) - .clip(RoundedCornerShape(16.dp)), - contentScale = ContentScale.Crop - ) - Text( - "Lorem ipsum dolor sit amet.", fontSize = 21.sp, - modifier = Modifier.sharedElement( - rememberSharedContentState(key = "title"), - animatedVisibilityScope = this@AnimatedContent - ) - ) - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - } - } - } - } -} - -@Preview -@Composable -private fun SharedElement_SkipLookaheadSize() { - // Nested shared bounds sample. - val selectionColor = Color(0xff3367ba) - var expanded by remember { mutableStateOf(true) } - SharedTransitionLayout( - Modifier - .fillMaxSize() - .clickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null - ) { - expanded = !expanded - } - .background(Color(0x88000000)) - ) { - AnimatedVisibility( - visible = expanded, - enter = EnterTransition.None, - exit = ExitTransition.None - ) { - Box(modifier = Modifier.fillMaxSize()) { - Surface( - Modifier - .align(Alignment.BottomCenter) - .padding(20.dp) - .sharedBounds( - rememberSharedContentState(key = "container"), - this@AnimatedVisibility - ) - .requiredHeightIn(max = 60.dp), - shape = RoundedCornerShape(50), - ) { - Row( - Modifier - .padding(10.dp) - // By using Modifier.skipToLookaheadSize(), we are telling the layout - // system to layout the children of this node as if the animations had - // all finished. This avoid re-laying out the Row with animated width, - // which is _sometimes_ desirable. Try removing this modifier and - // observe the effect. - .skipToLookaheadSize() - ) { - Icon( - Icons.Outlined.Share, - contentDescription = "Share", - modifier = Modifier.padding( - top = 10.dp, - bottom = 10.dp, - start = 10.dp, - end = 20.dp - ) - ) - Icon( - Icons.Outlined.Favorite, - contentDescription = "Favorite", - modifier = Modifier.padding( - top = 10.dp, - bottom = 10.dp, - start = 10.dp, - end = 20.dp - ) - ) - Icon( - Icons.Outlined.Create, - contentDescription = "Create", - tint = Color.White, - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "icon_background"), - this@AnimatedVisibility - ) - .background(selectionColor, RoundedCornerShape(50)) - .padding( - top = 10.dp, - bottom = 10.dp, - start = 20.dp, - end = 20.dp - ) - .sharedElement( - rememberSharedContentState(key = "icon"), - this@AnimatedVisibility - ) - ) - } - } - } - } - AnimatedVisibility( - visible = !expanded, - enter = EnterTransition.None, - exit = ExitTransition.None - ) { - Box(modifier = Modifier.fillMaxSize()) { - Surface( - Modifier - .align(Alignment.BottomEnd) - .padding(30.dp) - .sharedBounds( - rememberSharedContentState(key = "container"), - this@AnimatedVisibility, - enter = EnterTransition.None, - ) - .sharedBounds( - rememberSharedContentState(key = "icon_background"), - this@AnimatedVisibility, - enter = EnterTransition.None, - exit = ExitTransition.None - ), - shape = RoundedCornerShape(30.dp), - color = selectionColor - ) { - Icon( - Icons.Outlined.Create, - contentDescription = "Create", - tint = Color.White, - modifier = Modifier - .padding(30.dp) - .size(40.dp) - .sharedElement( - rememberSharedContentState(key = "icon"), - this@AnimatedVisibility - ) - ) - } - } - } - } -} - -@Preview -@Composable -private fun SharedElement_ManualVisibleControl() { - // [START android_compose_shared_element_manual_control] - var selectFirst by remember { mutableStateOf(true) } - val key = remember { Any() } - SharedTransitionLayout( - Modifier - .fillMaxSize() - .padding(10.dp) - .clickable { - selectFirst = !selectFirst - } - ) { - Box( - Modifier - .sharedElementWithCallerManagedVisibility( - rememberSharedContentState(key = key), - !selectFirst, - boundsTransform = boundsTransform - ) - .background(Color.Red) - .size(100.dp) - ) { - Text(if (!selectFirst) "false" else "true", color = Color.White) - } - Box( - Modifier - .offset(180.dp, 180.dp) - .sharedElementWithCallerManagedVisibility( - rememberSharedContentState( - key = key, - ), - selectFirst, - boundsTransform = boundsTransform - ) - .alpha(0.5f) - .background(Color.Blue) - .size(180.dp) - ) { - Text(if (selectFirst) "false" else "true", color = Color.White) - } - } - // [END android_compose_shared_element_manual_control] -} - -private val boundsTransform = BoundsTransform { initial, target -> - // Move vertically first then horizontally - keyframes { - durationMillis = 500 - initial at 0 - Rect(initial.left, target.top, initial.left + target.width, target.bottom) at 300 - } -} - -val listSnacks = listOf( - Snack("Cupcake", "", R.drawable.cupcake), - Snack("Donut", "", R.drawable.donut), - Snack("Eclair", "", R.drawable.eclair), - Snack("Froyo", "", R.drawable.froyo), - Snack("Gingerbread", "", R.drawable.gingerbread), - Snack("Honeycomb", "", R.drawable.honeycomb), -) - -@Preview -@Composable -fun SharedElement_PredictiveBack() { - // [START android_compose_shared_element_predictive_back] - SharedTransitionLayout { - val boundsTransform = { _: Rect, _: Rect -> tween(1400) } - - val navController = rememberNavController() - NavHost( - navController = navController, - startDestination = "home" - ) { - - composable("home") { - LazyColumn( - modifier = Modifier - .fillMaxSize() - .padding(8.dp), - verticalArrangement = Arrangement.spacedBy(8.dp) - ) { - itemsIndexed(listSnacks) { index, item -> - Row( - Modifier.clickable { - navController.navigate("details/$index") - } - ) { - Spacer(modifier = Modifier.width(8.dp)) - Image( - painterResource(id = item.image), - contentDescription = item.description, - contentScale = ContentScale.Crop, - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image-$index"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - .size(100.dp) - ) - Spacer(modifier = Modifier.width(8.dp)) - Text( - item.name, fontSize = 18.sp, - modifier = Modifier - .align(Alignment.CenterVertically) - .sharedElement( - rememberSharedContentState(key = "text-$index"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - ) - } - } - } - } - composable( - "details/{item}", - arguments = listOf(navArgument("item") { type = NavType.IntType }) - ) { backStackEntry -> - val id = backStackEntry.arguments?.getInt("item") - val snack = listSnacks[id!!] - Column( - Modifier - .fillMaxSize() - .clickable { - navController.navigate("home") - } - ) { - Image( - painterResource(id = snack.image), - contentDescription = snack.description, - contentScale = ContentScale.Crop, - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image-$id"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - .aspectRatio(1f) - .fillMaxWidth() - ) - Text( - snack.name, fontSize = 18.sp, - modifier = - Modifier - .sharedElement( - rememberSharedContentState(key = "text-$id"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - .fillMaxWidth() - ) - } - } - } - } -// [END android_compose_shared_element_predictive_back] -} - -data class Snack( - val name: String, - val description: String, - @DrawableRes val image: Int -) - -@Preview -@Composable -private fun SkipToLookahead() { -// Nested shared bounds sample. - val selectionColor = Color(0xff3367ba) - var expanded by remember { mutableStateOf(true) } - SharedTransitionLayout( - Modifier - .fillMaxSize() - .clickable { - expanded = !expanded - } - .background(Color(0x88000000)) - ) { - AnimatedVisibility( - visible = expanded, - enter = EnterTransition.None, - exit = ExitTransition.None - ) { - Box(modifier = Modifier.fillMaxSize()) { - Surface( - Modifier - .align(Alignment.BottomCenter) - .padding(20.dp) - .sharedBounds( - rememberSharedContentState(key = "container"), - this@AnimatedVisibility - ) - .requiredHeightIn(max = 60.dp), - shape = RoundedCornerShape(50), - ) { - Row( - Modifier - .padding(10.dp) - // By using Modifier.skipToLookaheadSize(), we are telling the layout - // system to layout the children of this node as if the animations had - // all finished. This avoid re-laying out the Row with animated width, - // which is _sometimes_ desirable. Try removing this modifier and - // observe the effect. - .skipToLookaheadSize() - ) { - Icon( - Icons.Outlined.Share, - contentDescription = "Share", - modifier = Modifier.padding( - top = 10.dp, - bottom = 10.dp, - start = 10.dp, - end = 20.dp - ) - ) - Icon( - Icons.Outlined.Favorite, - contentDescription = "Favorite", - modifier = Modifier.padding( - top = 10.dp, - bottom = 10.dp, - start = 10.dp, - end = 20.dp - ) - ) - Icon( - Icons.Outlined.Create, - contentDescription = "Create", - tint = Color.White, - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "icon_background"), - this@AnimatedVisibility - ) - .background(selectionColor, RoundedCornerShape(50)) - .padding( - top = 10.dp, - bottom = 10.dp, - start = 20.dp, - end = 20.dp - ) - .sharedElement( - rememberSharedContentState(key = "icon"), - this@AnimatedVisibility - ) - ) - } - } - } - } - AnimatedVisibility( - visible = !expanded, - enter = EnterTransition.None, - exit = ExitTransition.None - ) { - Box(modifier = Modifier.fillMaxSize()) { - Surface( - Modifier - .align(Alignment.BottomEnd) - .padding(30.dp) - .sharedBounds( - rememberSharedContentState(key = "container"), - this@AnimatedVisibility, - enter = EnterTransition.None, - ) - .sharedBounds( - rememberSharedContentState(key = "icon_background"), - this@AnimatedVisibility, - enter = EnterTransition.None, - exit = ExitTransition.None - ), - shape = RoundedCornerShape(30.dp), - color = selectionColor - ) { - Icon( - Icons.Outlined.Create, - contentDescription = "Create", - tint = Color.White, - modifier = Modifier - .padding(30.dp) - .size(40.dp) - .sharedElement( - rememberSharedContentState(key = "icon"), - this@AnimatedVisibility - ) - ) - } - } - } - } -} - -@Preview -@Composable -private fun SharedAsyncImage() { - SharedTransitionLayout { - AnimatedVisibility(visible = true) { - // [START android_compose_shared_element_async_image_tip] - AsyncImage( - model = ImageRequest.Builder(LocalContext.current) - .data("your-image-url") - .crossfade(true) - .build(), - placeholder = null, - contentDescription = null, - modifier = Modifier - .size(120.dp) - .sharedBounds( - rememberSharedContentState( - key = "image-key" - ), - animatedVisibilityScope = this, - exit = ExitTransition.None - ) - ) - // [END android_compose_shared_element_async_image_tip] - } - } -} - -@Composable -fun debugPlaceholder(@DrawableRes debugPreview: Int) = - if (LocalInspectionMode.current) { - painterResource(id = debugPreview) - } else { - null - } - -@Preview -@Composable -private fun SharedElementTypicalUseText() { - SharedTransitionLayout { - AnimatedVisibility(visible = true) { - // [START android_compose_shared_element_text_tip] - Text( - text = "This is an example of how to share text", - modifier = Modifier - .wrapContentWidth() - .sharedBounds( - rememberSharedContentState( - key = "shared Text" - ), - animatedVisibilityScope = this, - enter = fadeIn() + scaleInSharedContentToBounds(), - exit = fadeOut() + scaleOutSharedContentToBounds() - ) - ) - // [END android_compose_shared_element_text_tip] - } - } -} - -@Preview -@Composable -private fun UnmatchedBoundsExample() { - // [START android_compose_animation_shared_element_bounds_unmatched] - var selectFirst by remember { mutableStateOf(true) } - val key = remember { Any() } - SharedTransitionLayout( - Modifier - .fillMaxSize() - .padding(10.dp) - .clickable { - selectFirst = !selectFirst - } - ) { - AnimatedContent(targetState = selectFirst, label = "AnimatedContent") { targetState -> - if (targetState) { - Box( - Modifier - .padding(12.dp) - .sharedBounds( - rememberSharedContentState(key = key), - animatedVisibilityScope = this@AnimatedContent - ) - .border(2.dp, Color.Red) - ) { - Text( - "Hello", - fontSize = 20.sp - ) - } - } else { - Box( - Modifier - .offset(180.dp, 180.dp) - .sharedBounds( - rememberSharedContentState( - key = key, - ), - animatedVisibilityScope = this@AnimatedContent - ) - .border(2.dp, Color.Red) - .padding(12.dp) - - ) { - Text( - "Hello", - fontSize = 36.sp - ) - } - } - } - } - // [END android_compose_animation_shared_element_bounds_unmatched] -} - -@Preview -@Composable -fun PlaceholderSizeAnimated_Demo() { - // This demo shows how other items in a layout can respond to shared elements changing in size. - // [START android_compose_shared_element_placeholder_size] - SharedTransitionLayout { - val boundsTransform = { _: Rect, _: Rect -> tween(1000) } - - val navController = rememberNavController() - NavHost( - navController = navController, - startDestination = "home" - ) { - composable("home", enterTransition = { fadeIn() }, exitTransition = { fadeOut() }) { - Column { - Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { - (listSnacks).forEachIndexed { index, snack -> - Image( - painterResource(id = snack.image), - contentDescription = snack.description, - contentScale = ContentScale.Crop, - modifier = Modifier - .padding(8.dp) - .sharedBounds( - rememberSharedContentState(key = "image-${snack.name}"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform, - placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize - ) - .clickable { - navController.navigate("details/$index") - } - .height(180.dp) - .clip(RoundedCornerShape(8.dp)) - .aspectRatio(9f / 16f) - - ) - } - } - Text("Nearby snacks") - Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { - (listSnacks).forEach { snack -> - Image( - painterResource(id = snack.image), - contentDescription = snack.description, - contentScale = ContentScale.Crop, - modifier = Modifier - .height(200.dp) - .aspectRatio(16f / 9f) - .padding(8.dp) - ) - } - } - } - } - composable( - "details/{id}", - arguments = listOf(navArgument("id") { type = NavType.IntType }), - enterTransition = { fadeIn() }, exitTransition = { fadeOut() } - ) { backStackEntry -> - val id = backStackEntry.arguments?.getInt("id") - val snack = listSnacks[id!!] - Column( - Modifier - .fillMaxSize() - .clickable { - navController.navigateUp() - } - ) { - Image( - painterResource(id = snack.image), - contentDescription = snack.description, - contentScale = ContentScale.Crop, - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "image-${snack.name}"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform, - placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize - ) - .clip(RoundedCornerShape(8.dp)) - .aspectRatio(9f / 16f) - .fillMaxWidth() - ) - } - } - } - } -// [END android_compose_shared_element_placeholder_size] -} \ No newline at end of file diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt new file mode 100644 index 00000000..dae978c1 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -0,0 +1,467 @@ +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.compose.snippets.R +import com.example.compose.snippets.ui.theme.LavenderLight +import com.example.compose.snippets.ui.theme.RoseLight + +private class SharedElementBasicUsage1 { + @Preview + // [START android_compose_animations_shared_element_start] + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent(onShowDetails = { + showDetails = true + }) + } else { + DetailsContent(onBack = { + showDetails = false + }) + } + } + } + + @Composable + private fun MainContent(onShowDetails: () -> Unit) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 21.sp) + } + } + + @Composable + private fun DetailsContent(modifier: Modifier = Modifier, onBack: () -> Unit) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 28.sp) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + // [END android_compose_animations_shared_element_start] +} + +private class SharedElementBasicUsage2 { + @Preview + @Composable + private fun SharedElementApp() { + // [START android_compose_animations_shared_element_step1] + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + // [END android_compose_animations_shared_element_step1] + } + + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 21.sp) + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 28.sp) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } +} + + + +private class SharedElementBasicUsage3 { + + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + // [START android_compose_animations_shared_element_step2] + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + with(sharedTransitionScope) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + with(sharedTransitionScope) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + } + // [END android_compose_animations_shared_element_step2] +} + + +@Preview +@Composable +private fun SharedElement_ManualVisibleControl() { + // [START android_compose_shared_element_manual_control] + var selectFirst by remember { mutableStateOf(true) } + val key = remember { Any() } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .padding(10.dp) + .clickable { + selectFirst = !selectFirst + } + ) { + Box( + Modifier + .sharedElementWithCallerManagedVisibility( + rememberSharedContentState(key = key), + !selectFirst + ) + .background(Color.Red) + .size(100.dp) + ) { + Text(if (!selectFirst) "false" else "true", color = Color.White) + } + Box( + Modifier + .offset(180.dp, 180.dp) + .sharedElementWithCallerManagedVisibility( + rememberSharedContentState( + key = key, + ), + selectFirst + ) + .alpha(0.5f) + .background(Color.Blue) + .size(180.dp) + ) { + Text(if (selectFirst) "false" else "true", color = Color.White) + } + } + // [END android_compose_shared_element_manual_control] +} + +@Preview +@Composable +private fun UnmatchedBoundsExample() { + // [START android_compose_animation_shared_element_bounds_unmatched] + var selectFirst by remember { mutableStateOf(true) } + val key = remember { Any() } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .padding(10.dp) + .clickable { + selectFirst = !selectFirst + } + ) { + AnimatedContent(targetState = selectFirst, label = "AnimatedContent") { targetState -> + if (targetState) { + Box( + Modifier + .padding(12.dp) + .sharedBounds( + rememberSharedContentState(key = key), + animatedVisibilityScope = this@AnimatedContent + ) + .border(2.dp, Color.Red) + ) { + Text( + "Hello", + fontSize = 20.sp + ) + } + } else { + Box( + Modifier + .offset(180.dp, 180.dp) + .sharedBounds( + rememberSharedContentState( + key = key, + ), + animatedVisibilityScope = this@AnimatedContent + ) + .border(2.dp, Color.Red) + .padding(12.dp) + + ) { + Text( + "Hello", + fontSize = 36.sp + ) + } + } + } + } + // [END android_compose_animation_shared_element_bounds_unmatched] +} \ No newline at end of file diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt new file mode 100644 index 00000000..babe7537 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -0,0 +1,549 @@ +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.BoundsTransform +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.ExitTransition +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.keyframes +import androidx.compose.animation.core.spring +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredHeightIn +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Create +import androidx.compose.material.icons.outlined.Favorite +import androidx.compose.material.icons.outlined.Share +import androidx.compose.material3.Icon +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavType +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import com.example.compose.snippets.R +import com.example.compose.snippets.ui.theme.LavenderLight +import com.example.compose.snippets.ui.theme.RoseLight + + +private class SharedElementBoundsTransform { + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Row( + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = { _, _ -> + spring( + stiffness = Spring.StiffnessMediumLow, + dampingRatio = Spring.DampingRatioMediumBouncy + ) + } + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [END_EXCLUDE] + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + + ) { + // [START android_compose_shared_element_image_bounds_transform] + val imageBoundsTransform = BoundsTransform { initial, target -> + keyframes { + durationMillis = 500 + initial at 0 + Rect( + target.left + 100, + target.top, + target.right + 100, + target.bottom + ) at 300 + } + } + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = imageBoundsTransform + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + // [END android_compose_shared_element_image_bounds_transform] + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + } + } + } +} + + + +@Preview +@Composable +private fun SharedElement_Clipping() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + Row( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = this@AnimatedContent + ) + .background(Color.Green.copy(alpha = 0.5f)) + .padding(8.dp) + .clickable { + showDetails = true + } + ) { + // [START android_compose_animations_shared_element_clipping] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = this@AnimatedContent + ) + .clip(RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + // [END android_compose_animations_shared_element_clipping] + Text( + "Lorem ipsum dolor sit amet.", fontSize = 21.sp, + modifier = Modifier.sharedElement( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = this@AnimatedContent, + + ) + ) + } + } else { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = this@AnimatedContent + ) + .background(Color.Green.copy(alpha = 0.7f)) + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .clickable { + showDetails = false + } + + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = this@AnimatedContent + ) + .clip(RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + Text( + "Lorem ipsum dolor sit amet.", fontSize = 21.sp, + modifier = Modifier.sharedElement( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = this@AnimatedContent + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + } + } + } + } +} + +@Preview +@Composable +private fun SharedElement_SkipLookaheadSize() { + // Nested shared bounds sample. + val selectionColor = Color(0xff3367ba) + var expanded by remember { mutableStateOf(true) } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { + expanded = !expanded + } + .background(Color(0x88000000)) + ) { + AnimatedVisibility( + visible = expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomCenter) + .padding(20.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility + ) + .requiredHeightIn(max = 60.dp), + shape = RoundedCornerShape(50), + ) { + Row( + Modifier + .padding(10.dp) + // By using Modifier.skipToLookaheadSize(), we are telling the layout + // system to layout the children of this node as if the animations had + // all finished. This avoid re-laying out the Row with animated width, + // which is _sometimes_ desirable. Try removing this modifier and + // observe the effect. + .skipToLookaheadSize() + ) { + Icon( + Icons.Outlined.Share, + contentDescription = "Share", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Favorite, + contentDescription = "Favorite", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility + ) + .background(selectionColor, RoundedCornerShape(50)) + .padding( + top = 10.dp, + bottom = 10.dp, + start = 20.dp, + end = 20.dp + ) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } + AnimatedVisibility( + visible = !expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomEnd) + .padding(30.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility, + enter = EnterTransition.None, + ) + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility, + enter = EnterTransition.None, + exit = ExitTransition.None + ), + shape = RoundedCornerShape(30.dp), + color = selectionColor + ) { + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .padding(30.dp) + .size(40.dp) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } +} + +@Preview +@Composable +fun PlaceholderSizeAnimated_Demo() { + // This demo shows how other items in a layout can respond to shared elements changing in size. + // [START android_compose_shared_element_placeholder_size] + SharedTransitionLayout { + val boundsTransform = { _: Rect, _: Rect -> tween(1000) } + + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "home" + ) { + composable("home", enterTransition = { fadeIn() }, exitTransition = { fadeOut() }) { + Column { + Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { + (listSnacks).forEachIndexed { index, snack -> + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "image-${snack.name}"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform, + placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize + ) + .clickable { + navController.navigate("details/$index") + } + .height(180.dp) + .clip(RoundedCornerShape(8.dp)) + .aspectRatio(9f / 16f) + + ) + } + } + Text("Nearby snacks") + Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { + (listSnacks).forEach { snack -> + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .height(200.dp) + .aspectRatio(16f / 9f) + .padding(8.dp) + ) + } + } + } + } + composable( + "details/{id}", + arguments = listOf(navArgument("id") { type = NavType.IntType }), + enterTransition = { fadeIn() }, exitTransition = { fadeOut() } + ) { backStackEntry -> + val id = backStackEntry.arguments?.getInt("id") + val snack = listSnacks[id!!] + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigateUp() + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "image-${snack.name}"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform, + placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize + ) + .clip(RoundedCornerShape(8.dp)) + .aspectRatio(9f / 16f) + .fillMaxWidth() + ) + } + } + } + } +// [END android_compose_shared_element_placeholder_size] +} \ No newline at end of file diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt new file mode 100644 index 00000000..13cf954d --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt @@ -0,0 +1,185 @@ +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.compose.snippets.R +import com.example.compose.snippets.ui.theme.LavenderLight +import com.example.compose.snippets.ui.theme.RoseLight + +private class SharedElementBasicUsage4 { + + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + // [START android_compose_animations_shared_element_shared_bounds] + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Row( + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [END_EXCLUDE] + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + } + // [END android_compose_animations_shared_element_shared_bounds] +} \ No newline at end of file diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt new file mode 100644 index 00000000..4dce268f --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt @@ -0,0 +1,84 @@ +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.annotation.DrawableRes +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.ExitTransition +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import coil.request.ImageRequest + + +@Preview +@Composable +private fun SharedAsyncImage() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_async_image_tip] + AsyncImage( + model = ImageRequest.Builder(LocalContext.current) + .data("your-image-url") + .crossfade(true) + .build(), + placeholder = null, + contentDescription = null, + modifier = Modifier + .size(120.dp) + .sharedBounds( + rememberSharedContentState( + key = "image-key" + ), + animatedVisibilityScope = this, + exit = ExitTransition.None + ) + ) + // [END android_compose_shared_element_async_image_tip] + } + } +} + +@Composable +fun debugPlaceholder(@DrawableRes debugPreview: Int) = + if (LocalInspectionMode.current) { + painterResource(id = debugPreview) + } else { + null + } + +@Preview +@Composable +private fun SharedElementTypicalUseText() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_text_tip] + Text( + text = "This is an example of how to share text", + modifier = Modifier + .wrapContentWidth() + .sharedBounds( + rememberSharedContentState( + key = "shared Text" + ), + animatedVisibilityScope = this, + enter = fadeIn() + scaleInSharedContentToBounds(), + exit = fadeOut() + scaleOutSharedContentToBounds() + ) + ) + // [END android_compose_shared_element_text_tip] + } + } +} \ No newline at end of file diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt new file mode 100644 index 00000000..c24ca346 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -0,0 +1,152 @@ +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.annotation.DrawableRes +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.core.tween +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavType +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import com.example.compose.snippets.R + + +val listSnacks = listOf( + Snack("Cupcake", "", R.drawable.cupcake), + Snack("Donut", "", R.drawable.donut), + Snack("Eclair", "", R.drawable.eclair), + Snack("Froyo", "", R.drawable.froyo), + Snack("Gingerbread", "", R.drawable.gingerbread), + Snack("Honeycomb", "", R.drawable.honeycomb), +) + +@Preview +@Composable +fun SharedElement_PredictiveBack() { + // [START android_compose_shared_element_predictive_back] + SharedTransitionLayout { + val boundsTransform = { _: Rect, _: Rect -> tween(1400) } + + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "home" + ) { + + composable("home") { + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + itemsIndexed(listSnacks) { index, item -> + Row( + Modifier.clickable { + navController.navigate("details/$index") + } + ) { + Spacer(modifier = Modifier.width(8.dp)) + Image( + painterResource(id = item.image), + contentDescription = item.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image-$index"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .size(100.dp) + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + item.name, fontSize = 18.sp, + modifier = Modifier + .align(Alignment.CenterVertically) + .sharedElement( + rememberSharedContentState(key = "text-$index"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + ) + } + } + } + } + composable( + "details/{item}", + arguments = listOf(navArgument("item") { type = NavType.IntType }) + ) { backStackEntry -> + val id = backStackEntry.arguments?.getInt("item") + val snack = listSnacks[id!!] + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigate("home") + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image-$id"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .aspectRatio(1f) + .fillMaxWidth() + ) + Text( + snack.name, fontSize = 18.sp, + modifier = + Modifier + .sharedElement( + rememberSharedContentState(key = "text-$id"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .fillMaxWidth() + ) + } + } + } + } +// [END android_compose_shared_element_predictive_back] +} + +data class Snack( + val name: String, + val description: String, + @DrawableRes val image: Int +) \ No newline at end of file From 8e224852186a9da18af246d4f817226df08368d3 Mon Sep 17 00:00:00 2001 From: riggaroo Date: Mon, 29 Apr 2024 16:19:10 +0000 Subject: [PATCH 13/49] Apply Spotless --- .../BasicSharedElementSnippets.kt | 45 ++++++++++++------- .../CustomizeSharedElementsSnippets.kt | 39 ++++++++++------ .../sharedelement/SharedBoundsSnippets.kt | 26 ++++++++--- .../SharedElementCommonUseCaseSnippets.kt | 19 +++++++- .../SharedElementsWithNavigationSnippets.kt | 19 +++++++- 5 files changed, 110 insertions(+), 38 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt index dae978c1..74f388b7 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @file:OptIn(ExperimentalSharedTransitionApi::class) package com.example.compose.snippets.animations.sharedelement @@ -115,10 +131,10 @@ private class SharedElementBasicUsage1 { // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } @@ -222,18 +238,16 @@ private class SharedElementBasicUsage2 { // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } } } - - private class SharedElementBasicUsage3 { @Preview @@ -354,10 +368,10 @@ private class SharedElementBasicUsage3 { // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } @@ -366,7 +380,6 @@ private class SharedElementBasicUsage3 { // [END android_compose_animations_shared_element_step2] } - @Preview @Composable private fun SharedElement_ManualVisibleControl() { @@ -464,4 +477,4 @@ private fun UnmatchedBoundsExample() { } } // [END android_compose_animation_shared_element_bounds_unmatched] -} \ No newline at end of file +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt index babe7537..4e38c18b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @file:OptIn(ExperimentalSharedTransitionApi::class) package com.example.compose.snippets.animations.sharedelement @@ -67,7 +83,6 @@ import com.example.compose.snippets.R import com.example.compose.snippets.ui.theme.LavenderLight import com.example.compose.snippets.ui.theme.RoseLight - private class SharedElementBoundsTransform { @Preview @Composable @@ -221,18 +236,16 @@ private class SharedElementBoundsTransform { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) } } } } - - @Preview @Composable private fun SharedElement_Clipping() { @@ -277,7 +290,7 @@ private fun SharedElement_Clipping() { rememberSharedContentState(key = "title"), animatedVisibilityScope = this@AnimatedContent, - ) + ) ) } } else { @@ -315,10 +328,10 @@ private fun SharedElement_Clipping() { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) } } @@ -546,4 +559,4 @@ fun PlaceholderSizeAnimated_Demo() { } } // [END android_compose_shared_element_placeholder_size] -} \ No newline at end of file +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt index 13cf954d..6fca70b1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @file:OptIn(ExperimentalSharedTransitionApi::class) package com.example.compose.snippets.animations.sharedelement @@ -172,14 +188,14 @@ private class SharedElementBasicUsage4 { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) // [END_EXCLUDE] } } } // [END android_compose_animations_shared_element_shared_bounds] -} \ No newline at end of file +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt index 4dce268f..ed63da7b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @file:OptIn(ExperimentalSharedTransitionApi::class) package com.example.compose.snippets.animations.sharedelement @@ -22,7 +38,6 @@ import androidx.compose.ui.unit.dp import coil.compose.AsyncImage import coil.request.ImageRequest - @Preview @Composable private fun SharedAsyncImage() { @@ -81,4 +96,4 @@ private fun SharedElementTypicalUseText() { // [END android_compose_shared_element_text_tip] } } -} \ No newline at end of file +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt index c24ca346..56333e83 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @file:OptIn(ExperimentalSharedTransitionApi::class) package com.example.compose.snippets.animations.sharedelement @@ -37,7 +53,6 @@ import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument import com.example.compose.snippets.R - val listSnacks = listOf( Snack("Cupcake", "", R.drawable.cupcake), Snack("Donut", "", R.drawable.donut), @@ -149,4 +164,4 @@ data class Snack( val name: String, val description: String, @DrawableRes val image: Int -) \ No newline at end of file +) From ee796a9fed1d449366985e3e3649100ba992caa4 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 30 Apr 2024 14:44:05 +0100 Subject: [PATCH 14/49] Shared element snippets (#256) * add shared element snippets * Apply Spotless * Split snippets into different files. * Apply Spotless --------- Co-authored-by: riggaroo --- .../BasicSharedElementSnippets.kt | 480 +++++++++++++++ .../CustomizeSharedElementsSnippets.kt | 562 ++++++++++++++++++ .../sharedelement/SharedBoundsSnippets.kt | 201 +++++++ .../SharedElementCommonUseCaseSnippets.kt | 99 +++ .../SharedElementsWithNavigationSnippets.kt | 167 ++++++ .../compose/snippets/ui/theme/Color.kt | 6 + .../src/main/res/drawable/cupcake.jpg | Bin 0 -> 87777 bytes .../snippets/src/main/res/drawable/donut.jpeg | Bin 0 -> 65266 bytes .../src/main/res/drawable/eclair.jpeg | Bin 0 -> 99829 bytes .../snippets/src/main/res/drawable/froyo.jpeg | Bin 0 -> 75308 bytes .../src/main/res/drawable/gingerbread.jpg | Bin 0 -> 148964 bytes .../src/main/res/drawable/honeycomb.jpg | Bin 0 -> 77136 bytes 12 files changed, 1515 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt create mode 100644 compose/snippets/src/main/res/drawable/cupcake.jpg create mode 100644 compose/snippets/src/main/res/drawable/donut.jpeg create mode 100644 compose/snippets/src/main/res/drawable/eclair.jpeg create mode 100644 compose/snippets/src/main/res/drawable/froyo.jpeg create mode 100644 compose/snippets/src/main/res/drawable/gingerbread.jpg create mode 100644 compose/snippets/src/main/res/drawable/honeycomb.jpg diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt new file mode 100644 index 00000000..74f388b7 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -0,0 +1,480 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.compose.snippets.R +import com.example.compose.snippets.ui.theme.LavenderLight +import com.example.compose.snippets.ui.theme.RoseLight + +private class SharedElementBasicUsage1 { + @Preview + // [START android_compose_animations_shared_element_start] + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent(onShowDetails = { + showDetails = true + }) + } else { + DetailsContent(onBack = { + showDetails = false + }) + } + } + } + + @Composable + private fun MainContent(onShowDetails: () -> Unit) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 21.sp) + } + } + + @Composable + private fun DetailsContent(modifier: Modifier = Modifier, onBack: () -> Unit) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 28.sp) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + // [END android_compose_animations_shared_element_start] +} + +private class SharedElementBasicUsage2 { + @Preview + @Composable + private fun SharedElementApp() { + // [START android_compose_animations_shared_element_step1] + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + // [END android_compose_animations_shared_element_step1] + } + + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 21.sp) + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text("Cupcake", fontSize = 28.sp) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } +} + +private class SharedElementBasicUsage3 { + + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + // [START android_compose_animations_shared_element_step2] + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Row( + // [START_EXCLUDE] + modifier = Modifier + .padding(8.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + with(sharedTransitionScope) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + Column( + // [START_EXCLUDE] + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + with(sharedTransitionScope) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [START_EXCLUDE] + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + } + // [END android_compose_animations_shared_element_step2] +} + +@Preview +@Composable +private fun SharedElement_ManualVisibleControl() { + // [START android_compose_shared_element_manual_control] + var selectFirst by remember { mutableStateOf(true) } + val key = remember { Any() } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .padding(10.dp) + .clickable { + selectFirst = !selectFirst + } + ) { + Box( + Modifier + .sharedElementWithCallerManagedVisibility( + rememberSharedContentState(key = key), + !selectFirst + ) + .background(Color.Red) + .size(100.dp) + ) { + Text(if (!selectFirst) "false" else "true", color = Color.White) + } + Box( + Modifier + .offset(180.dp, 180.dp) + .sharedElementWithCallerManagedVisibility( + rememberSharedContentState( + key = key, + ), + selectFirst + ) + .alpha(0.5f) + .background(Color.Blue) + .size(180.dp) + ) { + Text(if (selectFirst) "false" else "true", color = Color.White) + } + } + // [END android_compose_shared_element_manual_control] +} + +@Preview +@Composable +private fun UnmatchedBoundsExample() { + // [START android_compose_animation_shared_element_bounds_unmatched] + var selectFirst by remember { mutableStateOf(true) } + val key = remember { Any() } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .padding(10.dp) + .clickable { + selectFirst = !selectFirst + } + ) { + AnimatedContent(targetState = selectFirst, label = "AnimatedContent") { targetState -> + if (targetState) { + Box( + Modifier + .padding(12.dp) + .sharedBounds( + rememberSharedContentState(key = key), + animatedVisibilityScope = this@AnimatedContent + ) + .border(2.dp, Color.Red) + ) { + Text( + "Hello", + fontSize = 20.sp + ) + } + } else { + Box( + Modifier + .offset(180.dp, 180.dp) + .sharedBounds( + rememberSharedContentState( + key = key, + ), + animatedVisibilityScope = this@AnimatedContent + ) + .border(2.dp, Color.Red) + .padding(12.dp) + + ) { + Text( + "Hello", + fontSize = 36.sp + ) + } + } + } + } + // [END android_compose_animation_shared_element_bounds_unmatched] +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt new file mode 100644 index 00000000..4e38c18b --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -0,0 +1,562 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.BoundsTransform +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.ExitTransition +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.keyframes +import androidx.compose.animation.core.spring +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredHeightIn +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Create +import androidx.compose.material.icons.outlined.Favorite +import androidx.compose.material.icons.outlined.Share +import androidx.compose.material3.Icon +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavType +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import com.example.compose.snippets.R +import com.example.compose.snippets.ui.theme.LavenderLight +import com.example.compose.snippets.ui.theme.RoseLight + +private class SharedElementBoundsTransform { + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Row( + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = { _, _ -> + spring( + stiffness = Spring.StiffnessMediumLow, + dampingRatio = Spring.DampingRatioMediumBouncy + ) + } + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [END_EXCLUDE] + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + + ) { + // [START android_compose_shared_element_image_bounds_transform] + val imageBoundsTransform = BoundsTransform { initial, target -> + keyframes { + durationMillis = 500 + initial at 0 + Rect( + target.left + 100, + target.top, + target.right + 100, + target.bottom + ) at 300 + } + } + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = imageBoundsTransform + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + // [END android_compose_shared_element_image_bounds_transform] + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + } + } + } +} + +@Preview +@Composable +private fun SharedElement_Clipping() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + Row( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = this@AnimatedContent + ) + .background(Color.Green.copy(alpha = 0.5f)) + .padding(8.dp) + .clickable { + showDetails = true + } + ) { + // [START android_compose_animations_shared_element_clipping] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(100.dp) + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = this@AnimatedContent + ) + .clip(RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + // [END android_compose_animations_shared_element_clipping] + Text( + "Lorem ipsum dolor sit amet.", fontSize = 21.sp, + modifier = Modifier.sharedElement( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = this@AnimatedContent, + + ) + ) + } + } else { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = this@AnimatedContent + ) + .background(Color.Green.copy(alpha = 0.7f)) + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .clickable { + showDetails = false + } + + ) { + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .size(200.dp) + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = this@AnimatedContent + ) + .clip(RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + Text( + "Lorem ipsum dolor sit amet.", fontSize = 21.sp, + modifier = Modifier.sharedElement( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = this@AnimatedContent + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + } + } + } + } +} + +@Preview +@Composable +private fun SharedElement_SkipLookaheadSize() { + // Nested shared bounds sample. + val selectionColor = Color(0xff3367ba) + var expanded by remember { mutableStateOf(true) } + SharedTransitionLayout( + Modifier + .fillMaxSize() + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { + expanded = !expanded + } + .background(Color(0x88000000)) + ) { + AnimatedVisibility( + visible = expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomCenter) + .padding(20.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility + ) + .requiredHeightIn(max = 60.dp), + shape = RoundedCornerShape(50), + ) { + Row( + Modifier + .padding(10.dp) + // By using Modifier.skipToLookaheadSize(), we are telling the layout + // system to layout the children of this node as if the animations had + // all finished. This avoid re-laying out the Row with animated width, + // which is _sometimes_ desirable. Try removing this modifier and + // observe the effect. + .skipToLookaheadSize() + ) { + Icon( + Icons.Outlined.Share, + contentDescription = "Share", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Favorite, + contentDescription = "Favorite", + modifier = Modifier.padding( + top = 10.dp, + bottom = 10.dp, + start = 10.dp, + end = 20.dp + ) + ) + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility + ) + .background(selectionColor, RoundedCornerShape(50)) + .padding( + top = 10.dp, + bottom = 10.dp, + start = 20.dp, + end = 20.dp + ) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } + AnimatedVisibility( + visible = !expanded, + enter = EnterTransition.None, + exit = ExitTransition.None + ) { + Box(modifier = Modifier.fillMaxSize()) { + Surface( + Modifier + .align(Alignment.BottomEnd) + .padding(30.dp) + .sharedBounds( + rememberSharedContentState(key = "container"), + this@AnimatedVisibility, + enter = EnterTransition.None, + ) + .sharedBounds( + rememberSharedContentState(key = "icon_background"), + this@AnimatedVisibility, + enter = EnterTransition.None, + exit = ExitTransition.None + ), + shape = RoundedCornerShape(30.dp), + color = selectionColor + ) { + Icon( + Icons.Outlined.Create, + contentDescription = "Create", + tint = Color.White, + modifier = Modifier + .padding(30.dp) + .size(40.dp) + .sharedElement( + rememberSharedContentState(key = "icon"), + this@AnimatedVisibility + ) + ) + } + } + } + } +} + +@Preview +@Composable +fun PlaceholderSizeAnimated_Demo() { + // This demo shows how other items in a layout can respond to shared elements changing in size. + // [START android_compose_shared_element_placeholder_size] + SharedTransitionLayout { + val boundsTransform = { _: Rect, _: Rect -> tween(1000) } + + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "home" + ) { + composable("home", enterTransition = { fadeIn() }, exitTransition = { fadeOut() }) { + Column { + Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { + (listSnacks).forEachIndexed { index, snack -> + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "image-${snack.name}"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform, + placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize + ) + .clickable { + navController.navigate("details/$index") + } + .height(180.dp) + .clip(RoundedCornerShape(8.dp)) + .aspectRatio(9f / 16f) + + ) + } + } + Text("Nearby snacks") + Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { + (listSnacks).forEach { snack -> + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .height(200.dp) + .aspectRatio(16f / 9f) + .padding(8.dp) + ) + } + } + } + } + composable( + "details/{id}", + arguments = listOf(navArgument("id") { type = NavType.IntType }), + enterTransition = { fadeIn() }, exitTransition = { fadeOut() } + ) { backStackEntry -> + val id = backStackEntry.arguments?.getInt("id") + val snack = listSnacks[id!!] + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigateUp() + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "image-${snack.name}"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform, + placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize + ) + .clip(RoundedCornerShape(8.dp)) + .aspectRatio(9f / 16f) + .fillMaxWidth() + ) + } + } + } + } +// [END android_compose_shared_element_placeholder_size] +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt new file mode 100644 index 00000000..6fca70b1 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt @@ -0,0 +1,201 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.compose.snippets.R +import com.example.compose.snippets.ui.theme.LavenderLight +import com.example.compose.snippets.ui.theme.RoseLight + +private class SharedElementBasicUsage4 { + + @Preview + @Composable + private fun SharedElementApp() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } + } + } + } + + // [START android_compose_animations_shared_element_shared_bounds] + @Composable + private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Row( + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + // [END_EXCLUDE] + } + } + } + + @Composable + private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope + ) { + with(sharedTransitionScope) { + Column( + modifier = Modifier + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut() + ) + // [START_EXCLUDE] + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), + animatedVisibilityScope = animatedVisibilityScope + ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope + ) + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] + } + } + } + // [END android_compose_animations_shared_element_shared_bounds] +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt new file mode 100644 index 00000000..ed63da7b --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt @@ -0,0 +1,99 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.annotation.DrawableRes +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.ExitTransition +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalInspectionMode +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import coil.request.ImageRequest + +@Preview +@Composable +private fun SharedAsyncImage() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_async_image_tip] + AsyncImage( + model = ImageRequest.Builder(LocalContext.current) + .data("your-image-url") + .crossfade(true) + .build(), + placeholder = null, + contentDescription = null, + modifier = Modifier + .size(120.dp) + .sharedBounds( + rememberSharedContentState( + key = "image-key" + ), + animatedVisibilityScope = this, + exit = ExitTransition.None + ) + ) + // [END android_compose_shared_element_async_image_tip] + } + } +} + +@Composable +fun debugPlaceholder(@DrawableRes debugPreview: Int) = + if (LocalInspectionMode.current) { + painterResource(id = debugPreview) + } else { + null + } + +@Preview +@Composable +private fun SharedElementTypicalUseText() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_text_tip] + Text( + text = "This is an example of how to share text", + modifier = Modifier + .wrapContentWidth() + .sharedBounds( + rememberSharedContentState( + key = "shared Text" + ), + animatedVisibilityScope = this, + enter = fadeIn() + scaleInSharedContentToBounds(), + exit = fadeOut() + scaleOutSharedContentToBounds() + ) + ) + // [END android_compose_shared_element_text_tip] + } + } +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt new file mode 100644 index 00000000..56333e83 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -0,0 +1,167 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.annotation.DrawableRes +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.core.tween +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavType +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.navArgument +import com.example.compose.snippets.R + +val listSnacks = listOf( + Snack("Cupcake", "", R.drawable.cupcake), + Snack("Donut", "", R.drawable.donut), + Snack("Eclair", "", R.drawable.eclair), + Snack("Froyo", "", R.drawable.froyo), + Snack("Gingerbread", "", R.drawable.gingerbread), + Snack("Honeycomb", "", R.drawable.honeycomb), +) + +@Preview +@Composable +fun SharedElement_PredictiveBack() { + // [START android_compose_shared_element_predictive_back] + SharedTransitionLayout { + val boundsTransform = { _: Rect, _: Rect -> tween(1400) } + + val navController = rememberNavController() + NavHost( + navController = navController, + startDestination = "home" + ) { + + composable("home") { + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + itemsIndexed(listSnacks) { index, item -> + Row( + Modifier.clickable { + navController.navigate("details/$index") + } + ) { + Spacer(modifier = Modifier.width(8.dp)) + Image( + painterResource(id = item.image), + contentDescription = item.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image-$index"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .size(100.dp) + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + item.name, fontSize = 18.sp, + modifier = Modifier + .align(Alignment.CenterVertically) + .sharedElement( + rememberSharedContentState(key = "text-$index"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + ) + } + } + } + } + composable( + "details/{item}", + arguments = listOf(navArgument("item") { type = NavType.IntType }) + ) { backStackEntry -> + val id = backStackEntry.arguments?.getInt("item") + val snack = listSnacks[id!!] + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigate("home") + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image-$id"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .aspectRatio(1f) + .fillMaxWidth() + ) + Text( + snack.name, fontSize = 18.sp, + modifier = + Modifier + .sharedElement( + rememberSharedContentState(key = "text-$id"), + animatedVisibilityScope = this@composable, + boundsTransform = boundsTransform + ) + .fillMaxWidth() + ) + } + } + } + } +// [END android_compose_shared_element_predictive_back] +} + +data class Snack( + val name: String, + val description: String, + @DrawableRes val image: Int +) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt b/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt index 21909a8c..6c6006ea 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/ui/theme/Color.kt @@ -25,3 +25,9 @@ val Pink80 = Color(0xFFEFB8C8) val Purple40 = Color(0xFF6650a4) val PurpleGrey40 = Color(0xFF625b71) val Pink40 = Color(0xFF7D5260) + +val LavenderDark = Color(0xff23009e) +val LavenderLight = Color(0xFFDDBEFC) + +val RoseDark = Color(0xffaf0060) +val RoseLight = Color(0xFFFFAFC9) diff --git a/compose/snippets/src/main/res/drawable/cupcake.jpg b/compose/snippets/src/main/res/drawable/cupcake.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0696e8a645a5ce232dc591717684b51f54893fa3 GIT binary patch literal 87777 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 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/donut.jpeg b/compose/snippets/src/main/res/drawable/donut.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..57d0199f29468f276c0ffddd077756db6b64b2d5 GIT binary patch literal 65266 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 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/eclair.jpeg b/compose/snippets/src/main/res/drawable/eclair.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6ec767a0f2dda826aeb5547df75aacbdfd8d6739 GIT binary patch literal 99829 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 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/froyo.jpeg b/compose/snippets/src/main/res/drawable/froyo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f3126d5077c9961fe6c137368e44c5472c892459 GIT binary patch literal 75308 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�`UW4& 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 VU&Hj&vMjlep?(*ik^can|Jmjh5<>t0 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable/honeycomb.jpg b/compose/snippets/src/main/res/drawable/honeycomb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94c892b576b5c3842db3cb99d0f5bebaf04299a3 GIT binary patch literal 77136 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/H!HGKBZ;?%8 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 z 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 Date: Tue, 30 Apr 2024 14:44:37 +0100 Subject: [PATCH 15/49] Update libs.versions.toml (#251) (#252) Co-authored-by: Simona <35065668+simona-anomis@users.noreply.github.com> From 664855e77827225da94425b0e99ced015d9d7a3c Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 1 May 2024 11:13:14 +0100 Subject: [PATCH 16/49] Snippet updates based on peer feedback. --- .../BasicSharedElementSnippets.kt | 95 +------ .../CustomizeSharedElementsSnippets.kt | 248 +++++++++++------- .../SharedElementsWithNavigationSnippets.kt | 163 +++++++----- 3 files changed, 260 insertions(+), 246 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt index 74f388b7..d2fb25e1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -55,93 +55,6 @@ import com.example.compose.snippets.R import com.example.compose.snippets.ui.theme.LavenderLight import com.example.compose.snippets.ui.theme.RoseLight -private class SharedElementBasicUsage1 { - @Preview - // [START android_compose_animations_shared_element_start] - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent(onShowDetails = { - showDetails = true - }) - } else { - DetailsContent(onBack = { - showDetails = false - }) - } - } - } - - @Composable - private fun MainContent(onShowDetails: () -> Unit) { - Row( - // [START_EXCLUDE] - modifier = Modifier - .padding(8.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 21.sp) - } - } - - @Composable - private fun DetailsContent(modifier: Modifier = Modifier, onBack: () -> Unit) { - Column( - // [START_EXCLUDE] - modifier = Modifier - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 28.sp) - // [START_EXCLUDE] - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - // [END_EXCLUDE] - } - } - // [END android_compose_animations_shared_element_start] -} - private class SharedElementBasicUsage2 { @Preview @Composable @@ -203,7 +116,9 @@ private class SharedElementBasicUsage2 { .clip(CircleShape), contentScale = ContentScale.Crop ) + // [START_EXCLUDE] Text("Cupcake", fontSize = 21.sp) + // [END_EXCLUDE] } } @@ -234,8 +149,8 @@ private class SharedElementBasicUsage2 { .clip(CircleShape), contentScale = ContentScale.Crop ) - Text("Cupcake", fontSize = 28.sp) // [START_EXCLUDE] + Text("Cupcake", fontSize = 28.sp) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + @@ -315,6 +230,7 @@ private class SharedElementBasicUsage3 { .clip(CircleShape), contentScale = ContentScale.Crop ) + // [START_EXCLUDE] Text( "Cupcake", fontSize = 21.sp, modifier = Modifier.sharedBounds( @@ -322,6 +238,7 @@ private class SharedElementBasicUsage3 { animatedVisibilityScope = animatedVisibilityScope ) ) + // [END_EXCLUDE] } } } @@ -358,6 +275,7 @@ private class SharedElementBasicUsage3 { .clip(CircleShape), contentScale = ContentScale.Crop ) + // [START_EXCLUDE] Text( "Cupcake", fontSize = 28.sp, modifier = Modifier.sharedBounds( @@ -365,7 +283,6 @@ private class SharedElementBasicUsage3 { animatedVisibilityScope = animatedVisibilityScope ) ) - // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt index 4e38c18b..26e3c657 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -27,12 +27,17 @@ import androidx.compose.animation.ExitTransition import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.core.ArcMode +import androidx.compose.animation.core.ExperimentalAnimationSpecApi +import androidx.compose.animation.core.FastOutSlowInEasing import androidx.compose.animation.core.Spring import androidx.compose.animation.core.keyframes import androidx.compose.animation.core.spring import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut +import androidx.compose.animation.slideInVertically +import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.border @@ -83,66 +88,79 @@ import com.example.compose.snippets.R import com.example.compose.snippets.ui.theme.LavenderLight import com.example.compose.snippets.ui.theme.RoseLight -private class SharedElementBoundsTransform { - @Preview - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent( - onShowDetails = { - showDetails = true - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } else { - DetailsContent( - onBack = { - showDetails = false - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } +@Preview +@Composable +fun SharedElementApp_BoundsTransformExample() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) } } } +} - @Composable - private fun MainContent( - onShowDetails: () -> Unit, - modifier: Modifier = Modifier, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { +@OptIn(ExperimentalAnimationSpecApi::class) +@Composable +private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope +) { + with(sharedTransitionScope) { + Box(modifier = Modifier.fillMaxSize()) { Row( modifier = Modifier .padding(8.dp) + .fillMaxWidth() .sharedBounds( rememberSharedContentState(key = "bounds"), animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() + enter = fadeIn( + tween( + boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + exit = fadeOut( + tween( + boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + boundsTransform = boundsTransform ) - // [START_EXCLUDE] .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { onShowDetails() } .padding(8.dp) - // [END_EXCLUDE] ) { - // [START_EXCLUDE] Image( painter = painterResource(id = R.drawable.cupcake), contentDescription = "Cupcake", @@ -150,69 +168,72 @@ private class SharedElementBoundsTransform { .sharedElement( rememberSharedContentState(key = "image"), animatedVisibilityScope = animatedVisibilityScope, - boundsTransform = { _, _ -> - spring( - stiffness = Spring.StiffnessMediumLow, - dampingRatio = Spring.DampingRatioMediumBouncy - ) - } + boundsTransform = boundsTransform ) .size(100.dp) .clip(CircleShape), contentScale = ContentScale.Crop ) + val textBoundsTransform = BoundsTransform { initialBounds, targetBounds -> + keyframes { + durationMillis = boundsAnimationDurationMillis + initialBounds at 0 using ArcMode.ArcBelow using FastOutSlowInEasing + targetBounds at boundsAnimationDurationMillis + } + } Text( "Cupcake", fontSize = 21.sp, modifier = Modifier.sharedBounds( rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = textBoundsTransform ) ) - // [END_EXCLUDE] } } } +} - @Composable - private fun DetailsContent( - modifier: Modifier = Modifier, - onBack: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { +@OptIn(ExperimentalAnimationSpecApi::class) +@Composable +private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope +) { + with(sharedTransitionScope) { + Box(modifier = Modifier.fillMaxSize()) { Column( modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) .sharedBounds( rememberSharedContentState(key = "bounds"), animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() + enter = fadeIn( + tween( + durationMillis = boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + exit = fadeOut( + tween( + durationMillis = boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + boundsTransform = boundsTransform ) - // [START_EXCLUDE] - .padding(top = 200.dp, start = 16.dp, end = 16.dp) .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { onBack() } .padding(8.dp) - // [END_EXCLUDE] - ) { - // [START android_compose_shared_element_image_bounds_transform] - val imageBoundsTransform = BoundsTransform { initial, target -> - keyframes { - durationMillis = 500 - initial at 0 - Rect( - target.left + 100, - target.top, - target.right + 100, - target.bottom - ) at 300 - } - } Image( painter = painterResource(id = R.drawable.cupcake), contentDescription = "Cupcake", @@ -220,32 +241,47 @@ private class SharedElementBoundsTransform { .sharedElement( rememberSharedContentState(key = "image"), animatedVisibilityScope = animatedVisibilityScope, - boundsTransform = imageBoundsTransform + boundsTransform = boundsTransform ) .size(200.dp) .clip(CircleShape), contentScale = ContentScale.Crop ) - // [END android_compose_shared_element_image_bounds_transform] + // [START android_compose_shared_element_text_bounds_transform] + val textBoundsTransform = BoundsTransform { initialBounds, targetBounds -> + keyframes { + durationMillis = boundsAnimationDurationMillis + initialBounds at 0 using ArcMode.ArcBelow using FastOutSlowInEasing + targetBounds at boundsAnimationDurationMillis + } + } Text( "Cupcake", fontSize = 28.sp, modifier = Modifier.sharedBounds( rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = textBoundsTransform ) ) + // [END android_compose_shared_element_text_bounds_transform] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus", + modifier = Modifier.skipToLookaheadSize() ) } } } } +private val boundsTransform = BoundsTransform { _: Rect, _: Rect -> + tween(durationMillis = boundsAnimationDurationMillis, easing = FastOutSlowInEasing) +} +private const val boundsAnimationDurationMillis = 500 + @Preview @Composable private fun SharedElement_Clipping() { @@ -290,7 +326,7 @@ private fun SharedElement_Clipping() { rememberSharedContentState(key = "title"), animatedVisibilityScope = this@AnimatedContent, - ) + ) ) } } else { @@ -328,10 +364,10 @@ private fun SharedElement_Clipping() { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) } } @@ -339,6 +375,36 @@ private fun SharedElement_Clipping() { } } +@Composable +private fun JetsnackBottomBar(modifier: Modifier) { + +} + +@Composable +private fun EnterExitJetsnack() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_enter_exit] + JetsnackBottomBar( + modifier = Modifier + .renderInSharedTransitionScopeOverlay( + zIndexInOverlay = 1f, + ) + .animateEnterExit( + enter = fadeIn() + slideInVertically { + it + }, + exit = fadeOut() + slideOutVertically { + it + } + ) + ) + // [END android_compose_shared_element_enter_exit] + } + } + +} + @Preview @Composable private fun SharedElement_SkipLookaheadSize() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt index 56333e83..a315950e 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -19,8 +19,11 @@ package com.example.compose.snippets.animations.sharedelement import androidx.annotation.DrawableRes +import androidx.compose.animation.AnimatedContentScope import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.core.TweenSpec import androidx.compose.animation.core.tween import androidx.compose.foundation.Image import androidx.compose.foundation.clickable @@ -40,12 +43,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Rect import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.navigation.NavHostController import androidx.navigation.NavType import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable @@ -67,54 +70,17 @@ val listSnacks = listOf( fun SharedElement_PredictiveBack() { // [START android_compose_shared_element_predictive_back] SharedTransitionLayout { - val boundsTransform = { _: Rect, _: Rect -> tween(1400) } - val navController = rememberNavController() NavHost( navController = navController, startDestination = "home" ) { - composable("home") { - LazyColumn( - modifier = Modifier - .fillMaxSize() - .padding(8.dp), - verticalArrangement = Arrangement.spacedBy(8.dp) - ) { - itemsIndexed(listSnacks) { index, item -> - Row( - Modifier.clickable { - navController.navigate("details/$index") - } - ) { - Spacer(modifier = Modifier.width(8.dp)) - Image( - painterResource(id = item.image), - contentDescription = item.description, - contentScale = ContentScale.Crop, - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image-$index"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - .size(100.dp) - ) - Spacer(modifier = Modifier.width(8.dp)) - Text( - item.name, fontSize = 18.sp, - modifier = Modifier - .align(Alignment.CenterVertically) - .sharedElement( - rememberSharedContentState(key = "text-$index"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - ) - } - } - } + HomeScreen( + navController, + this@SharedTransitionLayout, + this@composable + ) } composable( "details/{item}", @@ -122,42 +88,107 @@ fun SharedElement_PredictiveBack() { ) { backStackEntry -> val id = backStackEntry.arguments?.getInt("item") val snack = listSnacks[id!!] - Column( - Modifier - .fillMaxSize() - .clickable { - navController.navigate("home") - } - ) { + DetailsScreen( + navController, + id, + snack, + this@SharedTransitionLayout, + this@composable + ) + } + } + } + // [END android_compose_shared_element_predictive_back] +} + +@Composable +private fun DetailsScreen( + navController: NavHostController, + id: Int, + snack: Snack, + sharedTransitionScope: SharedTransitionScope, + animatedContentScope: AnimatedContentScope +) { + with(sharedTransitionScope) { + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigate("home") + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier.Companion + .sharedElement( + sharedTransitionScope.rememberSharedContentState(key = "image-$id"), + animatedVisibilityScope = animatedContentScope + ) + .aspectRatio(1f) + .fillMaxWidth() + ) + Text( + snack.name, fontSize = 18.sp, + modifier = + Modifier.Companion + .sharedElement( + sharedTransitionScope.rememberSharedContentState(key = "text-$id"), + animatedVisibilityScope = animatedContentScope + ) + .fillMaxWidth() + ) + } + } + +} + +@Composable +private fun HomeScreen( + navController: NavHostController, + sharedTransitionScope: SharedTransitionScope, + animatedContentScope: AnimatedContentScope +) { + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + itemsIndexed(listSnacks) { index, item -> + Row( + Modifier.clickable { + navController.navigate("details/$index") + } + ) { + Spacer(modifier = Modifier.width(8.dp)) + with(sharedTransitionScope) { Image( - painterResource(id = snack.image), - contentDescription = snack.description, + painterResource(id = item.image), + contentDescription = item.description, contentScale = ContentScale.Crop, - modifier = Modifier + modifier = Modifier.Companion .sharedElement( - rememberSharedContentState(key = "image-$id"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform + sharedTransitionScope.rememberSharedContentState(key = "image-$index"), + animatedVisibilityScope = animatedContentScope ) - .aspectRatio(1f) - .fillMaxWidth() + .size(100.dp) ) + Spacer(modifier = Modifier.width(8.dp)) Text( - snack.name, fontSize = 18.sp, - modifier = - Modifier + item.name, fontSize = 18.sp, + modifier = Modifier + .align(Alignment.CenterVertically) .sharedElement( - rememberSharedContentState(key = "text-$id"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform + sharedTransitionScope.rememberSharedContentState(key = "text-$index"), + animatedVisibilityScope = animatedContentScope, ) - .fillMaxWidth() ) } } } } -// [END android_compose_shared_element_predictive_back] } data class Snack( From 2c462815675d6787d647dfd1f7ded03357d0ce53 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 1 May 2024 13:55:13 +0100 Subject: [PATCH 17/49] Shared element snippets (#258) * add shared element snippets * Apply Spotless * Split snippets into different files. * Apply Spotless * Snippet updates based on peer feedback. * Apply Spotless --------- Co-authored-by: riggaroo --- .../BasicSharedElementSnippets.kt | 95 +------ .../CustomizeSharedElementsSnippets.kt | 232 +++++++++++------- .../SharedElementsWithNavigationSnippets.kt | 162 +++++++----- 3 files changed, 248 insertions(+), 241 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt index 74f388b7..d2fb25e1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -55,93 +55,6 @@ import com.example.compose.snippets.R import com.example.compose.snippets.ui.theme.LavenderLight import com.example.compose.snippets.ui.theme.RoseLight -private class SharedElementBasicUsage1 { - @Preview - // [START android_compose_animations_shared_element_start] - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent(onShowDetails = { - showDetails = true - }) - } else { - DetailsContent(onBack = { - showDetails = false - }) - } - } - } - - @Composable - private fun MainContent(onShowDetails: () -> Unit) { - Row( - // [START_EXCLUDE] - modifier = Modifier - .padding(8.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 21.sp) - } - } - - @Composable - private fun DetailsContent(modifier: Modifier = Modifier, onBack: () -> Unit) { - Column( - // [START_EXCLUDE] - modifier = Modifier - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop - ) - Text("Cupcake", fontSize = 28.sp) - // [START_EXCLUDE] - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - // [END_EXCLUDE] - } - } - // [END android_compose_animations_shared_element_start] -} - private class SharedElementBasicUsage2 { @Preview @Composable @@ -203,7 +116,9 @@ private class SharedElementBasicUsage2 { .clip(CircleShape), contentScale = ContentScale.Crop ) + // [START_EXCLUDE] Text("Cupcake", fontSize = 21.sp) + // [END_EXCLUDE] } } @@ -234,8 +149,8 @@ private class SharedElementBasicUsage2 { .clip(CircleShape), contentScale = ContentScale.Crop ) - Text("Cupcake", fontSize = 28.sp) // [START_EXCLUDE] + Text("Cupcake", fontSize = 28.sp) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + @@ -315,6 +230,7 @@ private class SharedElementBasicUsage3 { .clip(CircleShape), contentScale = ContentScale.Crop ) + // [START_EXCLUDE] Text( "Cupcake", fontSize = 21.sp, modifier = Modifier.sharedBounds( @@ -322,6 +238,7 @@ private class SharedElementBasicUsage3 { animatedVisibilityScope = animatedVisibilityScope ) ) + // [END_EXCLUDE] } } } @@ -358,6 +275,7 @@ private class SharedElementBasicUsage3 { .clip(CircleShape), contentScale = ContentScale.Crop ) + // [START_EXCLUDE] Text( "Cupcake", fontSize = 28.sp, modifier = Modifier.sharedBounds( @@ -365,7 +283,6 @@ private class SharedElementBasicUsage3 { animatedVisibilityScope = animatedVisibilityScope ) ) - // [START_EXCLUDE] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt index 4e38c18b..cf0a9c01 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -27,12 +27,15 @@ import androidx.compose.animation.ExitTransition import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout import androidx.compose.animation.SharedTransitionScope -import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.ArcMode +import androidx.compose.animation.core.ExperimentalAnimationSpecApi +import androidx.compose.animation.core.FastOutSlowInEasing import androidx.compose.animation.core.keyframes -import androidx.compose.animation.core.spring import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut +import androidx.compose.animation.slideInVertically +import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.border @@ -83,66 +86,79 @@ import com.example.compose.snippets.R import com.example.compose.snippets.ui.theme.LavenderLight import com.example.compose.snippets.ui.theme.RoseLight -private class SharedElementBoundsTransform { - @Preview - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent( - onShowDetails = { - showDetails = true - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } else { - DetailsContent( - onBack = { - showDetails = false - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } +@Preview +@Composable +fun SharedElementApp_BoundsTransformExample() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) } } } +} - @Composable - private fun MainContent( - onShowDetails: () -> Unit, - modifier: Modifier = Modifier, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { +@OptIn(ExperimentalAnimationSpecApi::class) +@Composable +private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope +) { + with(sharedTransitionScope) { + Box(modifier = Modifier.fillMaxSize()) { Row( modifier = Modifier .padding(8.dp) + .fillMaxWidth() .sharedBounds( rememberSharedContentState(key = "bounds"), animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() + enter = fadeIn( + tween( + boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + exit = fadeOut( + tween( + boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + boundsTransform = boundsTransform ) - // [START_EXCLUDE] .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { onShowDetails() } .padding(8.dp) - // [END_EXCLUDE] ) { - // [START_EXCLUDE] Image( painter = painterResource(id = R.drawable.cupcake), contentDescription = "Cupcake", @@ -150,69 +166,72 @@ private class SharedElementBoundsTransform { .sharedElement( rememberSharedContentState(key = "image"), animatedVisibilityScope = animatedVisibilityScope, - boundsTransform = { _, _ -> - spring( - stiffness = Spring.StiffnessMediumLow, - dampingRatio = Spring.DampingRatioMediumBouncy - ) - } + boundsTransform = boundsTransform ) .size(100.dp) .clip(CircleShape), contentScale = ContentScale.Crop ) + val textBoundsTransform = BoundsTransform { initialBounds, targetBounds -> + keyframes { + durationMillis = boundsAnimationDurationMillis + initialBounds at 0 using ArcMode.ArcBelow using FastOutSlowInEasing + targetBounds at boundsAnimationDurationMillis + } + } Text( "Cupcake", fontSize = 21.sp, modifier = Modifier.sharedBounds( rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = textBoundsTransform ) ) - // [END_EXCLUDE] } } } +} - @Composable - private fun DetailsContent( - modifier: Modifier = Modifier, - onBack: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { +@OptIn(ExperimentalAnimationSpecApi::class) +@Composable +private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope +) { + with(sharedTransitionScope) { + Box(modifier = Modifier.fillMaxSize()) { Column( modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) .sharedBounds( rememberSharedContentState(key = "bounds"), animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() + enter = fadeIn( + tween( + durationMillis = boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + exit = fadeOut( + tween( + durationMillis = boundsAnimationDurationMillis, + easing = FastOutSlowInEasing + ) + ), + boundsTransform = boundsTransform ) - // [START_EXCLUDE] - .padding(top = 200.dp, start = 16.dp, end = 16.dp) .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { onBack() } .padding(8.dp) - // [END_EXCLUDE] - ) { - // [START android_compose_shared_element_image_bounds_transform] - val imageBoundsTransform = BoundsTransform { initial, target -> - keyframes { - durationMillis = 500 - initial at 0 - Rect( - target.left + 100, - target.top, - target.right + 100, - target.bottom - ) at 300 - } - } Image( painter = painterResource(id = R.drawable.cupcake), contentDescription = "Cupcake", @@ -220,32 +239,47 @@ private class SharedElementBoundsTransform { .sharedElement( rememberSharedContentState(key = "image"), animatedVisibilityScope = animatedVisibilityScope, - boundsTransform = imageBoundsTransform + boundsTransform = boundsTransform ) .size(200.dp) .clip(CircleShape), contentScale = ContentScale.Crop ) - // [END android_compose_shared_element_image_bounds_transform] + // [START android_compose_shared_element_text_bounds_transform] + val textBoundsTransform = BoundsTransform { initialBounds, targetBounds -> + keyframes { + durationMillis = boundsAnimationDurationMillis + initialBounds at 0 using ArcMode.ArcBelow using FastOutSlowInEasing + targetBounds at boundsAnimationDurationMillis + } + } Text( "Cupcake", fontSize = 28.sp, modifier = Modifier.sharedBounds( rememberSharedContentState(key = "title"), - animatedVisibilityScope = animatedVisibilityScope + animatedVisibilityScope = animatedVisibilityScope, + boundsTransform = textBoundsTransform ) ) + // [END android_compose_shared_element_text_bounds_transform] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus", + modifier = Modifier.skipToLookaheadSize() ) } } } } +private val boundsTransform = BoundsTransform { _: Rect, _: Rect -> + tween(durationMillis = boundsAnimationDurationMillis, easing = FastOutSlowInEasing) +} +private const val boundsAnimationDurationMillis = 500 + @Preview @Composable private fun SharedElement_Clipping() { @@ -339,6 +373,34 @@ private fun SharedElement_Clipping() { } } +@Composable +private fun JetsnackBottomBar(modifier: Modifier) { +} + +@Composable +private fun EnterExitJetsnack() { + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [START android_compose_shared_element_enter_exit] + JetsnackBottomBar( + modifier = Modifier + .renderInSharedTransitionScopeOverlay( + zIndexInOverlay = 1f, + ) + .animateEnterExit( + enter = fadeIn() + slideInVertically { + it + }, + exit = fadeOut() + slideOutVertically { + it + } + ) + ) + // [END android_compose_shared_element_enter_exit] + } + } +} + @Preview @Composable private fun SharedElement_SkipLookaheadSize() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt index 56333e83..4bdb0916 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -19,9 +19,10 @@ package com.example.compose.snippets.animations.sharedelement import androidx.annotation.DrawableRes +import androidx.compose.animation.AnimatedContentScope import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout -import androidx.compose.animation.core.tween +import androidx.compose.animation.SharedTransitionScope import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -40,12 +41,12 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Rect import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.navigation.NavHostController import androidx.navigation.NavType import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable @@ -67,54 +68,17 @@ val listSnacks = listOf( fun SharedElement_PredictiveBack() { // [START android_compose_shared_element_predictive_back] SharedTransitionLayout { - val boundsTransform = { _: Rect, _: Rect -> tween(1400) } - val navController = rememberNavController() NavHost( navController = navController, startDestination = "home" ) { - composable("home") { - LazyColumn( - modifier = Modifier - .fillMaxSize() - .padding(8.dp), - verticalArrangement = Arrangement.spacedBy(8.dp) - ) { - itemsIndexed(listSnacks) { index, item -> - Row( - Modifier.clickable { - navController.navigate("details/$index") - } - ) { - Spacer(modifier = Modifier.width(8.dp)) - Image( - painterResource(id = item.image), - contentDescription = item.description, - contentScale = ContentScale.Crop, - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image-$index"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - .size(100.dp) - ) - Spacer(modifier = Modifier.width(8.dp)) - Text( - item.name, fontSize = 18.sp, - modifier = Modifier - .align(Alignment.CenterVertically) - .sharedElement( - rememberSharedContentState(key = "text-$index"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform - ) - ) - } - } - } + HomeScreen( + navController, + this@SharedTransitionLayout, + this@composable + ) } composable( "details/{item}", @@ -122,42 +86,106 @@ fun SharedElement_PredictiveBack() { ) { backStackEntry -> val id = backStackEntry.arguments?.getInt("item") val snack = listSnacks[id!!] - Column( - Modifier - .fillMaxSize() - .clickable { - navController.navigate("home") - } - ) { + DetailsScreen( + navController, + id, + snack, + this@SharedTransitionLayout, + this@composable + ) + } + } + } + // [END android_compose_shared_element_predictive_back] +} + +@Composable +private fun DetailsScreen( + navController: NavHostController, + id: Int, + snack: Snack, + sharedTransitionScope: SharedTransitionScope, + animatedContentScope: AnimatedContentScope +) { + with(sharedTransitionScope) { + Column( + Modifier + .fillMaxSize() + .clickable { + navController.navigate("home") + } + ) { + Image( + painterResource(id = snack.image), + contentDescription = snack.description, + contentScale = ContentScale.Crop, + modifier = Modifier.Companion + .sharedElement( + sharedTransitionScope.rememberSharedContentState(key = "image-$id"), + animatedVisibilityScope = animatedContentScope + ) + .aspectRatio(1f) + .fillMaxWidth() + ) + Text( + snack.name, fontSize = 18.sp, + modifier = + Modifier.Companion + .sharedElement( + sharedTransitionScope.rememberSharedContentState(key = "text-$id"), + animatedVisibilityScope = animatedContentScope + ) + .fillMaxWidth() + ) + } + } +} + +@Composable +private fun HomeScreen( + navController: NavHostController, + sharedTransitionScope: SharedTransitionScope, + animatedContentScope: AnimatedContentScope +) { + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + itemsIndexed(listSnacks) { index, item -> + Row( + Modifier.clickable { + navController.navigate("details/$index") + } + ) { + Spacer(modifier = Modifier.width(8.dp)) + with(sharedTransitionScope) { Image( - painterResource(id = snack.image), - contentDescription = snack.description, + painterResource(id = item.image), + contentDescription = item.description, contentScale = ContentScale.Crop, - modifier = Modifier + modifier = Modifier.Companion .sharedElement( - rememberSharedContentState(key = "image-$id"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform + sharedTransitionScope.rememberSharedContentState(key = "image-$index"), + animatedVisibilityScope = animatedContentScope ) - .aspectRatio(1f) - .fillMaxWidth() + .size(100.dp) ) + Spacer(modifier = Modifier.width(8.dp)) Text( - snack.name, fontSize = 18.sp, - modifier = - Modifier + item.name, fontSize = 18.sp, + modifier = Modifier + .align(Alignment.CenterVertically) .sharedElement( - rememberSharedContentState(key = "text-$id"), - animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform + sharedTransitionScope.rememberSharedContentState(key = "text-$index"), + animatedVisibilityScope = animatedContentScope, ) - .fillMaxWidth() ) } } } } -// [END android_compose_shared_element_predictive_back] } data class Snack( From 23d2ab2905863886a46daa75c3d7a830c378397e Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 1 May 2024 14:29:21 +0100 Subject: [PATCH 18/49] Unique key snippet --- .../BasicSharedElementSnippets.kt | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt index d2fb25e1..bcc6cfd9 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -19,6 +19,7 @@ package com.example.compose.snippets.animations.sharedelement import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibilityScope import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout @@ -38,6 +39,7 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.compositionLocalOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -395,3 +397,44 @@ private fun UnmatchedBoundsExample() { } // [END android_compose_animation_shared_element_bounds_unmatched] } + +private object UniqueKeySnippet { + // [START android_compose_shared_elements_unique_key] + data class SnackSharedElementKey( + val snackId: Long, + val origin: String, + val type: SnackSharedElementType + ) + + enum class SnackSharedElementType { + Bounds, + Image, + Title, + Tagline, + Background + } + + @Composable + fun SharedElementUniqueKey() { + // [START_EXCLUDE] + SharedTransitionLayout { + AnimatedVisibility(visible = true) { + // [END_EXCLUDE] + Box(modifier = Modifier + .sharedElement( + rememberSharedContentState( + key = SnackSharedElementKey( + snackId = 1, + origin = "latest", + type = SnackSharedElementType.Image + ) + ), + animatedVisibilityScope = this@AnimatedVisibility + )) + // [START_EXCLUDE] + } + } + // [END_EXCLUDE] + } + // [END android_compose_shared_elements_unique_key] +} From fb5f9826293f597b5f97b383c6382fd12ded6307 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 1 May 2024 15:00:07 +0100 Subject: [PATCH 19/49] Update SharedElementsWithNavigationSnippets.kt --- .../sharedelement/SharedElementsWithNavigationSnippets.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt index a315950e..1551bdc8 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -64,11 +64,10 @@ val listSnacks = listOf( Snack("Gingerbread", "", R.drawable.gingerbread), Snack("Honeycomb", "", R.drawable.honeycomb), ) - +// [START android_compose_shared_element_predictive_back] @Preview @Composable fun SharedElement_PredictiveBack() { - // [START android_compose_shared_element_predictive_back] SharedTransitionLayout { val navController = rememberNavController() NavHost( @@ -98,7 +97,6 @@ fun SharedElement_PredictiveBack() { } } } - // [END android_compose_shared_element_predictive_back] } @Composable @@ -196,3 +194,4 @@ data class Snack( val description: String, @DrawableRes val image: Int ) +// [END android_compose_shared_element_predictive_back] \ No newline at end of file From d6d77eb61c92f7565549f5371fcde817adb6efdd Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 2 May 2024 08:12:35 +0100 Subject: [PATCH 20/49] Update AsyncImage snippet --- .../sharedelement/SharedElementCommonUseCaseSnippets.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt index ed63da7b..ce14e839 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt @@ -48,6 +48,8 @@ private fun SharedAsyncImage() { model = ImageRequest.Builder(LocalContext.current) .data("your-image-url") .crossfade(true) + .placeholderMemoryCacheKey("image-key") // same key as shared element key + .memoryCacheKey("image-key") // same key as shared element key .build(), placeholder = null, contentDescription = null, @@ -57,8 +59,7 @@ private fun SharedAsyncImage() { rememberSharedContentState( key = "image-key" ), - animatedVisibilityScope = this, - exit = ExitTransition.None + animatedVisibilityScope = this ) ) // [END android_compose_shared_element_async_image_tip] From 5a44e5e69e97b120bb586b1222c64434f3d07d75 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 2 May 2024 09:29:32 +0100 Subject: [PATCH 21/49] Add placeholder size example --- .../java/com/example/compose/snippets/SnippetsActivity.kt | 2 ++ .../sharedelement/CustomizeSharedElementsSnippets.kt | 7 ++----- .../com/example/compose/snippets/navigation/Destination.kt | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt index 56330061..bae8c6bd 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt @@ -28,6 +28,7 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import com.example.compose.snippets.animations.AnimationExamplesScreen +import com.example.compose.snippets.animations.sharedelement.PlaceholderSizeAnimated_Demo import com.example.compose.snippets.components.AppBarExamples import com.example.compose.snippets.components.ButtonExamples import com.example.compose.snippets.components.ChipExamples @@ -77,6 +78,7 @@ class SnippetsActivity : ComponentActivity() { ) } Destination.ShapesExamples -> ApplyPolygonAsClipImage() + Destination.SharedElementExamples ->PlaceholderSizeAnimated_Demo() } } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt index 26e3c657..51da799f 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -542,7 +542,6 @@ fun PlaceholderSizeAnimated_Demo() { // This demo shows how other items in a layout can respond to shared elements changing in size. // [START android_compose_shared_element_placeholder_size] SharedTransitionLayout { - val boundsTransform = { _: Rect, _: Rect -> tween(1000) } val navController = rememberNavController() NavHost( @@ -550,7 +549,7 @@ fun PlaceholderSizeAnimated_Demo() { startDestination = "home" ) { composable("home", enterTransition = { fadeIn() }, exitTransition = { fadeOut() }) { - Column { + Column(modifier = Modifier.fillMaxSize()) { Row(modifier = Modifier.horizontalScroll(rememberScrollState())) { (listSnacks).forEachIndexed { index, snack -> Image( @@ -562,7 +561,6 @@ fun PlaceholderSizeAnimated_Demo() { .sharedBounds( rememberSharedContentState(key = "image-${snack.name}"), animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform, placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize ) .clickable { @@ -613,12 +611,11 @@ fun PlaceholderSizeAnimated_Demo() { .sharedBounds( rememberSharedContentState(key = "image-${snack.name}"), animatedVisibilityScope = this@composable, - boundsTransform = boundsTransform, placeHolderSize = SharedTransitionScope.PlaceHolderSize.animatedSize ) .clip(RoundedCornerShape(8.dp)) - .aspectRatio(9f / 16f) .fillMaxWidth() + .aspectRatio(9f / 16f) ) } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/navigation/Destination.kt b/compose/snippets/src/main/java/com/example/compose/snippets/navigation/Destination.kt index 60c07901..74e794c1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/navigation/Destination.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/navigation/Destination.kt @@ -23,6 +23,7 @@ enum class Destination(val route: String, val title: String) { ComponentsExamples("topComponents", "Top Compose Components"), ScreenshotExample("screenshotExample", "Screenshot Examples"), ShapesExamples("shapesExamples", "Shapes Examples"), + SharedElementExamples("sharedElement", "Shared elements") } // Enum class for compose components navigation screen. From d918044eaa8ab5b200bd49f931c63a9c5081f7fc Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 3 May 2024 12:59:13 +0100 Subject: [PATCH 22/49] Add comment to snippet about unmatched bounds --- .../animations/sharedelement/BasicSharedElementSnippets.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt index bcc6cfd9..989bf366 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -384,6 +384,8 @@ private fun UnmatchedBoundsExample() { animatedVisibilityScope = this@AnimatedContent ) .border(2.dp, Color.Red) + // This padding is placed after sharedBounds, but it doesn't match the + // other shared elements modifier order, resulting in visual jumps .padding(12.dp) ) { From 77e9ab13022628c372d3483b38ff281069761388 Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Tue, 7 May 2024 16:54:06 +0100 Subject: [PATCH 23/49] =?UTF-8?q?=F0=9F=A4=96=20Sync=20main=20to=20latest?= =?UTF-8?q?=20(#259)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update libs.versions.toml (#251) * Updated ListDetailPaneScaffold use to alpha12 (#255) This eliminates storing state outside and directly uses the navigator as the source of truth. This also gets rid of the Modifier for AnimatedPane as it's no longer a required argument. * Added NavigationSuiteScaffold snippets (#261) * Added NavigationSuiteScaffold snippets * Apply Spotless * 🤖 Update Dependencies (#262) * Added snippets for SupportingPaneScaffold (#260) * Added snippets for SupportingPaneScaffold * Apply Spotless * Update compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleSupportingPaneScaffold.kt * Migrate to material3-adaptive WindowSizeClass method (#264) * Migrate to material3-adaptive WindowSizeClass method * Update comments to be single line * Apply Spotless --------- Co-authored-by: Simona <35065668+simona-anomis@users.noreply.github.com> Co-authored-by: Ian G. Clifton <1033551+IanGClifton@users.noreply.github.com> Co-authored-by: Alex Vanyo Co-authored-by: compose-devrel-github-bot --- .../compose/snippets/SnippetsActivity.kt | 2 +- .../BasicSharedElementSnippets.kt | 25 ++++++++++--------- .../CustomizeSharedElementsSnippets.kt | 22 +++++++--------- .../SharedElementCommonUseCaseSnippets.kt | 1 - .../SharedElementsWithNavigationSnippets.kt | 5 +--- 5 files changed, 24 insertions(+), 31 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt index bae8c6bd..4e1e13ef 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt @@ -78,7 +78,7 @@ class SnippetsActivity : ComponentActivity() { ) } Destination.ShapesExamples -> ApplyPolygonAsClipImage() - Destination.SharedElementExamples ->PlaceholderSizeAnimated_Demo() + Destination.SharedElementExamples -> PlaceholderSizeAnimated_Demo() } } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt index 989bf366..fa7efb58 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -39,7 +39,6 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.compositionLocalOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -422,17 +421,19 @@ private object UniqueKeySnippet { SharedTransitionLayout { AnimatedVisibility(visible = true) { // [END_EXCLUDE] - Box(modifier = Modifier - .sharedElement( - rememberSharedContentState( - key = SnackSharedElementKey( - snackId = 1, - origin = "latest", - type = SnackSharedElementType.Image - ) - ), - animatedVisibilityScope = this@AnimatedVisibility - )) + Box( + modifier = Modifier + .sharedElement( + rememberSharedContentState( + key = SnackSharedElementKey( + snackId = 1, + origin = "latest", + type = SnackSharedElementType.Image + ) + ), + animatedVisibilityScope = this@AnimatedVisibility + ) + ) // [START_EXCLUDE] } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt index 51da799f..2b6957ac 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -30,9 +30,7 @@ import androidx.compose.animation.SharedTransitionScope import androidx.compose.animation.core.ArcMode import androidx.compose.animation.core.ExperimentalAnimationSpecApi import androidx.compose.animation.core.FastOutSlowInEasing -import androidx.compose.animation.core.Spring import androidx.compose.animation.core.keyframes -import androidx.compose.animation.core.spring import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -266,10 +264,10 @@ private fun DetailsContent( // [END android_compose_shared_element_text_bounds_transform] Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus", modifier = Modifier.skipToLookaheadSize() ) } @@ -326,7 +324,7 @@ private fun SharedElement_Clipping() { rememberSharedContentState(key = "title"), animatedVisibilityScope = this@AnimatedContent, - ) + ) ) } } else { @@ -364,10 +362,10 @@ private fun SharedElement_Clipping() { ) Text( "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" ) } } @@ -377,7 +375,6 @@ private fun SharedElement_Clipping() { @Composable private fun JetsnackBottomBar(modifier: Modifier) { - } @Composable @@ -402,7 +399,6 @@ private fun EnterExitJetsnack() { // [END android_compose_shared_element_enter_exit] } } - } @Preview diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt index ce14e839..b8dbd986 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt @@ -20,7 +20,6 @@ package com.example.compose.snippets.animations.sharedelement import androidx.annotation.DrawableRes import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.ExitTransition import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout import androidx.compose.animation.fadeIn diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt index 1551bdc8..09c72ff4 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -23,8 +23,6 @@ import androidx.compose.animation.AnimatedContentScope import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout import androidx.compose.animation.SharedTransitionScope -import androidx.compose.animation.core.TweenSpec -import androidx.compose.animation.core.tween import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -139,7 +137,6 @@ private fun DetailsScreen( ) } } - } @Composable @@ -194,4 +191,4 @@ data class Snack( val description: String, @DrawableRes val image: Int ) -// [END android_compose_shared_element_predictive_back] \ No newline at end of file +// [END android_compose_shared_element_predictive_back] From 3f7adbe4281c98651826fba5955b7e976caec342 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 9 May 2024 16:16:19 +0100 Subject: [PATCH 24/49] Update to new lazy list snippets. (#265) --- .../example/compose/snippets/lists/LazyListSnippets.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt index e1107eba..a4a405b3 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt @@ -20,6 +20,8 @@ package com.example.compose.snippets.lists import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.spring import androidx.compose.animation.core.tween import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.horizontalScroll @@ -434,7 +436,7 @@ private fun LazyItemAnimations() { // [START android_compose_layouts_lazy_column_item_animation] LazyColumn { items(books, key = { it.id }) { - Row(Modifier.animateItemPlacement()) { + Row(Modifier.animateItem()) { // ... } } @@ -452,8 +454,10 @@ private fun LazyItemAnimationWithSpec() { LazyColumn { items(books, key = { it.id }) { Row( - Modifier.animateItemPlacement( - tween(durationMillis = 250) + Modifier.animateItem( + fadeInSpec = tween(durationMillis = 250), + fadeOutSpec = tween(durationMillis = 100), + placementSpec = spring(stiffness = Spring.StiffnessLow, dampingRatio = Spring.DampingRatioMediumBouncy) ) ) { // ... From 8abe5ccd396b41cf74d934dc98f1fcd386e554f8 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 14 May 2024 20:16:12 +0100 Subject: [PATCH 25/49] Compose - beta01 (#270) * Update to new beta01 version * Apply Spotless * Update shared element text composable * Apply Spotless --------- Co-authored-by: riggaroo --- .../sharedelement/SharedBoundsSnippets.kt | 255 +++++++++--------- .../SharedElementCommonUseCaseSnippets.kt | 6 +- .../userinteractions/UserInteractions.kt | 14 +- gradle.properties | 19 +- gradle/libs.versions.toml | 10 +- gradle/wrapper/gradle-wrapper.properties | 3 +- 6 files changed, 157 insertions(+), 150 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt index 6fca70b1..3878fa6a 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedBoundsSnippets.kt @@ -53,149 +53,148 @@ import com.example.compose.snippets.R import com.example.compose.snippets.ui.theme.LavenderLight import com.example.compose.snippets.ui.theme.RoseLight -private class SharedElementBasicUsage4 { - - @Preview - @Composable - private fun SharedElementApp() { - var showDetails by remember { - mutableStateOf(false) - } - SharedTransitionLayout { - AnimatedContent( - showDetails, - label = "basic_transition" - ) { targetState -> - if (!targetState) { - MainContent( - onShowDetails = { - showDetails = true - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } else { - DetailsContent( - onBack = { - showDetails = false - }, - animatedVisibilityScope = this@AnimatedContent, - sharedTransitionScope = this@SharedTransitionLayout - ) - } +@Preview +@Composable +fun SharedBoundsDemo() { + var showDetails by remember { + mutableStateOf(false) + } + SharedTransitionLayout { + AnimatedContent( + showDetails, + label = "basic_transition" + ) { targetState -> + if (!targetState) { + MainContent( + onShowDetails = { + showDetails = true + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) + } else { + DetailsContent( + onBack = { + showDetails = false + }, + animatedVisibilityScope = this@AnimatedContent, + sharedTransitionScope = this@SharedTransitionLayout + ) } } } +} - // [START android_compose_animations_shared_element_shared_bounds] - @Composable - private fun MainContent( - onShowDetails: () -> Unit, - modifier: Modifier = Modifier, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { - Row( - modifier = Modifier - .padding(8.dp) - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() - ) - // [START_EXCLUDE] - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(LavenderLight, RoundedCornerShape(8.dp)) - .clickable { - onShowDetails() - } - .padding(8.dp) - // [END_EXCLUDE] - ) { - // [START_EXCLUDE] - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope - ) - .size(100.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop +// [START android_compose_animations_shared_element_shared_bounds] +@Composable +private fun MainContent( + onShowDetails: () -> Unit, + modifier: Modifier = Modifier, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope +) { + with(sharedTransitionScope) { + Row( + modifier = Modifier + .padding(8.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut(), + resizeMode = SharedTransitionScope.ResizeMode.ScaleToBounds() ) - Text( - "Cupcake", fontSize = 21.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(LavenderLight, RoundedCornerShape(8.dp)) + .clickable { + onShowDetails() + } + .padding(8.dp) + // [END_EXCLUDE] + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), animatedVisibilityScope = animatedVisibilityScope ) + .size(100.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 21.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope ) - // [END_EXCLUDE] - } + ) + // [END_EXCLUDE] } } +} - @Composable - private fun DetailsContent( - modifier: Modifier = Modifier, - onBack: () -> Unit, - sharedTransitionScope: SharedTransitionScope, - animatedVisibilityScope: AnimatedVisibilityScope - ) { - with(sharedTransitionScope) { - Column( - modifier = Modifier - .sharedBounds( - rememberSharedContentState(key = "bounds"), - animatedVisibilityScope = animatedVisibilityScope, - enter = fadeIn(), - exit = fadeOut() - ) - // [START_EXCLUDE] - .padding(top = 200.dp, start = 16.dp, end = 16.dp) - .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) - .background(RoseLight, RoundedCornerShape(8.dp)) - .clickable { - onBack() - } - .padding(8.dp) - // [END_EXCLUDE] - - ) { - // [START_EXCLUDE] - Image( - painter = painterResource(id = R.drawable.cupcake), - contentDescription = "Cupcake", - modifier = Modifier - .sharedElement( - rememberSharedContentState(key = "image"), - animatedVisibilityScope = animatedVisibilityScope - ) - .size(200.dp) - .clip(CircleShape), - contentScale = ContentScale.Crop +@Composable +private fun DetailsContent( + modifier: Modifier = Modifier, + onBack: () -> Unit, + sharedTransitionScope: SharedTransitionScope, + animatedVisibilityScope: AnimatedVisibilityScope +) { + with(sharedTransitionScope) { + Column( + modifier = Modifier + .padding(top = 200.dp, start = 16.dp, end = 16.dp) + .sharedBounds( + rememberSharedContentState(key = "bounds"), + animatedVisibilityScope = animatedVisibilityScope, + enter = fadeIn(), + exit = fadeOut(), + resizeMode = SharedTransitionScope.ResizeMode.ScaleToBounds() ) - Text( - "Cupcake", fontSize = 28.sp, - modifier = Modifier.sharedBounds( - rememberSharedContentState(key = "title"), + // [START_EXCLUDE] + .border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp)) + .background(RoseLight, RoundedCornerShape(8.dp)) + .clickable { + onBack() + } + .padding(8.dp) + // [END_EXCLUDE] + + ) { + // [START_EXCLUDE] + Image( + painter = painterResource(id = R.drawable.cupcake), + contentDescription = "Cupcake", + modifier = Modifier + .sharedElement( + rememberSharedContentState(key = "image"), animatedVisibilityScope = animatedVisibilityScope ) + .size(200.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + Text( + "Cupcake", fontSize = 28.sp, + modifier = Modifier.sharedBounds( + rememberSharedContentState(key = "title"), + animatedVisibilityScope = animatedVisibilityScope ) - Text( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + - "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + - " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + - "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + - "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" - ) - // [END_EXCLUDE] - } + ) + Text( + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " + + "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + + " Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " + + "molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " + + "hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus" + ) + // [END_EXCLUDE] } } - // [END android_compose_animations_shared_element_shared_bounds] } +// [END android_compose_animations_shared_element_shared_bounds] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt index b8dbd986..944122d1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementCommonUseCaseSnippets.kt @@ -22,6 +22,7 @@ import androidx.annotation.DrawableRes import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.layout.size @@ -89,8 +90,9 @@ private fun SharedElementTypicalUseText() { key = "shared Text" ), animatedVisibilityScope = this, - enter = fadeIn() + scaleInSharedContentToBounds(), - exit = fadeOut() + scaleOutSharedContentToBounds() + enter = fadeIn(), + exit = fadeOut(), + resizeMode = SharedTransitionScope.ResizeMode.ScaleToBounds() ) ) // [END android_compose_shared_element_text_tip] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt index e34dfaa6..07248a6f 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/userinteractions/UserInteractions.kt @@ -261,25 +261,17 @@ fun MyAppTheme(content: @Composable () -> Unit) { } // [END android_compose_userinteractions_localusefallbackrippleimplementation_app_theme] -// [START android_compose_userinteractions_disabled_ripple_configuration] -@OptIn(ExperimentalMaterialApi::class) -private val DisabledRippleConfiguration = - RippleConfiguration(isEnabled = false) - -// [START_EXCLUDE] @OptIn(ExperimentalMaterialApi::class) @Composable private fun MyComposableDisabledRippleConfig() { -// [END_EXCLUDE] - CompositionLocalProvider(LocalRippleConfiguration provides DisabledRippleConfiguration) { + // [START android_compose_userinteractions_disabled_ripple_configuration] + CompositionLocalProvider(LocalRippleConfiguration provides null) { Button { // ... } } -// [START_EXCLUDE silent] + // [END android_compose_userinteractions_disabled_ripple_configuration] } -// [END_EXCLUDE] -// [END android_compose_userinteractions_disabled_ripple_configuration] // [START android_compose_userinteractions_my_ripple_configuration] @OptIn(ExperimentalMaterialApi::class) diff --git a/gradle.properties b/gradle.properties index 6e7fda85..2dedea84 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,20 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true #Mon May 22 14:59:56 BST 2023 -android.enableJetifier=false +org.gradle.jvmargs=-Xmx2048m + +# Turn on parallel compilation, caching and on-demand configuration +org.gradle.configureondemand=true +org.gradle.caching=true +org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true -org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" -org.gradle.unsafe.configuration-cache=true + +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official + +# Enable R8 full mode. +android.enableR8.fullMode=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0a47f703..be0e9735 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] accompanist = "0.32.0" -androidGradlePlugin = "8.2.2" +androidGradlePlugin = "8.4.0" androidx-activity-compose = "1.9.0-alpha03" androidx-appcompat = "1.6.1" -androidx-compose-bom = "2024.04.01" +androidx-compose-bom = "2024.05.00" androidx-compose-ui-test = "1.7.0-alpha03" androidx-constraintlayout = "2.1.4" androidx-constraintlayout-compose = "1.0.1" @@ -23,7 +23,7 @@ coil = "2.5.0" # @keep compileSdk = "34" compose-compiler = "1.5.4" -compose-latest = "1.7.0-alpha07" +compose-latest = "1.7.0-beta01" coroutines = "1.7.3" google-maps = "18.2.0" gradle-versions = "0.51.0" @@ -52,7 +52,7 @@ accompanist-theme-adapter-material = { module = "com.google.accompanist:accompan accompanist-theme-adapter-material3 = { module = "com.google.accompanist:accompanist-themeadapter-material3", version.ref = "accompanist" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" } androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" } -androidx-compose-animation-graphics = { module = "androidx.compose.animation:animation-graphics" } +androidx-compose-animation-graphics = { module = "androidx.compose.animation:animation-graphics" , version.ref = "compose-latest" } androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "androidx-compose-bom" } androidx-compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose-latest" } androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout", version.ref = "compose-latest" } @@ -67,7 +67,7 @@ androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } androidx-compose-ui = { module = "androidx.compose.ui:ui" } androidx-compose-ui-googlefonts = { module = "androidx.compose.ui:ui-text-google-fonts" } -androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.0-alpha05" +androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.0-beta01" androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" } androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test" } androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e093..b81fa3bb 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ +#Tue May 14 19:06:12 BST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 960f6de1f6f450e8940db3dc7ff755356e60dba2 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 24 May 2024 13:19:46 +0100 Subject: [PATCH 26/49] Added snippet for AnimatedVisibility usage with Shared elements (#272) * Added AnimatedVisibility shared element examples. * Apply Spotless * Switch to using LazyColumn instead of Grid as it has better animation support at present. * Apply Spotless * Fixed import. * Apply Spotless * Seperate samples into different files, simplify snippet. * Apply Spotless --------- Co-authored-by: riggaroo --- ...matedVisibilitySharedElementBlurSnippet.kt | 168 +++++++++++++ ...AnimatedVisibilitySharedElementSnippets.kt | 232 ++++++++++++++++++ .../BasicSharedElementSnippets.kt | 56 +++++ .../CustomizeSharedElementsSnippets.kt | 9 + .../SharedElementsWithNavigationSnippets.kt | 3 +- .../compose/snippets/landing/LandingScreen.kt | 17 +- .../snippets/lists/LazyListSnippets.kt | 1 + 7 files changed, 480 insertions(+), 6 deletions(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementBlurSnippet.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementSnippets.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementBlurSnippet.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementBlurSnippet.kt new file mode 100644 index 00000000..92bee909 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementBlurSnippet.kt @@ -0,0 +1,168 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.BoundsTransform +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.drawWithContent +import androidx.compose.ui.graphics.BlurEffect +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.TileMode +import androidx.compose.ui.graphics.layer.GraphicsLayer +import androidx.compose.ui.graphics.layer.drawLayer +import androidx.compose.ui.graphics.rememberGraphicsLayer +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.example.compose.snippets.R + +private val listSnacks = listOf( + Snack("Cupcake", "", R.drawable.cupcake), + Snack("Donut", "", R.drawable.donut), + Snack("Eclair", "", R.drawable.eclair), + Snack("Froyo", "", R.drawable.froyo), + Snack("Gingerbread", "", R.drawable.gingerbread), + Snack("Honeycomb", "", R.drawable.honeycomb), +) + +private fun animationSpec() = tween(durationMillis = 500) +private val boundsTransition = BoundsTransform { _, _ -> animationSpec() } +private val shapeForSharedElement = RoundedCornerShape(16.dp) + +@OptIn(ExperimentalSharedTransitionApi::class) +@Preview +@Composable +private fun AnimatedVisibilitySharedElementBlurLayer() { + var selectedSnack by remember { mutableStateOf(null) } + val graphicsLayer = rememberGraphicsLayer() + val animateBlurRadius = animateFloatAsState( + targetValue = if (selectedSnack != null) 20f else 0f, + label = "blur radius", + animationSpec = animationSpec() + ) + + SharedTransitionLayout(modifier = Modifier.fillMaxSize()) { + LazyColumn( + modifier = Modifier + .fillMaxSize() + .background(Color.LightGray.copy(alpha = 0.5f)) + .blurLayer(graphicsLayer, animateBlurRadius.value) + .padding(16.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + itemsIndexed(listSnacks, key = { index, snack -> snack.name }) { index, snack -> + SnackItem( + snack = snack, + onClick = { + selectedSnack = snack + }, + visible = selectedSnack != snack, + modifier = Modifier.animateItem( + placementSpec = animationSpec(), + fadeOutSpec = animationSpec(), + fadeInSpec = animationSpec() + ) + ) + } + } + + SnackEditDetails( + snack = selectedSnack, + onConfirmClick = { + selectedSnack = null + } + ) + } +} + +fun Modifier.blurLayer(layer: GraphicsLayer, radius: Float): Modifier { + return if (radius == 0f) this else this.drawWithContent { + layer.apply { + record { + this@drawWithContent.drawContent() + } + // will apply a blur on API 31+ + this.renderEffect = BlurEffect(radius, radius, TileMode.Decal) + } + drawLayer(layer) + } +} +@Composable +fun SharedTransitionScope.SnackItem( + snack: Snack, + visible: Boolean, + onClick: () -> Unit, + modifier: Modifier = Modifier +) { + AnimatedVisibility( + modifier = modifier, + visible = visible, + enter = fadeIn(animationSpec = animationSpec()) + scaleIn( + animationSpec() + ), + exit = fadeOut(animationSpec = animationSpec()) + scaleOut( + animationSpec() + ) + ) { + Box( + modifier = Modifier + .sharedBounds( + sharedContentState = rememberSharedContentState(key = "${snack.name}-bounds"), + animatedVisibilityScope = this, + boundsTransform = boundsTransition, + clipInOverlayDuringTransition = OverlayClip(shapeForSharedElement) + ) + .background(Color.White, shapeForSharedElement) + .clip(shapeForSharedElement) + ) { + SnackContents( + snack = snack, + modifier = Modifier.sharedElement( + state = rememberSharedContentState(key = snack.name), + animatedVisibilityScope = this@AnimatedVisibility, + boundsTransform = boundsTransition, + ), + onClick = onClick + ) + } + } +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementSnippets.kt new file mode 100644 index 00000000..955dbe46 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/AnimatedVisibilitySharedElementSnippets.kt @@ -0,0 +1,232 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalSharedTransitionApi::class, ExperimentalSharedTransitionApi::class) + +package com.example.compose.snippets.animations.sharedelement + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.ExperimentalSharedTransitionApi +import androidx.compose.animation.SharedTransitionLayout +import androidx.compose.animation.SharedTransitionScope +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut +import androidx.compose.animation.togetherWith +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.example.compose.snippets.R + +private val listSnacks = listOf( + Snack("Cupcake", "", R.drawable.cupcake), + Snack("Donut", "", R.drawable.donut), + Snack("Eclair", "", R.drawable.eclair), + Snack("Froyo", "", R.drawable.froyo), + Snack("Gingerbread", "", R.drawable.gingerbread), + Snack("Honeycomb", "", R.drawable.honeycomb), +) + +private val shapeForSharedElement = RoundedCornerShape(16.dp) + +@OptIn(ExperimentalSharedTransitionApi::class) +@Preview +@Composable +private fun AnimatedVisibilitySharedElementShortenedExample() { + // [START android_compose_shared_elements_animated_visibility] + var selectedSnack by remember { mutableStateOf(null) } + + SharedTransitionLayout(modifier = Modifier.fillMaxSize()) { + LazyColumn( + // [START_EXCLUDE] + modifier = Modifier + .fillMaxSize() + .background(Color.LightGray.copy(alpha = 0.5f)) + .padding(16.dp), + verticalArrangement = Arrangement.spacedBy(8.dp) + // [END_EXCLUDE] + ) { + items(listSnacks) { snack -> + AnimatedVisibility( + visible = snack != selectedSnack, + enter = fadeIn() + scaleIn(), + exit = fadeOut() + scaleOut(), + modifier = Modifier.animateItem() + ) { + Box( + modifier = Modifier + .sharedBounds( + sharedContentState = rememberSharedContentState(key = "${snack.name}-bounds"), + // Using the scope provided by AnimatedVisibility + animatedVisibilityScope = this, + clipInOverlayDuringTransition = OverlayClip(shapeForSharedElement) + ) + .background(Color.White, shapeForSharedElement) + .clip(shapeForSharedElement) + ) { + SnackContents( + snack = snack, + modifier = Modifier.sharedElement( + state = rememberSharedContentState(key = snack.name), + animatedVisibilityScope = this@AnimatedVisibility + ), + onClick = { + selectedSnack = snack + } + ) + } + } + } + } + // Contains matching AnimatedContent with sharedBounds modifiers. + SnackEditDetails( + snack = selectedSnack, + onConfirmClick = { + selectedSnack = null + } + ) + } + // [END android_compose_shared_elements_animated_visibility] +} + +@Composable +fun SharedTransitionScope.SnackEditDetails( + snack: Snack?, + modifier: Modifier = Modifier, + onConfirmClick: () -> Unit +) { + AnimatedContent( + modifier = modifier, + targetState = snack, + transitionSpec = { + fadeIn() togetherWith fadeOut() + }, + label = "SnackEditDetails" + ) { targetSnack -> + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + if (targetSnack != null) { + Box( + modifier = Modifier + .fillMaxSize() + .clickable { + onConfirmClick() + } + .background(Color.Black.copy(alpha = 0.5f)) + ) + Column( + modifier = Modifier + .padding(horizontal = 16.dp) + .sharedBounds( + sharedContentState = rememberSharedContentState(key = "${targetSnack.name}-bounds"), + animatedVisibilityScope = this@AnimatedContent, + clipInOverlayDuringTransition = OverlayClip(shapeForSharedElement) + ) + .background(Color.White, shapeForSharedElement) + .clip(shapeForSharedElement) + ) { + + SnackContents( + snack = targetSnack, + modifier = Modifier.sharedElement( + state = rememberSharedContentState(key = targetSnack.name), + animatedVisibilityScope = this@AnimatedContent, + ), + onClick = { + onConfirmClick() + } + ) + Row( + Modifier + .fillMaxWidth() + .padding(bottom = 8.dp, end = 8.dp), + horizontalArrangement = Arrangement.End + ) { + TextButton(onClick = { onConfirmClick() }) { + Text(text = "Save changes") + } + } + } + } + } + } +} + +@Composable +fun SnackContents( + snack: Snack, + modifier: Modifier = Modifier, + onClick: () -> Unit +) { + Column( + modifier = modifier + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null + ) { + onClick() + } + ) { + Image( + painter = painterResource(id = snack.image), + modifier = Modifier + .fillMaxWidth() + .aspectRatio(20f / 9f), + contentScale = ContentScale.Crop, + contentDescription = null + ) + Text( + text = snack.name, + modifier = Modifier + .wrapContentWidth() + .padding(8.dp), + style = MaterialTheme.typography.titleSmall + ) + } +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt index fa7efb58..c246a809 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt @@ -39,6 +39,8 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.compositionLocalOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -441,3 +443,57 @@ private object UniqueKeySnippet { } // [END android_compose_shared_elements_unique_key] } + +// [START android_compose_shared_element_scope] +val LocalNavAnimatedVisibilityScope = compositionLocalOf { null } +val LocalSharedTransitionScope = compositionLocalOf { null } + +@Composable +private fun SharedElementScope_CompositionLocal() { + // An example of how to use composition locals to pass around the shared transition scope, far down your UI tree. + // [START_EXCLUDE] + val state = remember { + mutableStateOf(false) + } + // [END_EXCLUDE] + SharedTransitionLayout { + CompositionLocalProvider( + LocalSharedTransitionScope provides this + ) { + // This could also be your top-level NavHost as this provides an AnimatedContentScope + AnimatedContent(state, label = "Top level AnimatedContent") { targetState -> + CompositionLocalProvider(LocalNavAnimatedVisibilityScope provides this) { + // Now we can access the scopes in any nested composables as follows: + val sharedTransitionScope = LocalSharedTransitionScope.current + ?: throw IllegalStateException("No SharedElementScope found") + val animatedVisibilityScope = LocalNavAnimatedVisibilityScope.current + ?: throw IllegalStateException("No AnimatedVisibility found") + } + // [START_EXCLUDE] + if (targetState.value) { + // do something + } + // [END_EXCLUDE] + } + } + } +} +// [END android_compose_shared_element_scope] + +private object SharedElementScope_Extensions { + // [START android_compose_shared_element_parameters] + @Composable + fun MainContent( + animatedVisibilityScope: AnimatedVisibilityScope, + sharedTransitionScope: SharedTransitionScope + ) { + } + + @Composable + fun Details( + animatedVisibilityScope: AnimatedVisibilityScope, + sharedTransitionScope: SharedTransitionScope + ) { + } + // [END android_compose_shared_element_parameters] +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt index 2b6957ac..3e60c10e 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/CustomizeSharedElementsSnippets.kt @@ -532,6 +532,15 @@ private fun SharedElement_SkipLookaheadSize() { } } +private val listSnacks = listOf( + Snack("Cupcake", "", R.drawable.cupcake), + Snack("Donut", "", R.drawable.donut), + Snack("Eclair", "", R.drawable.eclair), + Snack("Froyo", "", R.drawable.froyo), + Snack("Gingerbread", "", R.drawable.gingerbread), + Snack("Honeycomb", "", R.drawable.honeycomb), +) + @Preview @Composable fun PlaceholderSizeAnimated_Demo() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt index 09c72ff4..42662f9b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -54,7 +54,7 @@ import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument import com.example.compose.snippets.R -val listSnacks = listOf( +private val listSnacks = listOf( Snack("Cupcake", "", R.drawable.cupcake), Snack("Donut", "", R.drawable.donut), Snack("Eclair", "", R.drawable.eclair), @@ -62,6 +62,7 @@ val listSnacks = listOf( Snack("Gingerbread", "", R.drawable.gingerbread), Snack("Honeycomb", "", R.drawable.honeycomb), ) + // [START android_compose_shared_element_predictive_back] @Preview @Composable diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt b/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt index 6b7c1a87..0fcfbf07 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt @@ -16,14 +16,17 @@ package com.example.compose.snippets.landing +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material3.Button +import androidx.compose.material3.Divider import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -65,12 +68,11 @@ fun LandingScreen( fun NavigationItems(navigate: (Destination) -> Unit) { LazyColumn( modifier = Modifier - .padding(16.dp) .fillMaxSize(), verticalArrangement = Arrangement.spacedBy(8.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { - items(Destination.values().toList()) { destination -> + items(Destination.entries) { destination -> NavigationItem(destination) { navigate( destination @@ -82,9 +84,14 @@ fun NavigationItems(navigate: (Destination) -> Unit) { @Composable fun NavigationItem(destination: Destination, onClick: () -> Unit) { - Button( - onClick = { onClick() } + Box( + modifier = Modifier + .heightIn(min = 48.dp) + .clickable { + onClick() + } ) { Text(destination.title) + Divider(modifier = Modifier.align(Alignment.BottomCenter)) } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt index a4a405b3..b5a7d037 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt @@ -435,6 +435,7 @@ private fun LazyItemAnimations() { } // [START android_compose_layouts_lazy_column_item_animation] LazyColumn { + // It is important to provide a key to each item to ensure animateItem() works as expected. items(books, key = { it.id }) { Row(Modifier.animateItem()) { // ... From 6846c246a7d31acb0c9780e6dd47b150a3e10625 Mon Sep 17 00:00:00 2001 From: Ben Trengrove Date: Wed, 24 Jul 2024 15:03:00 +1200 Subject: [PATCH 27/49] Add clickable text snippets (#297) --- .../compose/snippets/text/TextSnippets.kt | 48 +++++++++++++++++++ gradle/libs.versions.toml | 2 +- 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt index bfb8b837..6a704caa 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt @@ -42,11 +42,14 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color.Companion.Cyan import androidx.compose.ui.graphics.Shadow +import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.LinkAnnotation import androidx.compose.ui.text.ParagraphStyle import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextLinkStyles import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.Font @@ -58,6 +61,7 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.style.LineHeightStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.text.withLink import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em @@ -577,6 +581,50 @@ private object TextEffectiveStateManagement2 { // [END android_compose_text_state_management] } +// [START android_compose_text_link_1] +@Composable +fun AnnotatedStringWithLinkSample() { + // Display a link in the text + Text( + buildAnnotatedString { + append("Build better apps faster with ") + withLink( + LinkAnnotation.Url( + "https://developer.android.com/jetpack/compose", + TextLinkStyles(style = SpanStyle(color = Color.Blue)) + ) + ) { + append("Jetpack Compose") + } + } + ) +} +// [END android_compose_text_link_1] + +// [START android_compose_text_link_2] +@Composable +fun AnnotatedStringWithListenerSample() { + // Display a link in the text and log metrics whenever user clicks on it. In that case we handle + // the link using openUri method of the LocalUriHandler + val uriHandler = LocalUriHandler.current + Text( + buildAnnotatedString { + append("Build better apps faster with ") + val link = + LinkAnnotation.Url( + "https://developer.android.com/jetpack/compose", + TextLinkStyles(SpanStyle(color = Color.Blue)) + ) { + val url = (it as LinkAnnotation.Url).url + // log some metrics + uriHandler.openUri(url) + } + withLink(link) { append("Jetpack Compose") } + } + ) +} +// [END android_compose_text_link_2] + private val firaSansFamily = FontFamily() val LightBlue = Color(0xFF0066FF) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3645c7cf..eb505168 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -73,7 +73,7 @@ androidx-compose-material3-adaptive-navigation = { module = "androidx.compose.ma androidx-compose-material3-adaptive-navigation-suite = { module = "androidx.compose.material3:material3-adaptive-navigation-suite", version.ref = "material3-adaptive-navigation-suite" } androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } -androidx-compose-ui = { module = "androidx.compose.ui:ui" } +androidx-compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose-latest" } androidx-compose-ui-googlefonts = { module = "androidx.compose.ui:ui-text-google-fonts" } androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.0-beta01" androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" } From 536e487893db1a7ed515377e852971429d34d21e Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Mon, 29 Jul 2024 10:59:44 +0100 Subject: [PATCH 28/49] =?UTF-8?q?=F0=9F=A4=96=20Sync=20main=20to=20latest?= =?UTF-8?q?=20(#266)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update CenterAlignedTopAppBar snippet to use centerAlignedTopAppBarColors * Time pickers comments (#295) * Adding advanced examples * Apply Spotless * Adding advanced examples * Rename AdvancedTimePickerExample * Rename AdvancedTimePickerExample --------- Co-authored-by: jakeroseman * Adds preview and breakpoint --------- Co-authored-by: Jamal Eason Co-authored-by: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Co-authored-by: jakeroseman Co-authored-by: Kat Kuan <843428+kkuan2011@users.noreply.github.com> Co-authored-by: Chiara Chiappini Co-authored-by: Chiara Chiappini From 0442b197546be60722774734e0b91d0960d0fc9d Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:39:49 +0100 Subject: [PATCH 29/49] =?UTF-8?q?=F0=9F=A4=96=20Sync=20main=20to=20latest?= =?UTF-8?q?=20(#301)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update CenterAlignedTopAppBar snippet to use centerAlignedTopAppBarColors * Time pickers comments (#295) * Adding advanced examples * Apply Spotless * Adding advanced examples * Rename AdvancedTimePickerExample * Rename AdvancedTimePickerExample --------- Co-authored-by: jakeroseman * Adds preview and breakpoint * Updating DeviceConfigurationOverride snippet comment (#232) * Timepickers redux (#296) * Reworking the time picker examples to be more friendly to copy-pasting * Apply Spotless * Updating the time picker examples to be more copy-pastable * Change in-use tag name back to the current form. * Apply Spotless * Renaming region tags * Renaming region tags --------- Co-authored-by: jakeroseman * Date pickers (#302) * Reworking the time picker examples to be more friendly to copy-pasting * Apply Spotless * Updating the time picker examples to be more copy-pastable * Change in-use tag name back to the current form. * Apply Spotless * Renaming region tags * Renaming region tags * Adding date picker snippets * Apply Spotless * fixing region tags * Adding additional range tags --------- Co-authored-by: jakeroseman * Break long instruction in 2 lines to optimize for DAC * Prevent redrawing twice and running timer when compositions =0 (#304) --------- Co-authored-by: Jamal Eason Co-authored-by: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Co-authored-by: jakeroseman Co-authored-by: Kat Kuan <843428+kkuan2011@users.noreply.github.com> Co-authored-by: Chiara Chiappini Co-authored-by: Chiara Chiappini Co-authored-by: Alex Vanyo Co-authored-by: Tomáš Mlynarič From a6cfa3946293840885faea6866738c34ccf1ea0d Mon Sep 17 00:00:00 2001 From: Don Turner Date: Tue, 20 Aug 2024 01:31:12 +0100 Subject: [PATCH 30/49] Snippet updates for type safe navigation APIs --- build.gradle.kts | 1 + compose/snippets/build.gradle.kts | 3 +- .../MigrationCommonScenariosSnippets.kt | 30 +++++++++++++------ gradle/libs.versions.toml | 7 +++-- 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 547023ae..fe9431c4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ plugins { alias(libs.plugins.kapt) apply false alias(libs.plugins.hilt) apply false alias(libs.plugins.kotlin.parcelize) apply false + alias(libs.plugins.kotlin.serialization) apply false } apply("${project.rootDir}/buildscripts/toml-updater-config.gradle") diff --git a/compose/snippets/build.gradle.kts b/compose/snippets/build.gradle.kts index 1902a318..a43a6f22 100644 --- a/compose/snippets/build.gradle.kts +++ b/compose/snippets/build.gradle.kts @@ -20,6 +20,7 @@ plugins { alias(libs.plugins.kapt) alias(libs.plugins.hilt) alias(libs.plugins.kotlin.parcelize) + alias(libs.plugins.kotlin.serialization) } android { @@ -83,7 +84,6 @@ dependencies { implementation(composeBom) androidTestImplementation(composeBom) - implementation(libs.androidx.compose.foundation) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.util) implementation(libs.androidx.compose.ui.graphics) @@ -139,6 +139,7 @@ dependencies { implementation(libs.androidx.navigation.compose) implementation(libs.hilt.android) implementation(libs.androidx.hilt.navigation.compose) + implementation(libs.kotlinx.serialization.json) implementation(libs.androidx.recyclerview) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt index 6b146981..07303c37 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt @@ -64,10 +64,12 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController +import androidx.navigation.toRoute import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import kotlinx.coroutines.launch +import kotlinx.serialization.Serializable class RVActivity : ComponentActivity() { private lateinit var composeView: ComposeView @@ -141,6 +143,13 @@ class SampleActivity : ComponentActivity() { } // [END android_compose_interop_migration_common_scenarios_navigation_step_2] +// [START android_compose_interop_migration_common_scenarios_navigation_step_2_1] +@Serializable data object First +@Serializable data class Second(val id: String) +@Serializable data object Third + +// [END android_compose_interop_migration_common_scenarios_navigation_step_2_1] + private object MigrationCommonScenariosNavigationStep3 { // [START android_compose_interop_migration_common_scenarios_navigation_step_3] @Composable @@ -164,7 +173,7 @@ private object MigrationCommonScenariosNavigationStep4 { fun SampleNavHost( navController: NavHostController ) { - NavHost(navController = navController, startDestination = "first") { + NavHost(navController = navController, startDestination = First) { // ... } } @@ -191,11 +200,11 @@ class FirstFragment : Fragment() { fun SampleNavHost( navController: NavHostController ) { - NavHost(navController = navController, startDestination = "first") { - composable("first") { + NavHost(navController = navController, startDestination = First) { + composable { FirstScreen(/* ... */) // EXTRACT TO HERE } - composable("second") { + composable { SecondScreen(/* ... */) } // ... @@ -220,20 +229,22 @@ private object MigrationCommonScenariosNavigationStep7 { fun SampleNavHost( navController: NavHostController ) { - NavHost(navController = navController, startDestination = "first") { - composable("first") { + NavHost(navController = navController, startDestination = First) { + composable { FirstScreen( onButtonClick = { // findNavController().navigate(firstScreenToSecondScreenAction) - navController.navigate("second_screen_route") + navController.navigate(Second(id = "ABC")) } ) } - composable("second") { + composable { backStackEntry -> + val secondRoute = backStackEntry.toRoute() SecondScreen( + id = secondRoute.id, onIconClick = { // findNavController().navigate(secondScreenToThirdScreenAction) - navController.navigate("third_screen_route") + navController.navigate(Third) } ) } @@ -410,6 +421,7 @@ fun SampleApp() { @Composable fun SecondScreen( + id: String = "", onIconClick: () -> Unit = {}, ) { } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index eb505168..61dce231 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ androidx-fragment-ktx = "1.6.2" androidx-glance-appwidget = "1.0.0" androidx-lifecycle-compose = "2.8.0-rc01" androidx-lifecycle-runtime-compose = "2.8.0-rc01" -androidx-navigation = "2.7.7" +androidx-navigation = "2.8.0-beta07" androidx-paging = "3.2.1" androidx-test = "1.5.0" androidx-test-espresso = "3.5.1" @@ -22,7 +22,7 @@ androidx-window = "1.3.0-beta02" androidxHiltNavigationCompose = "1.2.0" coil = "2.5.0" # @keep -compileSdk = "34" +compileSdk = "35" compose-compiler = "1.5.4" coreSplashscreen = "1.0.1" compose-latest = "1.7.0-beta05" @@ -34,6 +34,7 @@ horologist = "0.5.24" junit = "4.13.2" # @pin Update in conjuction with Compose Compiler kotlin = "1.9.20" +kotlinxSerializationJson = "1.6.3" ksp = "1.8.0-1.0.9" maps-compose = "4.3.2" material = "1.4.0-beta01" @@ -120,6 +121,7 @@ junit = { module = "junit:junit", version.ref = "junit" } kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } +kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } androidx-media3-common = { group = "androidx.media3", name = "media3-common", version.ref = "media3" } androidx-media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" } play-services-wearable = { module = "com.google.android.gms:play-services-wearable", version.ref = "playServicesWearable" } @@ -134,4 +136,5 @@ hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } version-catalog-update = { id = "nl.littlerobots.version-catalog-update", version.ref = "version-catalog-update" } From 750acf30e1a2c96fcaaadaee453f7e192d6e047f Mon Sep 17 00:00:00 2001 From: Don Turner Date: Tue, 20 Aug 2024 09:02:53 +0100 Subject: [PATCH 31/49] Downgrade compileSdk to 34 --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 61dce231..530c1296 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ androidx-fragment-ktx = "1.6.2" androidx-glance-appwidget = "1.0.0" androidx-lifecycle-compose = "2.8.0-rc01" androidx-lifecycle-runtime-compose = "2.8.0-rc01" -androidx-navigation = "2.8.0-beta07" +androidx-navigation = "2.8.0-rc01" androidx-paging = "3.2.1" androidx-test = "1.5.0" androidx-test-espresso = "3.5.1" @@ -22,7 +22,7 @@ androidx-window = "1.3.0-beta02" androidxHiltNavigationCompose = "1.2.0" coil = "2.5.0" # @keep -compileSdk = "35" +compileSdk = "34" compose-compiler = "1.5.4" coreSplashscreen = "1.0.1" compose-latest = "1.7.0-beta05" From c5d4717af947605ad37cb5794943437bcea19bc0 Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:41:55 +0100 Subject: [PATCH 32/49] =?UTF-8?q?=F0=9F=A4=96=20Sync=20main=20to=20latest?= =?UTF-8?q?=20(#313)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update CenterAlignedTopAppBar snippet to use centerAlignedTopAppBarColors * Time pickers comments (#295) * Adding advanced examples * Apply Spotless * Adding advanced examples * Rename AdvancedTimePickerExample * Rename AdvancedTimePickerExample --------- Co-authored-by: jakeroseman * Adds preview and breakpoint * Updating DeviceConfigurationOverride snippet comment (#232) * Timepickers redux (#296) * Reworking the time picker examples to be more friendly to copy-pasting * Apply Spotless * Updating the time picker examples to be more copy-pastable * Change in-use tag name back to the current form. * Apply Spotless * Renaming region tags * Renaming region tags --------- Co-authored-by: jakeroseman * Date pickers (#302) * Reworking the time picker examples to be more friendly to copy-pasting * Apply Spotless * Updating the time picker examples to be more copy-pastable * Change in-use tag name back to the current form. * Apply Spotless * Renaming region tags * Renaming region tags * Adding date picker snippets * Apply Spotless * fixing region tags * Adding additional range tags --------- Co-authored-by: jakeroseman * Break long instruction in 2 lines to optimize for DAC * Prevent redrawing twice and running timer when compositions =0 (#304) * Allow Spotless to make commits on a user's behalf (#312) See https://github.com/diffplug/spotless/issues/1242 --------- Co-authored-by: Jamal Eason Co-authored-by: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Co-authored-by: jakeroseman Co-authored-by: Kat Kuan <843428+kkuan2011@users.noreply.github.com> Co-authored-by: Chiara Chiappini Co-authored-by: Chiara Chiappini Co-authored-by: Alex Vanyo Co-authored-by: Tomáš Mlynarič Co-authored-by: Jolanda Verhoef From 74aaf255a59f35a46f954ba702e34e266b654c66 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 28 Aug 2024 13:04:15 +0100 Subject: [PATCH 33/49] Latest beta06 updates for Compose (#300) * Do latest 1.7.0-beta06 version updates * Apply Spotless * Code cleanup * Apply Spotless * Fix broken test * Fix tests --------- Co-authored-by: riggaroo --- .../bluetoothle/kotlin/MainActivity.kt | 1 - build.gradle.kts | 1 + compose/recomposehighlighter/build.gradle.kts | 4 +- compose/snippets/build.gradle.kts | 5 +-- .../compose/snippets/SnippetsActivity.kt | 2 +- .../SampleListDetailPaneScaffold.kt | 2 - .../SampleNavigationSuiteScaffold.kt | 3 -- .../animations/AnimationQuickGuide.kt | 2 - .../snippets/animations/AnimationSnippets.kt | 19 ++++----- .../SharedElementsWithNavigationSnippets.kt | 6 +-- .../architecture/ArchitectureSnippets.kt | 17 ++++---- .../compose/snippets/components/Card.kt | 4 +- .../compose/snippets/components/Chip.kt | 3 -- .../compose/snippets/components/Dialog.kt | 2 - .../designsystems/AppCompatThemeSnippets.kt | 38 ----------------- .../designsystems/CustomDesignSystem.kt | 1 - .../designsystems/Material2Snippets.kt | 6 +-- .../designsystems/Material3Snippets.kt | 3 -- .../designsystems/MdcThemeSnippets.kt | 38 ----------------- .../snippets/graphics/BrushExampleSnippets.kt | 2 - .../snippets/graphics/CanvasSnippets.kt | 6 --- .../snippets/graphics/ShapesSnippets.kt | 19 +++++---- .../MigrationCommonScenariosSnippets.kt | 15 ++++--- .../compose/snippets/kotlin/KotlinSnippets.kt | 2 - .../compose/snippets/landing/LandingScreen.kt | 4 +- .../layouts/AdaptiveLayoutSnippets.kt | 2 - .../snippets/layouts/CommonLayoutExamples.kt | 3 -- .../snippets/layouts/InsetsSnippets.kt | 3 -- .../layouts/MaterialLayoutSnippets.kt | 4 +- .../compose/snippets/layouts/PagerSnippets.kt | 8 ---- .../snippets/lists/LazyListSnippets.kt | 6 --- .../snippets/resources/ResourcesSnippets.kt | 2 - .../sideeffects/SideEffectsSnippets.kt | 2 +- .../snippets/state/StateOverviewSnippets.kt | 4 +- .../touchinput/focus/FocusSnippets.kt | 6 --- .../touchinput/gestures/GesturesSnippets.kt | 2 - .../touchinput/pointerinput/TapAndPress.kt | 2 - gradle/libs.versions.toml | 42 +++++++++---------- .../testing/DispatchersOutsideTests.kt | 23 ++++++---- .../testing/HomeViewModelTestUsingRule.kt | 1 - .../coroutines/testing/UserStateTest.kt | 3 +- shared/src/main/res/layout/activity_main.xml | 31 -------------- wear/build.gradle.kts | 5 +-- 43 files changed, 92 insertions(+), 262 deletions(-) delete mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/designsystems/AppCompatThemeSnippets.kt delete mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/designsystems/MdcThemeSnippets.kt delete mode 100644 shared/src/main/res/layout/activity_main.xml diff --git a/bluetoothle/src/main/java/com/sample/android/bluetoothle/kotlin/MainActivity.kt b/bluetoothle/src/main/java/com/sample/android/bluetoothle/kotlin/MainActivity.kt index c79aae13..5555c720 100644 --- a/bluetoothle/src/main/java/com/sample/android/bluetoothle/kotlin/MainActivity.kt +++ b/bluetoothle/src/main/java/com/sample/android/bluetoothle/kotlin/MainActivity.kt @@ -6,7 +6,6 @@ import android.content.Context import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import com.sample.android.bluetoothle.java.MainActivity class MainActivity : AppCompatActivity() { diff --git a/build.gradle.kts b/build.gradle.kts index fe9431c4..22d9028a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ plugins { alias(libs.plugins.kapt) apply false alias(libs.plugins.hilt) apply false alias(libs.plugins.kotlin.parcelize) apply false + alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.kotlin.serialization) apply false } diff --git a/compose/recomposehighlighter/build.gradle.kts b/compose/recomposehighlighter/build.gradle.kts index 1bbdf6ea..fe8b79af 100644 --- a/compose/recomposehighlighter/build.gradle.kts +++ b/compose/recomposehighlighter/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) + alias(libs.plugins.compose.compiler) } android { compileSdk = libs.versions.compileSdk.get().toInt() @@ -40,9 +41,6 @@ android { viewBinding = true } - composeOptions { - kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get() - } } dependencies { val composeBom = platform(libs.androidx.compose.bom) diff --git a/compose/snippets/build.gradle.kts b/compose/snippets/build.gradle.kts index a43a6f22..5d2b661f 100644 --- a/compose/snippets/build.gradle.kts +++ b/compose/snippets/build.gradle.kts @@ -20,6 +20,7 @@ plugins { alias(libs.plugins.kapt) alias(libs.plugins.hilt) alias(libs.plugins.kotlin.parcelize) + alias(libs.plugins.compose.compiler) alias(libs.plugins.kotlin.serialization) } @@ -63,10 +64,6 @@ android { viewBinding = true } - composeOptions { - kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get() - } - packaging.resources { // Multiple dependency bring these files in. Exclude them to enable // our test APK to build (has no effect on our AARs) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt index 918de992..de8150f0 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/SnippetsActivity.kt @@ -32,6 +32,7 @@ import com.example.compose.snippets.animations.sharedelement.PlaceholderSizeAnim import com.example.compose.snippets.components.AppBarExamples import com.example.compose.snippets.components.BadgeExamples import com.example.compose.snippets.components.ButtonExamples +import com.example.compose.snippets.components.CardExamples import com.example.compose.snippets.components.CheckboxExamples import com.example.compose.snippets.components.ChipExamples import com.example.compose.snippets.components.ComponentsScreen @@ -52,7 +53,6 @@ import com.example.compose.snippets.landing.LandingScreen import com.example.compose.snippets.navigation.Destination import com.example.compose.snippets.navigation.TopComponentsDestination import com.example.compose.snippets.ui.theme.SnippetsTheme -import com.example.topcomponents.CardExamples class SnippetsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleListDetailPaneScaffold.kt b/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleListDetailPaneScaffold.kt index 68c14dfd..b79f7ee7 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleListDetailPaneScaffold.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleListDetailPaneScaffold.kt @@ -35,8 +35,6 @@ import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffold import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffoldRole import androidx.compose.material3.adaptive.navigation.rememberListDetailPaneScaffoldNavigator import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleNavigationSuiteScaffold.kt b/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleNavigationSuiteScaffold.kt index f5c461f6..76006e68 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleNavigationSuiteScaffold.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/adaptivelayouts/SampleNavigationSuiteScaffold.kt @@ -14,8 +14,6 @@ * limitations under the License. */ -@file:OptIn(ExperimentalMaterial3AdaptiveNavigationSuiteApi::class) - package com.example.compose.snippets.adaptivelayouts import androidx.annotation.StringRes @@ -29,7 +27,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.NavigationBarItemDefaults import androidx.compose.material3.Text import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo -import androidx.compose.material3.adaptive.navigationsuite.ExperimentalMaterial3AdaptiveNavigationSuiteApi import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteDefaults import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffold import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldDefaults diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt index 297f579a..7c649357 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationQuickGuide.kt @@ -87,7 +87,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawBehind @@ -720,7 +719,6 @@ private fun LoadingScreen() { } } -@OptIn(ExperimentalComposeUiApi::class) @Preview @Composable fun AnimationLayout() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt index 80c53540..08c69981 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt @@ -50,6 +50,7 @@ import androidx.compose.animation.core.createChildTransition import androidx.compose.animation.core.infiniteRepeatable import androidx.compose.animation.core.keyframes import androidx.compose.animation.core.rememberInfiniteTransition +import androidx.compose.animation.core.rememberTransition import androidx.compose.animation.core.repeatable import androidx.compose.animation.core.snap import androidx.compose.animation.core.spring @@ -65,7 +66,7 @@ import androidx.compose.animation.graphics.vector.AnimatedImageVector import androidx.compose.animation.shrinkVertically import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically -import androidx.compose.animation.with +import androidx.compose.animation.togetherWith import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.Image import androidx.compose.foundation.background @@ -190,7 +191,6 @@ private fun AnimatedVisibilityMutable() { // [END android_compose_animations_animated_visibility_mutable] } -@OptIn(ExperimentalAnimationApi::class) @Composable @Preview private fun AnimatedVisibilityAnimateEnterExitChildren() { @@ -222,7 +222,6 @@ private fun AnimatedVisibilityAnimateEnterExitChildren() { // [END android_compose_animations_animated_visibility_animate_enter_exit_children] } -@OptIn(ExperimentalAnimationApi::class) @Preview @Composable private fun AnimatedVisibilityTransition() { @@ -259,7 +258,6 @@ private fun AnimateAsStateSimple() { // [END android_compose_animations_animate_as_state] } -@OptIn(ExperimentalAnimationApi::class) @Preview @Composable private fun AnimatedContentSimple() { @@ -277,7 +275,6 @@ private fun AnimatedContentSimple() { // [END android_compose_animations_animated_content_simple] } -@OptIn(ExperimentalAnimationApi::class) @Composable private fun AnimatedContentTransitionSpec(count: Int) { // [START android_compose_animations_animated_content_transition_spec] @@ -288,12 +285,12 @@ private fun AnimatedContentTransitionSpec(count: Int) { if (targetState > initialState) { // If the target number is larger, it slides up and fades in // while the initial (smaller) number slides up and fades out. - slideInVertically { height -> height } + fadeIn() with + slideInVertically { height -> height } + fadeIn() togetherWith slideOutVertically { height -> -height } + fadeOut() } else { // If the target number is smaller, it slides down and fades in // while the initial number slides down and fades out. - slideInVertically { height -> -height } + fadeIn() with + slideInVertically { height -> -height } + fadeIn() togetherWith slideOutVertically { height -> height } + fadeOut() }.using( // Disable clipping since the faded slide-in/out should @@ -318,7 +315,7 @@ private fun AnimatedContentSizeTransform() { AnimatedContent( targetState = expanded, transitionSpec = { - fadeIn(animationSpec = tween(150, 150)) with + fadeIn(animationSpec = tween(150, 150)) togetherWith fadeOut(animationSpec = tween(150)) using SizeTransform { initialSize, targetSize -> if (targetState) { @@ -431,7 +428,7 @@ private object UpdateTransitionEnumState { // Start in collapsed state and immediately animate to expanded var currentState = remember { MutableTransitionState(BoxState.Collapsed) } currentState.targetState = BoxState.Expanded - val transition = updateTransition(currentState, label = "box state") + val transition = rememberTransition(currentState, label = "box state") // …… // [END android_compose_animations_transitions_state] } @@ -663,8 +660,8 @@ private fun AnimationSpecKeyframe() { targetValue = 1f, animationSpec = keyframes { durationMillis = 375 - 0.0f at 0 with LinearOutSlowInEasing // for 0-15 ms - 0.2f at 15 with FastOutLinearInEasing // for 15-75 ms + 0.0f at 0 using LinearOutSlowInEasing // for 0-15 ms + 0.2f at 15 using FastOutLinearInEasing // for 15-75 ms 0.4f at 75 // ms 0.4f at 225 // ms } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt index 42662f9b..da1d178f 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/SharedElementsWithNavigationSnippets.kt @@ -118,7 +118,7 @@ private fun DetailsScreen( painterResource(id = snack.image), contentDescription = snack.description, contentScale = ContentScale.Crop, - modifier = Modifier.Companion + modifier = Modifier .sharedElement( sharedTransitionScope.rememberSharedContentState(key = "image-$id"), animatedVisibilityScope = animatedContentScope @@ -129,7 +129,7 @@ private fun DetailsScreen( Text( snack.name, fontSize = 18.sp, modifier = - Modifier.Companion + Modifier .sharedElement( sharedTransitionScope.rememberSharedContentState(key = "text-$id"), animatedVisibilityScope = animatedContentScope @@ -164,7 +164,7 @@ private fun HomeScreen( painterResource(id = item.image), contentDescription = item.description, contentScale = ContentScale.Crop, - modifier = Modifier.Companion + modifier = Modifier .sharedElement( sharedTransitionScope.rememberSharedContentState(key = "image-$index"), animatedVisibilityScope = animatedContentScope diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/architecture/ArchitectureSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/architecture/ArchitectureSnippets.kt index b22421ff..3f9f41c3 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/architecture/ArchitectureSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/architecture/ArchitectureSnippets.kt @@ -18,13 +18,14 @@ package com.example.compose.snippets.architecture import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.OutlinedTextField -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.getValue @@ -70,7 +71,7 @@ private object ArchitectureSnippets2 { private object ArchitectureSnippets3 { val localizedString = "" - + @OptIn(ExperimentalMaterial3Api::class) // [START android_compose_architecture_architecture3] @Composable fun MyAppTopAppBar(topAppBarText: String, onBackPressed: () -> Unit) { @@ -87,7 +88,7 @@ private object ArchitectureSnippets3 { navigationIcon = { IconButton(onClick = onBackPressed) { Icon( - Icons.Filled.ArrowBack, + Icons.AutoMirrored.Filled.ArrowBack, contentDescription = localizedString ) } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt index 1259685e..1b755819 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.example.topcomponents +package com.example.compose.snippets.components import android.util.Log import androidx.compose.foundation.BorderStroke @@ -27,7 +27,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.ElevatedCard -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedCard import androidx.compose.material3.Text @@ -55,7 +54,6 @@ fun CardExamples() { } } -@OptIn(ExperimentalMaterial3Api::class) // [START android_compose_components_customcard] @Composable fun CustomCardExample(event: () -> Unit) { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Chip.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Chip.kt index 0737ddc8..36533db7 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/Chip.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Chip.kt @@ -29,7 +29,6 @@ import androidx.compose.material.icons.filled.Person import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.AssistChip import androidx.compose.material3.AssistChipDefaults -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilterChip import androidx.compose.material3.FilterChipDefaults import androidx.compose.material3.Icon @@ -86,7 +85,6 @@ fun AssistChipExample() { } // [END android_compose_components_assistchip] -@OptIn(ExperimentalMaterial3Api::class) @Preview // [START android_compose_components_filterchip] @Composable @@ -116,7 +114,6 @@ fun FilterChipExample() { // You could set this up similarly to the filter chip above and have it toggleable, but this is // an example of a chip that can dismiss with a click. -@OptIn(ExperimentalMaterial3Api::class) // [START android_compose_components_inputchip] @Composable fun InputChipExample( diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Dialog.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Dialog.kt index b2ab9b72..beb0356b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/Dialog.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Dialog.kt @@ -32,7 +32,6 @@ import androidx.compose.material.icons.filled.Info import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.Card -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface @@ -220,7 +219,6 @@ fun DialogWithImage( // [END android_compose_components_dialogwithimage] // [START android_compose_components_alertdialog] -@OptIn(ExperimentalMaterial3Api::class) @Composable fun AlertDialogExample( onDismissRequest: () -> Unit, diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/AppCompatThemeSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/AppCompatThemeSnippets.kt deleted file mode 100644 index 56cf8e37..00000000 --- a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/AppCompatThemeSnippets.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.compose.snippets.designsystems - -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity -// [START android_compose_designsystems_interop_appcompattheme] -import com.google.accompanist.themeadapter.appcompat.AppCompatTheme - -class AppCompatThemeExample : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - // Colors and typography have been read from the - // View-based theme used in this Activity - // Shapes are the default for M2 as this didn't exist in M1 - AppCompatTheme { - // Your app-level composable here - } - } - } -} -// [END android_compose_designsystems_interop_appcompattheme] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt index c9489e45..f2ed138e 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt @@ -38,7 +38,6 @@ import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.example.compose.snippets.designsystems.FullyCustomDesignSystem.CustomTheme.elevation /* * Copyright 2022 The Android Open Source Project diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt index 540af22e..e838a1b7 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material2Snippets.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -@file:Suppress("unused", "DEPRECATION_ERROR") +@file:Suppress("unused", "DEPRECATION_ERROR", "UsingMaterialAndMaterial3Libraries") package com.example.compose.snippets.designsystems @@ -38,7 +38,7 @@ import androidx.compose.material.Typography import androidx.compose.material.contentColorFor import androidx.compose.material.darkColors import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.lightColors import androidx.compose.material.primarySurface import androidx.compose.material.ripple.LocalRippleTheme @@ -158,7 +158,7 @@ fun ColorUsage() { CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.disabled) { Icon( // [START_EXCLUDE] - Icons.Filled.ArrowBack, + Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null // [END_EXCLUDE] ) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material3Snippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material3Snippets.kt index 18f1ceb9..5d5d72d3 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material3Snippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/Material3Snippets.kt @@ -30,7 +30,6 @@ import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExtendedFloatingActionButton import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.Icon @@ -53,7 +52,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape @@ -72,7 +70,6 @@ import com.example.compose.snippets.ui.theme.Typography private object Material3Snippets { // [START android_compose_material3_experimental_annotation] // import androidx.compose.material3.ExperimentalMaterial3Api - @OptIn(ExperimentalMaterial3Api::class) @Composable fun AppComposable() { // M3 composables diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/MdcThemeSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/MdcThemeSnippets.kt deleted file mode 100644 index 514b9af0..00000000 --- a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/MdcThemeSnippets.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.compose.snippets.designsystems - -import android.os.Bundle -import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity -// [START android_compose_designsystems_interop_mdctheme] -import com.google.accompanist.themeadapter.material.MdcTheme - -class MdcThemeExample : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - // Use MdcTheme instead of M2 MaterialTheme - // Colors, typography, and shapes have been read from the - // View-based theme used in this Activity - setContent { - MdcTheme { - // Your app-level composable here - } - } - } -} -// [END android_compose_designsystems_interop_mdctheme] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/BrushExampleSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/BrushExampleSnippets.kt index 0aaf13b9..23a6a58e 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/BrushExampleSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/BrushExampleSnippets.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.graphics.TileMode import androidx.compose.ui.graphics.drawscope.inset import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.imageResource -import androidx.compose.ui.text.ExperimentalTextApi import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview @@ -244,7 +243,6 @@ fun GraphicsBrushSizeRecreationExample() { // [END android_compose_graphics_brush_recreation] } -@OptIn(ExperimentalTextApi::class) @Preview @Composable fun GraphicsImageBrush() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/CanvasSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/CanvasSnippets.kt index 74e1a4d3..4b53db6e 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/CanvasSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/CanvasSnippets.kt @@ -16,7 +16,6 @@ package com.example.compose.snippets.graphics -import android.graphics.Canvas import android.graphics.drawable.ShapeDrawable import android.graphics.drawable.shapes.OvalShape import androidx.compose.animation.core.Animatable @@ -48,7 +47,6 @@ import androidx.compose.ui.graphics.drawscope.withTransform import androidx.compose.ui.graphics.nativeCanvas import androidx.compose.ui.res.imageResource import androidx.compose.ui.text.AnnotatedString -import androidx.compose.ui.text.ExperimentalTextApi import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.drawText import androidx.compose.ui.text.rememberTextMeasurer @@ -59,7 +57,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.toSize import com.example.compose.snippets.R -import java.util.Collections.rotate /* * Copyright 2022 The Android Open Source Project @@ -192,7 +189,6 @@ fun CanvasMultipleTransformations() { // [END android_compose_graphics_canvas_multiple_transforms] } -@OptIn(ExperimentalTextApi::class) @Preview @Composable fun CanvasDrawText() { @@ -238,7 +234,6 @@ fun CanvasDrawPath() { // [END android_compose_graphics_canvas_draw_path] } -@OptIn(ExperimentalTextApi::class) @Preview @Composable fun CanvasMeasureText() { @@ -268,7 +263,6 @@ fun CanvasMeasureText() { // [END android_compose_graphics_canvas_draw_text_measure] } -@OptIn(ExperimentalTextApi::class) @Preview @Composable fun CanvasMeasureTextOverflow() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt index de0a5ee9..efe9bfa1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt @@ -38,6 +38,7 @@ import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.State import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -280,7 +281,7 @@ fun List.toPath(path: Path = Path(), scale: Float = 1f): Path { // [START android_compose_morph_clip_shape] class MorphPolygonShape( private val morph: Morph, - private val percentage: Float + private val percentage: State ) : Shape { private val matrix = Matrix() @@ -294,7 +295,7 @@ class MorphPolygonShape( matrix.scale(size.width / 2f, size.height / 2f) matrix.translate(1f, 1f) - val path = morph.toComposePath(progress = percentage) + val path = morph.toComposePath(progress = percentage.value) path.transform(matrix) return Outline.Generic(path) } @@ -333,7 +334,7 @@ private fun MorphOnClick() { modifier = Modifier .size(200.dp) .padding(8.dp) - .clip(MorphPolygonShape(morph, animatedProgress.value)) + .clip(MorphPolygonShape(morph, animatedProgress)) .background(Color(0xFF80DEEA)) .size(200.dp) .clickable(interactionSource = interactionSource, indication = null) { @@ -433,8 +434,8 @@ fun ApplyPolygonAsClipImage() { // [START android_compose_shapes_custom_rotating_morph_shape] class CustomRotatingMorphShape( private val morph: Morph, - private val percentage: Float, - private val rotation: Float + private val percentage: State, + private val rotation: State ) : Shape { private val matrix = Matrix() @@ -447,9 +448,9 @@ class CustomRotatingMorphShape( // By default this stretches the path to the size of the container, if you don't want stretching, use the same size.width for both x and y. matrix.scale(size.width / 2f, size.height / 2f) matrix.translate(1f, 1f) - matrix.rotateZ(rotation) + matrix.rotateZ(rotation.value) - val path = morph.toComposePath(progress = percentage) + val path = morph.toComposePath(progress = percentage.value) path.transform(matrix) return Outline.Generic(path) @@ -505,8 +506,8 @@ private fun RotatingScallopedProfilePic() { .clip( CustomRotatingMorphShape( morph, - animatedProgress.value, - animatedRotation.value + animatedProgress, + animatedRotation ) ) .size(200.dp) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt index 07303c37..59ac0129 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/interop/MigrationCommonScenariosSnippets.kt @@ -36,10 +36,10 @@ import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Image -import androidx.compose.material3.Divider import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExtendedFloatingActionButton import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.ModalDrawerSheet import androidx.compose.material3.ModalNavigationDrawer @@ -106,13 +106,13 @@ class RVActivity : ComponentActivity() { } @Composable - fun commonUseCase2(data: List) { + fun CommonUseCase2(data: List) { // [START android_compose_interop_migration_common_scenarios_recyclerview_common_use_case_2] LazyColumn(Modifier.fillMaxSize()) { itemsIndexed(data) { index, d -> ListItem(d) if (index != data.size - 1) { - Divider() + HorizontalDivider() } } } @@ -271,7 +271,6 @@ class CoordinatorLayoutActivity : ComponentActivity() { // [END android_compose_interop_migration_common_scenarios_coordinatorlayout_step2] } - @OptIn(ExperimentalFoundationApi::class) private fun step3() { // [START android_compose_interop_migration_common_scenarios_coordinatorlayout_step3] composeView.setContent { @@ -326,7 +325,7 @@ class CoordinatorLayoutActivity : ComponentActivity() { @OptIn(ExperimentalMaterial3Api::class) @Composable - private fun commonUseCaseToolbars() { + private fun CommonUseCaseToolbars() { // [START android_compose_interop_migration_common_scenarios_coordinatorlayout_toolbars] // 1. Create the TopAppBarScrollBehavior val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior() @@ -355,13 +354,13 @@ class CoordinatorLayoutActivity : ComponentActivity() { } @Composable - private fun commonUseCaseDrawers() { + private fun CommonUseCaseDrawers() { // [START android_compose_interop_migration_common_scenarios_coordinatorlayout_drawers] ModalNavigationDrawer( drawerContent = { ModalDrawerSheet { Text("Drawer title", modifier = Modifier.padding(16.dp)) - Divider() + HorizontalDivider() NavigationDrawerItem( label = { Text(text = "Drawer Item") }, selected = false, @@ -382,7 +381,7 @@ class CoordinatorLayoutActivity : ComponentActivity() { } @Composable - private fun commonUseCaseSnackbars() { + private fun CommonUseCaseSnackbars() { // [START android_compose_interop_migration_common_scenarios_coordinatorlayout_snackbars] val scope = rememberCoroutineScope() val snackbarHostState = remember { SnackbarHostState() } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt index 9edd96be..345ca664 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt @@ -43,7 +43,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.focus.FocusRequester.Companion.createRefs @@ -220,7 +219,6 @@ fun destructuring() { // [END android_compose_kotlin_destructuring] } -@OptIn(ExperimentalComposeUiApi::class) @Composable fun DestructuringCompose() { // [START android_compose_kotlin_destructuring_compose] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt b/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt index 0fcfbf07..79083bd3 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt @@ -26,7 +26,7 @@ import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material3.Divider +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -92,6 +92,6 @@ fun NavigationItem(destination: Destination, onClick: () -> Unit) { } ) { Text(destination.title) - Divider(modifier = Modifier.align(Alignment.BottomCenter)) + HorizontalDivider(modifier = Modifier.align(Alignment.BottomCenter)) } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt index c66253cd..7980eae0 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt @@ -21,7 +21,6 @@ package com.example.compose.snippets.layouts import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row -import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -48,7 +47,6 @@ import androidx.window.core.layout.WindowSizeClass * limitations under the License. */ // [START android_compose_adaptive_layouts_basic] -@OptIn(ExperimentalMaterial3AdaptiveApi::class) @Composable fun MyApp( windowSizeClass: WindowSizeClass = currentWindowAdaptiveInfo().windowSizeClass diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CommonLayoutExamples.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CommonLayoutExamples.kt index fd3b257b..98f5b03a 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CommonLayoutExamples.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CommonLayoutExamples.kt @@ -19,7 +19,6 @@ package com.example.compose.snippets.layouts import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.aspectRatio @@ -53,7 +52,6 @@ import kotlin.random.Random * See the License for the specific language governing permissions and * limitations under the License. */ -@OptIn(ExperimentalLayoutApi::class) @Composable @Preview fun Layout_Graph_Vertical() { @@ -80,7 +78,6 @@ fun Layout_Graph_Vertical() { // [END android_compose_layout_vertical_graph] } -@OptIn(ExperimentalLayoutApi::class) @Composable @Preview fun Layout_Graph_Horizontal() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/InsetsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/InsetsSnippets.kt index 2bbf276b..4599fd39 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/InsetsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/InsetsSnippets.kt @@ -25,7 +25,6 @@ import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets @@ -115,7 +114,6 @@ fun ConsumedFromSiblingsSnippet() { @Composable fun ConsumedFromPaddingSnippet() { // [START android_compose_insets_consumed_from_padding] - @OptIn(ExperimentalLayoutApi::class) Column(Modifier.padding(16.dp).consumeWindowInsets(PaddingValues(16.dp))) { // content Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.ime)) @@ -123,7 +121,6 @@ fun ConsumedFromPaddingSnippet() { // [END android_compose_insets_consumed_from_padding] } -@OptIn(ExperimentalLayoutApi::class) @Preview @Composable fun M3SupportScaffoldSnippet() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/MaterialLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/MaterialLayoutSnippets.kt index 9c7f9d4d..b027c6ea 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/MaterialLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/MaterialLayoutSnippets.kt @@ -28,12 +28,12 @@ import androidx.compose.material.icons.filled.Image import androidx.compose.material3.BottomAppBar import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.Divider import androidx.compose.material3.DrawerValue import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExtendedFloatingActionButton import androidx.compose.material3.FabPosition import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ModalBottomSheet @@ -291,7 +291,7 @@ fun DrawerDemo() { drawerContent = { ModalDrawerSheet { Text("Drawer title", modifier = Modifier.padding(16.dp)) - Divider() + HorizontalDivider() NavigationDrawerItem( label = { Text(text = "Drawer Item") }, selected = false, diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt index e2bf4c43..ec8e84cb 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/PagerSnippets.kt @@ -14,15 +14,11 @@ * limitations under the License. */ -@file:OptIn( - ExperimentalFoundationApi::class -) @file:Suppress("unused") package com.example.compose.snippets.layouts import android.util.Log -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -123,7 +119,6 @@ fun VerticalPagerSample() { // [END android_compose_layouts_pager_vertical_basic] } -@OptIn(ExperimentalFoundationApi::class) @Preview @Composable fun PagerScrollToItem() { @@ -214,7 +209,6 @@ fun PageChangesSample() { // [END android_compose_layouts_pager_notify_page_changes] } -@OptIn(ExperimentalFoundationApi::class) @Composable @Preview fun PagerWithTabsExample() { @@ -358,7 +352,6 @@ fun PagerWithTabs() { } // [END android_compose_layouts_pager_with_tabs] } -@OptIn(ExperimentalFoundationApi::class) @Preview @Composable fun PagerIndicator() { @@ -410,7 +403,6 @@ private val threePagesPerViewport = object : PageSize { } // [END android_compose_pager_custom_page_size] -@OptIn(ExperimentalFoundationApi::class) @Preview @Composable private fun CustomSnapDistance() { diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt index b5a7d037..c8864f12 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/lists/LazyListSnippets.kt @@ -19,7 +19,6 @@ package com.example.compose.snippets.lists import androidx.compose.animation.AnimatedVisibility -import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.animation.core.Spring import androidx.compose.animation.core.spring import androidx.compose.animation.core.tween @@ -265,7 +264,6 @@ private object ListsSnippetsReactingScrollPosition1 { private object ListsSnippetsReactingScrollPosition2 { // [START android_compose_layouts_lazy_column_scroll_to_top] - @OptIn(ExperimentalAnimationApi::class) @Composable fun MessageList(messages: List) { Box { @@ -427,7 +425,6 @@ private fun LazyColumnRememberSaveable() { // [END android_compose_layouts_lazy_column_any_key_saveable] } -@OptIn(ExperimentalFoundationApi::class) @Composable private fun LazyItemAnimations() { val books = remember { @@ -445,7 +442,6 @@ private fun LazyItemAnimations() { // [END android_compose_layouts_lazy_column_item_animation] } -@OptIn(ExperimentalFoundationApi::class) @Composable private fun LazyItemAnimationWithSpec() { val books = remember { @@ -635,7 +631,6 @@ private fun ContentTypeExample() { } @Preview -@OptIn(ExperimentalFoundationApi::class) @Composable fun LazyStaggeredGridSnippet() { // [START android_compose_layouts_lazy_staggered_grid_adaptive] @@ -658,7 +653,6 @@ fun LazyStaggeredGridSnippet() { // [END android_compose_layouts_lazy_staggered_grid_adaptive] } @Preview -@OptIn(ExperimentalFoundationApi::class) @Composable fun LazyStaggeredGridSnippetFixed() { // [START android_compose_layouts_lazy_staggered_grid_fixed] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt index b6b225a0..09c0bef1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt @@ -34,7 +34,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.dimensionResource @@ -47,7 +46,6 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import com.example.compose.snippets.R -@OptIn(ExperimentalComposeUiApi::class) @Composable fun Strings() { // [START android_compose_resources_strings] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/sideeffects/SideEffectsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/sideeffects/SideEffectsSnippets.kt index c68791a0..976d7ac7 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/sideeffects/SideEffectsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/sideeffects/SideEffectsSnippets.kt @@ -43,10 +43,10 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberUpdatedState import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.compose.LocalLifecycleOwner import com.example.compose.snippets.interop.FirebaseAnalytics import com.example.compose.snippets.interop.User import com.example.compose.snippets.kotlin.Message diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/state/StateOverviewSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/state/StateOverviewSnippets.kt index 503732ad..5ac1e71b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/state/StateOverviewSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/state/StateOverviewSnippets.kt @@ -16,6 +16,8 @@ @file:Suppress("unused") +package com.example.compose.snippets.state + import android.content.res.Resources import android.graphics.BitmapShader import android.graphics.Shader @@ -244,7 +246,7 @@ private fun RememberKeysSnippet3() { } /** - * Add fake Parcelize and Parcelable to avoid adding dependency on + * Add fake com.example.compose.snippets.state.Parcelize and com.example.compose.snippets.state.Parcelable to avoid adding dependency on * kotlin-parcelize just for snippets */ private annotation class Parcelize diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt index 2391d48b..82b5b2d1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/focus/FocusSnippets.kt @@ -18,7 +18,6 @@ package com.example.compose.snippets.touchinput.focus -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Indication import androidx.compose.foundation.IndicationInstance import androidx.compose.foundation.background @@ -113,7 +112,6 @@ private fun BasicSample2() { } } -@OptIn(ExperimentalComposeUiApi::class) @Preview @Composable fun OverrideDefaultOrder() { @@ -177,7 +175,6 @@ fun OverrideDefaultOrder() { // [END android_compose_touchinput_focus_override_use] } -@OptIn(ExperimentalComposeUiApi::class) @Preview @Composable fun OverrideTwoDimensionalOrder() { @@ -197,7 +194,6 @@ fun OverrideTwoDimensionalOrder() { // [END android_compose_touchinput_focus_override_2d] } -@OptIn(ExperimentalFoundationApi::class) @Composable private fun FocusGroup() { @@ -319,7 +315,6 @@ private fun Capture() { // [END android_compose_touchinput_focus_capture] } -@OptIn(ExperimentalComposeUiApi::class) @Composable private fun ModifierOrder() { @@ -403,7 +398,6 @@ private fun RedirectFocus() { // [END android_compose_touchinput_focus_redirect] } -@OptIn(ExperimentalComposeUiApi::class) @Composable private fun FocusAdvancing() { // [START android_compose_touchinput_focus_advancing] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/gestures/GesturesSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/gestures/GesturesSnippets.kt index dcddc073..d5f7fffe 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/gestures/GesturesSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/gestures/GesturesSnippets.kt @@ -56,7 +56,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Brush @@ -208,7 +207,6 @@ private fun AutomaticNestedScroll() { private object NestedScrollInterop { // [START android_compose_touchinput_gestures_nested_scroll_interop_activity] open class MainActivity : ComponentActivity() { - @OptIn(ExperimentalComposeUiApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/pointerinput/TapAndPress.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/pointerinput/TapAndPress.kt index fbfa95cd..dbe22282 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/pointerinput/TapAndPress.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/pointerinput/TapAndPress.kt @@ -60,7 +60,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.geometry.Offset @@ -291,7 +290,6 @@ private fun FullScreenImage( } // [START android_compose_touchinput_pointerinput_scrim] -@OptIn(ExperimentalComposeUiApi::class) @Composable private fun Scrim(onClose: () -> Unit, modifier: Modifier = Modifier) { val strClose = stringResource(R.string.close) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 530c1296..70130dd4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,46 +1,45 @@ [versions] -accompanist = "0.32.0" -androidGradlePlugin = "8.4.0" -androidx-activity-compose = "1.9.0" -androidx-appcompat = "1.6.1" -androidx-compose-bom = "2024.05.00" +accompanist = "0.34.0" +androidGradlePlugin = "8.4.2" +androidx-activity-compose = "1.9.1" +androidx-appcompat = "1.7.0" +androidx-compose-bom = "2024.06.00" androidx-compose-ui-test = "1.7.0-alpha08" androidx-constraintlayout = "2.1.4" androidx-constraintlayout-compose = "1.0.1" androidx-coordinator-layout = "1.2.0" -androidx-corektx = "1.9.0" +androidx-corektx = "1.13.1" androidx-emoji2-views = "1.4.0" -androidx-fragment-ktx = "1.6.2" -androidx-glance-appwidget = "1.0.0" -androidx-lifecycle-compose = "2.8.0-rc01" -androidx-lifecycle-runtime-compose = "2.8.0-rc01" +androidx-fragment-ktx = "1.8.2" +androidx-glance-appwidget = "1.1.0" +androidx-lifecycle-compose = "2.8.4" +androidx-lifecycle-runtime-compose = "2.8.4" androidx-navigation = "2.8.0-rc01" androidx-paging = "3.2.1" androidx-test = "1.5.0" androidx-test-espresso = "3.5.1" -androidx-window = "1.3.0-beta02" +androidx-window = "1.3.0" androidxHiltNavigationCompose = "1.2.0" -coil = "2.5.0" +coil = "2.6.0" # @keep compileSdk = "34" -compose-compiler = "1.5.4" coreSplashscreen = "1.0.1" -compose-latest = "1.7.0-beta05" +compose-latest = "1.7.0-beta06" coroutines = "1.7.3" google-maps = "18.2.0" gradle-versions = "0.51.0" hilt = "2.50" horologist = "0.5.24" junit = "4.13.2" -# @pin Update in conjuction with Compose Compiler -kotlin = "1.9.20" +kotlin = "2.0.0" kotlinxSerializationJson = "1.6.3" + ksp = "1.8.0-1.0.9" maps-compose = "4.3.2" material = "1.4.0-beta01" -material3-adaptive = "1.0.0-alpha12" +material3-adaptive = "1.0.0-beta04" material3-adaptive-navigation-suite = "1.0.0-alpha07" -media3 = "1.2.1" +media3 = "1.3.1" # @keep minSdk = "21" playServicesWearable = "18.2.0" @@ -48,8 +47,8 @@ recyclerview = "1.3.2" # @keep targetSdk = "34" version-catalog-update = "0.8.3" -wearComposeFoundation = "1.3.0" -wearComposeMaterial = "1.3.0" +wearComposeFoundation = "1.3.1" +wearComposeMaterial = "1.3.1" composeUiTooling = "1.3.1" [libraries] @@ -76,7 +75,7 @@ androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } androidx-compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose-latest" } androidx-compose-ui-googlefonts = { module = "androidx.compose.ui:ui-text-google-fonts" } -androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.0-beta01" +androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.0-rc01" androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" } androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test" } androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } @@ -131,6 +130,7 @@ androidx-material-icons-core = { module = "androidx.compose.material:material-ic [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } gradle-versions = { id = "com.github.ben-manes.versions", version.ref = "gradle-versions" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } diff --git a/kotlin/src/test/kotlin/com/example/android/coroutines/testing/DispatchersOutsideTests.kt b/kotlin/src/test/kotlin/com/example/android/coroutines/testing/DispatchersOutsideTests.kt index 9f8c6c75..2f3228cc 100644 --- a/kotlin/src/test/kotlin/com/example/android/coroutines/testing/DispatchersOutsideTests.kt +++ b/kotlin/src/test/kotlin/com/example/android/coroutines/testing/DispatchersOutsideTests.kt @@ -14,26 +14,30 @@ * limitations under the License. */ -package com.example.android.coroutines.testing.repo +@file:OptIn(ExperimentalCoroutinesApi::class) + +package com.example.android.coroutines.testing -import com.example.android.coroutines.testing.MainDispatcherRule import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test +import org.junit.experimental.runners.Enclosed +import org.junit.runner.RunWith // Helper function to let code below compile -private fun Repository(): Repository = Repository(Dispatchers.IO) +private fun ExampleRepository(): Repository = Repository(Dispatchers.IO) + -private // [START coroutine_test_repo_with_rule_blank] -class Repository(private val ioDispatcher: CoroutineDispatcher) { /* ... */ } +class ExampleRepository(private val ioDispatcher: CoroutineDispatcher) { /* ... */ } class RepositoryTestWithRule { - private val repository = Repository(/* What TestDispatcher? */) + private val repository = ExampleRepository(/* What TestDispatcher? */) @get:Rule val mainDispatcherRule = MainDispatcherRule() @@ -48,13 +52,14 @@ class RepositoryTestWithRule { } // [END coroutine_test_repo_with_rule_blank] +@RunWith(Enclosed::class) class DispatchersOutsideTests { // [START coroutine_test_repo_with_rule] class RepositoryTestWithRule { @get:Rule val mainDispatcherRule = MainDispatcherRule() - private val repository = Repository(mainDispatcherRule.testDispatcher) + private val repository = ExampleRepository(mainDispatcherRule.testDispatcher) @Test fun someRepositoryTest() = runTest { // Takes scheduler from Main @@ -70,7 +75,7 @@ class DispatchersOutsideTests { class RepositoryTest { // Creates the single test scheduler private val testDispatcher = UnconfinedTestDispatcher() - private val repository = Repository(testDispatcher) + private val repository = ExampleRepository(testDispatcher) @Test fun someRepositoryTest() = runTest(testDispatcher.scheduler) { @@ -84,3 +89,5 @@ class DispatchersOutsideTests { } // [END coroutine_test_repo_without_rule] } + + diff --git a/kotlin/src/test/kotlin/com/example/android/coroutines/testing/HomeViewModelTestUsingRule.kt b/kotlin/src/test/kotlin/com/example/android/coroutines/testing/HomeViewModelTestUsingRule.kt index 882488f8..54a5a9bd 100644 --- a/kotlin/src/test/kotlin/com/example/android/coroutines/testing/HomeViewModelTestUsingRule.kt +++ b/kotlin/src/test/kotlin/com/example/android/coroutines/testing/HomeViewModelTestUsingRule.kt @@ -22,7 +22,6 @@ import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.resetMain import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.setMain -import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Rule import org.junit.Test diff --git a/kotlin/src/test/kotlin/com/example/android/coroutines/testing/UserStateTest.kt b/kotlin/src/test/kotlin/com/example/android/coroutines/testing/UserStateTest.kt index 9620ccbe..e2c625e4 100644 --- a/kotlin/src/test/kotlin/com/example/android/coroutines/testing/UserStateTest.kt +++ b/kotlin/src/test/kotlin/com/example/android/coroutines/testing/UserStateTest.kt @@ -5,10 +5,9 @@ package com.example.android.coroutines.testing import com.example.android.coroutines.testing.scope.FakeUserRepository import com.example.android.coroutines.testing.scope.UserState import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest -import org.junit.Assert.* +import org.junit.Assert.assertEquals import org.junit.Test // [START android_coroutine_test_user_state_test] diff --git a/shared/src/main/res/layout/activity_main.xml b/shared/src/main/res/layout/activity_main.xml deleted file mode 100644 index 0a8e972d..00000000 --- a/shared/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/wear/build.gradle.kts b/wear/build.gradle.kts index b8ca7edd..9725e539 100644 --- a/wear/build.gradle.kts +++ b/wear/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) + alias(libs.plugins.compose.compiler) } android { @@ -39,9 +40,7 @@ android { buildFeatures { compose = true } - composeOptions { - kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get() - } + packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" From 43c9fe878d03bb443fc87e4945cd46170597dcf7 Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Wed, 28 Aug 2024 21:09:12 +0100 Subject: [PATCH 34/49] Migrate CompositionLocal snippets to m3 (#321) (#323) Co-authored-by: Ben Trengrove From 2b78281868fc2f5746c12ea99cad1c87345f55b9 Mon Sep 17 00:00:00 2001 From: Alex Vanyo Date: Thu, 29 Aug 2024 15:27:25 -0700 Subject: [PATCH 35/49] Update snippets to use material3-adaptive rc01 (#324) --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 70130dd4..6e2d5eab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -37,8 +37,8 @@ kotlinxSerializationJson = "1.6.3" ksp = "1.8.0-1.0.9" maps-compose = "4.3.2" material = "1.4.0-beta01" -material3-adaptive = "1.0.0-beta04" -material3-adaptive-navigation-suite = "1.0.0-alpha07" +material3-adaptive = "1.0.0-rc01" +material3-adaptive-navigation-suite = "1.3.0-rc01" media3 = "1.3.1" # @keep minSdk = "21" From cf8e3c91f94aa6503c849b1821c64fad7c7aca85 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 30 Aug 2024 09:27:01 +0100 Subject: [PATCH 36/49] Migrate many snippets to use Material 3 instead of Material 2. (#320) * Do latest 1.7.0-beta06 version updates * Apply Spotless * Code cleanup * Apply Spotless * Fix broken test * Remove M2 usage from many snippets. * Apply Spotless * Remove M2 usage from many snippets. * Remove M2 usage from many snippets. * Revert incorrect commit --------- Co-authored-by: riggaroo --- .../snippets/animations/AnimationSnippets.kt | 112 ++++++++++++------ .../designsystems/CustomDesignSystem.kt | 12 +- .../snippets/graphics/ShapesSnippets.kt | 38 +++--- .../interop/ComposeWithOtherLibraries.kt | 4 +- .../compose/snippets/kotlin/KotlinSnippets.kt | 4 +- .../layouts/AlignmentLinesSnippets.kt | 4 +- .../layouts/ConstraintLayoutSnippets.kt | 4 +- .../snippets/layouts/CustomLayoutSnippets.kt | 2 +- .../snippets/layouts/FlowLayoutSnippets.kt | 14 ++- .../snippets/layouts/IntrinsicSnippets.kt | 12 +- .../mentalmodel/ThinkingInComposeSnippets.kt | 10 +- .../snippets/resources/ResourcesSnippets.kt | 6 +- .../snippets/state/SavingUIStateSnippets.kt | 4 +- .../compose/snippets/text/EmojiSnippets.kt | 2 +- .../text/TextDownloadableFontsSnippets.kt | 10 +- gradle/libs.versions.toml | 2 +- 16 files changed, 146 insertions(+), 94 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt index 08c69981..9db1748d 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt @@ -23,7 +23,6 @@ import androidx.compose.animation.AnimatedContent import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.Crossfade import androidx.compose.animation.EnterExitState -import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.animation.SizeTransform import androidx.compose.animation.animateColor import androidx.compose.animation.animateContentSize @@ -81,18 +80,19 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.sizeIn import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Button -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Icon -import androidx.compose.material.Surface -import androidx.compose.material.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Phone +import androidx.compose.material3.Button +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.State import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableLongStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -156,7 +156,12 @@ private fun AnimatedVisibilityWithEnterAndExit() { ), exit = slideOutVertically() + shrinkVertically() + fadeOut() ) { - Text("Hello", Modifier.fillMaxWidth().height(200.dp)) + Text( + "Hello", + Modifier + .fillMaxWidth() + .height(200.dp) + ) } // [END android_compose_animations_animated_visibility_enter_exit] } @@ -203,7 +208,11 @@ private fun AnimatedVisibilityAnimateEnterExitChildren() { exit = fadeOut() ) { // Fade in/out the background and the foreground. - Box(Modifier.fillMaxSize().background(Color.DarkGray)) { + Box( + Modifier + .fillMaxSize() + .background(Color.DarkGray) + ) { Box( Modifier .align(Alignment.Center) @@ -238,7 +247,11 @@ private fun AnimatedVisibilityTransition() { val background by transition.animateColor(label = "color") { state -> if (state == EnterExitState.Visible) Color.Blue else Color.Gray } - Box(modifier = Modifier.size(128.dp).background(background)) + Box( + modifier = Modifier + .size(128.dp) + .background(background) + ) } // [END android_compose_animations_animated_visibility_transition] } @@ -249,9 +262,10 @@ private fun AnimateAsStateSimple() { // [START android_compose_animations_animate_as_state] var enabled by remember { mutableStateOf(true) } - val alpha: Float by animateFloatAsState(if (enabled) 1f else 0.5f) + val alpha: Float by animateFloatAsState(if (enabled) 1f else 0.5f, label = "alpha") Box( - Modifier.fillMaxSize() + Modifier + .fillMaxSize() .graphicsLayer(alpha = alpha) .background(Color.Red) ) @@ -263,11 +277,14 @@ private fun AnimateAsStateSimple() { private fun AnimatedContentSimple() { // [START android_compose_animations_animated_content_simple] Row { - var count by remember { mutableStateOf(0) } + var count by remember { mutableIntStateOf(0) } Button(onClick = { count++ }) { Text("Add") } - AnimatedContent(targetState = count) { targetCount -> + AnimatedContent( + targetState = count, + label = "animated content" + ) { targetCount -> // Make sure to use `targetCount`, not `count`. Text(text = "Count: $targetCount") } @@ -297,13 +314,13 @@ private fun AnimatedContentTransitionSpec(count: Int) { // be displayed out of bounds. SizeTransform(clip = false) ) - } + }, label = "animated content" ) { targetCount -> Text(text = "$targetCount") } // [END android_compose_animations_animated_content_transition_spec] } -@OptIn(ExperimentalAnimationApi::class, ExperimentalMaterialApi::class) + @Composable private fun AnimatedContentSizeTransform() { // [START android_compose_animations_animated_content_size_transform] @@ -332,7 +349,7 @@ private fun AnimatedContentSizeTransform() { } } } - } + }, label = "size transform" ) { targetExpanded -> if (targetExpanded) { Expanded() @@ -349,7 +366,9 @@ private fun AnimateContentSizeSimple() { // [START android_compose_animations_animated_content_size_modifier_simple] var message by remember { mutableStateOf("Hello") } Box( - modifier = Modifier.background(Color.Blue).animateContentSize() + modifier = Modifier + .background(Color.Blue) + .animateContentSize() ) { Text(text = message) } // [END android_compose_animations_animated_content_size_modifier_simple] } @@ -358,7 +377,7 @@ private fun AnimateContentSizeSimple() { private fun CrossfadeSimple() { // [START android_compose_animations_crossfade_simple] var currentPage by remember { mutableStateOf("A") } - Crossfade(targetState = currentPage) { screen -> + Crossfade(targetState = currentPage, label = "cross fade") { screen -> when (screen) { "A" -> Text("Page A") "B" -> Text("Page B") @@ -409,6 +428,7 @@ private object UpdateTransitionEnumState { when { BoxState.Expanded isTransitioningTo BoxState.Collapsed -> spring(stiffness = 50f) + else -> tween(durationMillis = 500) } @@ -476,7 +496,6 @@ private object UpdateTransitionCreateChildTransition { // [END android_compose_animations_transitions_dialer_example] } -@OptIn(ExperimentalAnimationApi::class, ExperimentalMaterialApi::class) @Composable private fun UpdateTransitionAnimatedVisibility() { // [START android_compose_animations_transitions_animated_visibility] @@ -493,9 +512,13 @@ private fun UpdateTransitionAnimatedVisibility() { onClick = { selected = !selected }, shape = RoundedCornerShape(8.dp), border = BorderStroke(2.dp, borderColor), - elevation = elevation + shadowElevation = elevation ) { - Column(modifier = Modifier.fillMaxWidth().padding(16.dp)) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { Text(text = "Hello, world!") // AnimatedVisibility as a part of the transition. transition.AnimatedVisibility( @@ -566,17 +589,22 @@ private object UpdateTransitionEncapsulating { @Composable private fun RememberInfiniteTransitionSimple() { // [START android_compose_animations_infinite_transition_simple] - val infiniteTransition = rememberInfiniteTransition() + val infiniteTransition = rememberInfiniteTransition(label = "infinite") val color by infiniteTransition.animateColor( initialValue = Color.Red, targetValue = Color.Green, animationSpec = infiniteRepeatable( animation = tween(1000, easing = LinearEasing), repeatMode = RepeatMode.Reverse - ) + ), + label = "color" ) - Box(Modifier.fillMaxSize().background(color)) + Box( + Modifier + .fillMaxSize() + .background(color) + ) // [END android_compose_animations_infinite_transition_simple] } @@ -588,9 +616,14 @@ private fun AnimatableSimple(ok: Boolean) { LaunchedEffect(ok) { color.animateTo(if (ok) Color.Green else Color.Red) } - Box(Modifier.fillMaxSize().background(color.value)) + Box( + Modifier + .fillMaxSize() + .background(color.value) + ) // [END android_compose_animations_animatable_simple] } + @Composable private fun TargetBasedAnimationSimple(someCustomCondition: () -> Boolean) { // [START android_compose_animations_target_based_animation_simple] @@ -602,7 +635,7 @@ private fun TargetBasedAnimationSimple(someCustomCondition: () -> Boolean) { targetValue = 1000f ) } - var playTime by remember { mutableStateOf(0L) } + var playTime by remember { mutableLongStateOf(0L) } LaunchedEffect(anim) { val startTime = withFrameNanos { it } @@ -621,7 +654,8 @@ private fun AnimationSpecTween(enabled: Boolean) { val alpha: Float by animateFloatAsState( targetValue = if (enabled) 1f else 0.5f, // Configure the animation duration and easing. - animationSpec = tween(durationMillis = 300, easing = FastOutSlowInEasing) + animationSpec = tween(durationMillis = 300, easing = FastOutSlowInEasing), + label = "alpha" ) // [END android_compose_animations_spec_tween] } @@ -634,7 +668,8 @@ private fun AnimationSpecSpring() { animationSpec = spring( dampingRatio = Spring.DampingRatioHighBouncy, stiffness = Spring.StiffnessMedium - ) + ), + label = "spring spec" ) // [END android_compose_animations_spec_spring] } @@ -648,7 +683,8 @@ private fun AnimationSpecTween() { durationMillis = 300, delayMillis = 50, easing = LinearOutSlowInEasing - ) + ), + label = "tween delay" ) // [END android_compose_animations_spec_tween_delay] } @@ -664,7 +700,8 @@ private fun AnimationSpecKeyframe() { 0.2f at 15 using FastOutLinearInEasing // for 15-75 ms 0.4f at 75 // ms 0.4f at 225 // ms - } + }, + label = "keyframe" ) // [END android_compose_animations_spec_keyframe] } @@ -678,7 +715,8 @@ private fun AnimationSpecRepeatable() { iterations = 3, animation = tween(durationMillis = 300), repeatMode = RepeatMode.Reverse - ) + ), + label = "repeatable spec" ) // [END android_compose_animations_spec_repeatable] } @@ -691,7 +729,8 @@ private fun AnimationSpecInfiniteRepeatable() { animationSpec = infiniteRepeatable( animation = tween(durationMillis = 300), repeatMode = RepeatMode.Reverse - ) + ), + label = "infinite repeatable" ) // [END android_compose_animations_spec_infinite_repeatable] } @@ -701,7 +740,8 @@ private fun AnimationSpecSnap() { // [START android_compose_animations_spec_snap] val value by animateFloatAsState( targetValue = 1f, - animationSpec = snap(delayMillis = 50) + animationSpec = snap(delayMillis = 50), + label = "snap spec" ) // [END android_compose_animations_spec_snap] } @@ -717,7 +757,8 @@ private object Easing { animationSpec = tween( durationMillis = 300, easing = CustomEasing - ) + ), + label = "custom easing" ) // …… } @@ -747,7 +788,8 @@ private object AnimationVectorCustomType { convertFromVector = { vector: AnimationVector2D -> MySize(vector.v1.dp, vector.v2.dp) } - ) + ), + label = "size" ) } // [END android_compose_animations_vector_convertor_custom_type] diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt index f2ed138e..a8f8c579 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/designsystems/CustomDesignSystem.kt @@ -16,13 +16,13 @@ package com.example.compose.snippets.designsystems +import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.ZeroCornerSize -import androidx.compose.material.Colors -import androidx.compose.material.ContentAlpha import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ProvideTextStyle import androidx.compose.material3.Shapes @@ -57,8 +57,10 @@ import androidx.compose.ui.unit.sp private object CustomDesignSystemExtend { // [START android_compose_designsystems_custom_extend] // Use with MaterialTheme.colors.snackbarAction - val Colors.snackbarAction: Color - get() = if (isLight) Red300 else Red700 + + val ColorScheme.snackbarAction: Color + @Composable + get() = if (isSystemInDarkTheme()) Red300 else Red700 // Use with MaterialTheme.typography.textFieldInput val Typography.textFieldInput: TextStyle @@ -339,7 +341,7 @@ object FullyCustomDesignSystem { .copy(alpha = 0.12f) .compositeOver(CustomTheme.colors.component), disabledContentColor = CustomTheme.colors.content - .copy(alpha = ContentAlpha.disabled) + .copy(alpha = 0.5f) ), shape = ButtonShape, elevation = ButtonDefaults.elevatedButtonElevation( diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt index efe9bfa1..a106a905 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt @@ -40,6 +40,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -347,7 +348,7 @@ private fun MorphOnClick() { // [START android_compose_shapes_polygon_compose_shape] class RoundedPolygonShape( - private val polygon: RoundedPolygon + private val polygon: State ) : Shape { private val matrix = Matrix() override fun createOutline( @@ -355,7 +356,7 @@ class RoundedPolygonShape( layoutDirection: LayoutDirection, density: Density ): Outline { - val path = polygon.cubics.toPath() + val path = polygon.value.cubics.toPath() // below assumes that you haven't changed the default radius of 1f, nor the centerX and centerY of 0f // By default this stretches the path to the size of the container, if you don't want stretching, use the same size.width for both x and y. matrix.scale(size.width / 2f, size.height / 2f) @@ -372,12 +373,14 @@ class RoundedPolygonShape( fun ApplyPolygonAsClipBasic() { // [START android_compose_shapes_apply_as_clip] val hexagon = remember { - RoundedPolygon( - 6, - rounding = CornerRounding(0.2f) + mutableStateOf( + RoundedPolygon( + 6, + rounding = CornerRounding(0.2f) + ) ) } - val clip = remember(hexagon) { + val clip = remember { RoundedPolygonShape(polygon = hexagon) } Box( @@ -400,9 +403,11 @@ fun ApplyPolygonAsClipBasic() { fun ApplyPolygonAsClipImage() { // [START android_compose_shapes_apply_as_clip_advanced] val hexagon = remember { - RoundedPolygon( - 6, - rounding = CornerRounding(0.2f) + mutableStateOf( + RoundedPolygon( + 6, + rounding = CornerRounding(0.2f) + ) ) } val clip = remember(hexagon) { @@ -494,6 +499,13 @@ private fun RotatingScallopedProfilePic() { ), label = "animatedMorphProgress" ) + val morphingShape = remember { + CustomRotatingMorphShape( + morph, + animatedProgress, + animatedRotation + ) + } Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center @@ -503,13 +515,7 @@ private fun RotatingScallopedProfilePic() { contentDescription = "Dog", contentScale = ContentScale.Crop, modifier = Modifier - .clip( - CustomRotatingMorphShape( - morph, - animatedProgress, - animatedRotation - ) - ) + .clip(morphingShape) .size(200.dp) ) } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/interop/ComposeWithOtherLibraries.kt b/compose/snippets/src/main/java/com/example/compose/snippets/interop/ComposeWithOtherLibraries.kt index 3fc79a66..fe532068 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/interop/ComposeWithOtherLibraries.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/interop/ComposeWithOtherLibraries.kt @@ -26,8 +26,8 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.material.Button -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.getValue diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt index 345ca664..12c5618b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/kotlin/KotlinSnippets.kt @@ -34,8 +34,8 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.Button -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AlignmentLinesSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AlignmentLinesSnippets.kt index e312de9b..8946384b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AlignmentLinesSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AlignmentLinesSnippets.kt @@ -35,8 +35,8 @@ package com.example.compose.snippets.layouts import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/ConstraintLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/ConstraintLayoutSnippets.kt index fe2106a9..d9763de1 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/ConstraintLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/ConstraintLayoutSnippets.kt @@ -19,8 +19,8 @@ package com.example.compose.snippets.layouts import androidx.compose.foundation.layout.BoxWithConstraints -import androidx.compose.material.Button -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.Dp diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CustomLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CustomLayoutSnippets.kt index 72c6cb0a..a92c0c2d 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CustomLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/CustomLayoutSnippets.kt @@ -34,7 +34,7 @@ package com.example.compose.snippets.layouts * limitations under the License. */ import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.layout.AlignmentLine diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt index 203f1283..164dd3ea 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/FlowLayoutSnippets.kt @@ -40,8 +40,8 @@ import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.Chip import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material3.FilterChip import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -278,14 +278,16 @@ private fun FlowItems() { @OptIn(ExperimentalMaterialApi::class) @Composable fun ChipItem(text: String, onClick: () -> Unit = {}) { - Chip( + FilterChip( modifier = Modifier.padding(end = 4.dp), onClick = onClick, leadingIcon = {}, - border = BorderStroke(1.dp, Color(0xFF3B3A3C)) - ) { - Text(text) - } + border = BorderStroke(1.dp, Color(0xFF3B3A3C)), + label = { + Text(text) + }, + selected = false + ) } @Composable diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/IntrinsicSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/IntrinsicSnippets.kt index 012f09e5..9bc39b29 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/IntrinsicSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/IntrinsicSnippets.kt @@ -39,10 +39,10 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material.Divider -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.Text +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -71,7 +71,7 @@ private object IntrinsicsSnippet1 { .wrapContentWidth(Alignment.Start), text = text1 ) - Divider( + HorizontalDivider( color = Color.Black, modifier = Modifier.fillMaxHeight().width(1.dp) ) @@ -111,7 +111,7 @@ private object IntrinsicsSnippet2 { .wrapContentWidth(Alignment.Start), text = text1 ) - Divider( + HorizontalDivider( color = Color.Black, modifier = Modifier.fillMaxHeight().width(1.dp) ) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/mentalmodel/ThinkingInComposeSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/mentalmodel/ThinkingInComposeSnippets.kt index 3cc21a96..eb4e4dac 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/mentalmodel/ThinkingInComposeSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/mentalmodel/ThinkingInComposeSnippets.kt @@ -24,11 +24,11 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material.Button -import androidx.compose.material.Checkbox -import androidx.compose.material.Divider -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Checkbox +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -137,7 +137,7 @@ fun NamePicker( Column { // this will recompose when [header] changes, but not when [names] changes Text(header, style = MaterialTheme.typography.bodyLarge) - Divider() + HorizontalDivider() // LazyColumn is the Compose version of a RecyclerView. // The lambda passed to items() is similar to a RecyclerView.ViewHolder. diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt index 09c0bef1..0a2f34a5 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/resources/ResourcesSnippets.kt @@ -23,12 +23,12 @@ import androidx.compose.animation.graphics.res.animatedVectorResource import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter import androidx.compose.animation.graphics.vector.AnimatedImageVector import androidx.compose.foundation.layout.padding -import androidx.compose.material.Divider -import androidx.compose.material.Icon -import androidx.compose.material.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.rounded.Menu +import androidx.compose.material3.Divider +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.material3.Typography import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/state/SavingUIStateSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/state/SavingUIStateSnippets.kt index cfd35591..cc35c128 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/state/SavingUIStateSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/state/SavingUIStateSnippets.kt @@ -20,8 +20,8 @@ package com.example.compose.snippets.state import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.text.ClickableText -import androidx.compose.material.Text -import androidx.compose.material.TextField +import androidx.compose.material3.Text +import androidx.compose.material3.TextField import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/EmojiSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/EmojiSnippets.kt index eb0495ca..7a32ed36 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/text/EmojiSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/EmojiSnippets.kt @@ -24,7 +24,7 @@ import androidx.activity.ComponentActivity import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.AppCompatTextView import androidx.compose.foundation.layout.Column -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.text.EmojiSupportMatch diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/TextDownloadableFontsSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/TextDownloadableFontsSnippets.kt index 283e8f7f..4eaffb64 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/text/TextDownloadableFontsSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/TextDownloadableFontsSnippets.kt @@ -20,9 +20,9 @@ package com.example.compose.snippets.text import android.util.Log import androidx.compose.foundation.layout.Column -import androidx.compose.material.Text -import androidx.compose.material.Typography import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.Typography import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect @@ -118,16 +118,16 @@ fun DownloadableFontsText() { private object TextDownloadableFontsSnippet4 { // [START android_compose_text_typography_definition] val MyTypography = Typography( - body1 = TextStyle( + bodyMedium = TextStyle( fontFamily = fontFamily, fontWeight = FontWeight.Normal, fontSize = 12.sp/*...*/ ), - body2 = TextStyle( + bodyLarge = TextStyle( fontFamily = fontFamily, fontWeight = FontWeight.Bold, letterSpacing = 2.sp, /*...*/ ), - h4 = TextStyle( + headlineMedium = TextStyle( fontFamily = fontFamily, fontWeight = FontWeight.SemiBold/*...*/ ), /*...*/ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6e2d5eab..b4ef5291 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ androidx-glance-appwidget = "1.1.0" androidx-lifecycle-compose = "2.8.4" androidx-lifecycle-runtime-compose = "2.8.4" androidx-navigation = "2.8.0-rc01" -androidx-paging = "3.2.1" +androidx-paging = "3.3.1" androidx-test = "1.5.0" androidx-test-espresso = "3.5.1" androidx-window = "1.3.0" From bbdb61bc649b05f7c7f43ee1ecba131fd216ba96 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 2 Sep 2024 09:58:46 +0100 Subject: [PATCH 37/49] Revert shape changes for now. --- .../snippets/graphics/ShapesSnippets.kt | 95 ++++++++++--------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt index a106a905..f254da28 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/ShapesSnippets.kt @@ -38,20 +38,20 @@ import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.State import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawWithCache +import androidx.compose.ui.geometry.Rect import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Matrix import androidx.compose.ui.graphics.Outline import androidx.compose.ui.graphics.Path import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.asComposePath import androidx.compose.ui.graphics.drawscope.scale import androidx.compose.ui.graphics.drawscope.translate import androidx.compose.ui.graphics.graphicsLayer @@ -68,9 +68,11 @@ import androidx.graphics.shapes.Cubic import androidx.graphics.shapes.Morph import androidx.graphics.shapes.RoundedPolygon import androidx.graphics.shapes.star +import androidx.graphics.shapes.toPath import com.example.compose.snippets.R import kotlin.math.PI import kotlin.math.cos +import kotlin.math.max import kotlin.math.sin @Preview @@ -86,8 +88,7 @@ fun BasicShapeCanvas() { centerX = size.width / 2, centerY = size.height / 2 ) - val roundedPolygonPath = roundedPolygon.cubics - .toPath() + val roundedPolygonPath = roundedPolygon.toPath().asComposePath() onDrawBehind { drawPath(roundedPolygonPath, color = Color.Blue) } @@ -114,8 +115,7 @@ private fun RoundedShapeExample() { smoothing = 1f ) ) - val roundedPolygonPath = roundedPolygon.cubics - .toPath() + val roundedPolygonPath = roundedPolygon.toPath().asComposePath() onDrawBehind { drawPath(roundedPolygonPath, color = Color.Black) } @@ -142,8 +142,7 @@ private fun RoundedShapeSmoothnessExample() { smoothing = 0.1f ) ) - val roundedPolygonPath = roundedPolygon.cubics - .toPath() + val roundedPolygonPath = roundedPolygon.toPath().asComposePath() onDrawBehind { drawPath(roundedPolygonPath, color = Color.Black) } @@ -180,7 +179,7 @@ private fun MorphExample() { val morph = Morph(start = triangle, end = square) val morphPath = morph - .toComposePath(progress = 0.5f) + .toPath(progress = 0.5f).asComposePath() onDrawBehind { drawPath(morphPath, color = Color.Black) @@ -227,7 +226,8 @@ private fun MorphExampleAnimation() { val morph = Morph(start = triangle, end = square) val morphPath = morph - .toComposePath(progress = morphProgress.value) + .toPath(progress = morphProgress.value) + .asComposePath() onDrawBehind { drawPath(morphPath, color = Color.Black) @@ -238,6 +238,7 @@ private fun MorphExampleAnimation() { // [END android_compose_graphics_polygon_morph_animation] } +// [START android_compose_morph_to_path] /** * Transforms the morph at a given progress into a [Path]. * It can optionally be scaled, using the origin (0,0) as pivot point. @@ -259,10 +260,11 @@ fun Morph.toComposePath(progress: Float, scale: Float = 1f, path: Path = Path()) path.close() return path } - +// [END android_compose_morph_to_path] /** * Function used to create a Path from a list of Cubics. */ +// [START android_compose_list_cubics_to_path] fun List.toPath(path: Path = Path(), scale: Float = 1f): Path { path.rewind() firstOrNull()?.let { first -> @@ -278,11 +280,12 @@ fun List.toPath(path: Path = Path(), scale: Float = 1f): Path { path.close() return path } +// [END android_compose_list_cubics_to_path] // [START android_compose_morph_clip_shape] class MorphPolygonShape( private val morph: Morph, - private val percentage: State + private val percentage: Float ) : Shape { private val matrix = Matrix() @@ -296,7 +299,7 @@ class MorphPolygonShape( matrix.scale(size.width / 2f, size.height / 2f) matrix.translate(1f, 1f) - val path = morph.toComposePath(progress = percentage.value) + val path = morph.toPath(progress = percentage).asComposePath() path.transform(matrix) return Outline.Generic(path) } @@ -335,7 +338,7 @@ private fun MorphOnClick() { modifier = Modifier .size(200.dp) .padding(8.dp) - .clip(MorphPolygonShape(morph, animatedProgress)) + .clip(MorphPolygonShape(morph, animatedProgress.value)) .background(Color(0xFF80DEEA)) .size(200.dp) .clickable(interactionSource = interactionSource, indication = null) { @@ -347,22 +350,26 @@ private fun MorphOnClick() { } // [START android_compose_shapes_polygon_compose_shape] +fun RoundedPolygon.getBounds() = calculateBounds().let { Rect(it[0], it[1], it[2], it[3]) } class RoundedPolygonShape( - private val polygon: State + private val polygon: RoundedPolygon, + private var matrix: Matrix = Matrix() ) : Shape { - private val matrix = Matrix() + private var path = Path() override fun createOutline( size: Size, layoutDirection: LayoutDirection, density: Density ): Outline { - val path = polygon.value.cubics.toPath() - // below assumes that you haven't changed the default radius of 1f, nor the centerX and centerY of 0f - // By default this stretches the path to the size of the container, if you don't want stretching, use the same size.width for both x and y. - matrix.scale(size.width / 2f, size.height / 2f) - matrix.translate(1f, 1f) - path.transform(matrix) + path.rewind() + path = polygon.toPath().asComposePath() + matrix.reset() + val bounds = polygon.getBounds() + val maxDimension = max(bounds.width, bounds.height) + matrix.scale(size.width / maxDimension, size.height / maxDimension) + matrix.translate(-bounds.left, -bounds.top) + path.transform(matrix) return Outline.Generic(path) } } @@ -373,14 +380,12 @@ class RoundedPolygonShape( fun ApplyPolygonAsClipBasic() { // [START android_compose_shapes_apply_as_clip] val hexagon = remember { - mutableStateOf( - RoundedPolygon( - 6, - rounding = CornerRounding(0.2f) - ) + RoundedPolygon( + 6, + rounding = CornerRounding(0.2f) ) } - val clip = remember { + val clip = remember(hexagon) { RoundedPolygonShape(polygon = hexagon) } Box( @@ -403,11 +408,9 @@ fun ApplyPolygonAsClipBasic() { fun ApplyPolygonAsClipImage() { // [START android_compose_shapes_apply_as_clip_advanced] val hexagon = remember { - mutableStateOf( - RoundedPolygon( - 6, - rounding = CornerRounding(0.2f) - ) + RoundedPolygon( + 6, + rounding = CornerRounding(0.2f) ) } val clip = remember(hexagon) { @@ -439,8 +442,8 @@ fun ApplyPolygonAsClipImage() { // [START android_compose_shapes_custom_rotating_morph_shape] class CustomRotatingMorphShape( private val morph: Morph, - private val percentage: State, - private val rotation: State + private val percentage: Float, + private val rotation: Float ) : Shape { private val matrix = Matrix() @@ -453,9 +456,9 @@ class CustomRotatingMorphShape( // By default this stretches the path to the size of the container, if you don't want stretching, use the same size.width for both x and y. matrix.scale(size.width / 2f, size.height / 2f) matrix.translate(1f, 1f) - matrix.rotateZ(rotation.value) + matrix.rotateZ(rotation) - val path = morph.toComposePath(progress = percentage.value) + val path = morph.toPath(progress = percentage).asComposePath() path.transform(matrix) return Outline.Generic(path) @@ -499,13 +502,6 @@ private fun RotatingScallopedProfilePic() { ), label = "animatedMorphProgress" ) - val morphingShape = remember { - CustomRotatingMorphShape( - morph, - animatedProgress, - animatedRotation - ) - } Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center @@ -515,7 +511,13 @@ private fun RotatingScallopedProfilePic() { contentDescription = "Dog", contentScale = ContentScale.Crop, modifier = Modifier - .clip(morphingShape) + .clip( + CustomRotatingMorphShape( + morph, + animatedProgress.value, + animatedRotation.value + ) + ) .size(200.dp) ) } @@ -570,8 +572,7 @@ private fun CartesianPoints() { Box( modifier = Modifier .drawWithCache { - val roundedPolygonPath = polygon.cubics - .toPath() + val roundedPolygonPath = polygon.toPath().asComposePath() onDrawBehind { scale(size.width * 0.5f, size.width * 0.5f) { translate(size.width * 0.5f, size.height * 0.5f) { From be01a9671fcf97891c2640738a7d0735e1a102a1 Mon Sep 17 00:00:00 2001 From: Ben Trengrove Date: Tue, 3 Sep 2024 21:05:09 +1200 Subject: [PATCH 38/49] Fix text snippets in latest (#326) * Fix text snippets in latest * Apply Spotless --- .../compose/snippets/text/TextSnippets.kt | 242 ++++++++++++++---- 1 file changed, 191 insertions(+), 51 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt index 6a704caa..57e521cf 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/TextSnippets.kt @@ -18,15 +18,22 @@ package com.example.compose.snippets.text -import android.util.Log +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.background +import androidx.compose.foundation.basicMarquee +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.foundation.text.ClickableText import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.selection.DisableSelection import androidx.compose.foundation.text.selection.SelectionContainer import androidx.compose.material3.LocalTextStyle +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.material3.TextField @@ -36,6 +43,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Brush @@ -44,7 +52,6 @@ import androidx.compose.ui.graphics.Color.Companion.Cyan import androidx.compose.ui.graphics.Shadow import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.LinkAnnotation import androidx.compose.ui.text.ParagraphStyle import androidx.compose.ui.text.PlatformTextStyle @@ -58,11 +65,14 @@ import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.text.style.Hyphens +import androidx.compose.ui.text.style.LineBreak import androidx.compose.ui.text.style.LineHeightStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.withLink import androidx.compose.ui.text.withStyle +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em import androidx.compose.ui.unit.sp @@ -407,54 +417,6 @@ private object TextPartiallySelectableSnippet { // [END android_compose_text_partial_selection] } -private object TextClickableSnippet { - // [START android_compose_text_clickable] - @Composable - fun SimpleClickableText() { - ClickableText(text = AnnotatedString("Click Me"), onClick = { offset -> - Log.d("ClickableText", "$offset -th character is clicked.") - }) - } - // [END android_compose_text_clickable] -} - -private object TextClickableAnnotatedSnippet { - // [START android_compose_text_clickable_annotated] - @Composable - fun AnnotatedClickableText() { - val annotatedText = buildAnnotatedString { - append("Click ") - - // We attach this *URL* annotation to the following content - // until `pop()` is called - pushStringAnnotation( - tag = "URL", annotation = "https://developer.android.com" - ) - withStyle( - style = SpanStyle( - color = Color.Blue, fontWeight = FontWeight.Bold - ) - ) { - append("here") - } - - pop() - } - - ClickableText(text = annotatedText, onClick = { offset -> - // We check if there is an *URL* annotation attached to the text - // at the clicked position - annotatedText.getStringAnnotations( - tag = "URL", start = offset, end = offset - ).firstOrNull()?.let { annotation -> - // If yes, we log its value - Log.d("Clicked URL", annotation.item) - } - }) - } - // [END android_compose_text_clickable_annotated] -} - private object TextTextFieldSnippet { // [START android_compose_text_textfield_filled] @Composable @@ -625,6 +587,184 @@ fun AnnotatedStringWithListenerSample() { } // [END android_compose_text_link_2] +@Composable +private fun TextSample(samples: MapUnit>) { + MaterialTheme { + Box( + Modifier + .background(MaterialTheme.colorScheme.background) + .fillMaxWidth() + ) { + Column( + verticalArrangement = Arrangement.spacedBy(10.dp), + modifier = Modifier.padding(10.dp) + ) { + samples.forEach { (title, content) -> + Row(Modifier.fillMaxWidth()) { + content() + Text( + text = title, + textAlign = TextAlign.Center, + style = MaterialTheme.typography.titleLarge, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.CenterVertically) + ) + } + } + } + } + } +} + +private const val SAMPLE_LONG_TEXT = + "Jetpack Compose is Android’s modern toolkit for building native UI. " + + "It simplifies and accelerates UI development on Android bringing your apps " + + "to life with less code, powerful tools, and intuitive Kotlin APIs. " + + "It makes building Android UI faster and easier." +@Composable +@Preview +fun LineBreakSample() { + // [START android_compose_text_line_break] + TextSample( + samples = mapOf( + "Simple" to { + Text( + text = SAMPLE_LONG_TEXT, + modifier = Modifier + .width(130.dp) + .border(BorderStroke(1.dp, Color.Gray)), + fontSize = 14.sp, + style = TextStyle.Default.copy( + lineBreak = LineBreak.Simple + ) + ) + }, + "Paragraph" to { + Text( + text = SAMPLE_LONG_TEXT, + modifier = Modifier + .width(130.dp) + .border(BorderStroke(1.dp, Color.Gray)), + fontSize = 14.sp, + style = TextStyle.Default.copy( + lineBreak = LineBreak.Paragraph + ) + ) + } + ) + ) + // [END android_compose_text_line_break] +} + +@Preview +@Composable +fun SmallScreenTextSnippet() { + // [START android_compose_text_paragraph] + TextSample( + samples = mapOf( + "Balanced" to { + val smallScreenAdaptedParagraph = + LineBreak.Paragraph.copy(strategy = LineBreak.Strategy.Balanced) + Text( + text = SAMPLE_LONG_TEXT, + modifier = Modifier + .width(200.dp) + .border(BorderStroke(1.dp, Color.Gray)), + fontSize = 14.sp, + style = TextStyle.Default.copy( + lineBreak = smallScreenAdaptedParagraph + ) + ) + }, + "Default" to { + Text( + text = SAMPLE_LONG_TEXT, + modifier = Modifier + .width(200.dp) + .border(BorderStroke(1.dp, Color.Gray)), + fontSize = 14.sp, + style = TextStyle.Default + ) + } + ) + ) + // [END android_compose_text_paragraph] +} + +private object CJKTextSnippet { + @Composable + fun CJKSample() { + // [START android_compose_text_cjk] + val customTitleLineBreak = LineBreak( + strategy = LineBreak.Strategy.HighQuality, + strictness = LineBreak.Strictness.Strict, + wordBreak = LineBreak.WordBreak.Phrase + ) + Text( + text = "あなたに寄り添う最先端のテクノロジー。", + modifier = Modifier.width(250.dp), + fontSize = 14.sp, + style = TextStyle.Default.copy( + lineBreak = customTitleLineBreak + ) + ) + // [END android_compose_text_cjk] + } +} + +@Preview +@Composable +fun HyphenateTextSnippet() { + // [START android_compose_text_hyphen] + TextSample( + samples = mapOf( + "Hyphens - None" to { + Text( + text = SAMPLE_LONG_TEXT, + modifier = Modifier + .width(130.dp) + .border(BorderStroke(1.dp, Color.Gray)), + fontSize = 14.sp, + style = TextStyle.Default.copy( + lineBreak = LineBreak.Paragraph, + hyphens = Hyphens.None + ) + ) + }, + "Hyphens - Auto" to { + Text( + text = SAMPLE_LONG_TEXT, + modifier = Modifier + .width(130.dp) + .border(BorderStroke(1.dp, Color.Gray)), + fontSize = 14.sp, + style = TextStyle.Default.copy( + lineBreak = LineBreak.Paragraph, + hyphens = Hyphens.Auto + ) + ) + } + ) + ) + // [END android_compose_text_hyphen] +} + +@Preview(showBackground = true) +// [START android_compose_text_marquee] +@Composable +fun BasicMarqueeSample() { + // Marquee only animates when the content doesn't fit in the max width. + Column(Modifier.width(400.dp)) { + Text( + "Learn about why it's great to use Jetpack Compose", + modifier = Modifier.basicMarquee(), + fontSize = 50.sp + ) + } +} +// [END android_compose_text_marquee] + private val firaSansFamily = FontFamily() val LightBlue = Color(0xFF0066FF) From 7045d7d897951c0b3e9b86fc59c962e63359d917 Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Tue, 3 Sep 2024 10:05:32 +0100 Subject: [PATCH 39/49] =?UTF-8?q?=F0=9F=A4=96=20Sync=20main=20to=20latest?= =?UTF-8?q?=20(#327)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Migrate CompositionLocal snippets to m3 (#321) * Migrate Custom design system page to M3 (#325) * Migrate Custom design system page to M3 * Apply Spotless --------- Co-authored-by: riggaroo --------- Co-authored-by: Ben Trengrove Co-authored-by: Rebecca Franks Co-authored-by: riggaroo From a33c495dfdfa7120b324286b14a6d28ceb261d5f Mon Sep 17 00:00:00 2001 From: Alex Vanyo Date: Mon, 29 Jul 2024 11:00:18 +0100 Subject: [PATCH 40/49] Updating DeviceConfigurationOverride snippet comment (#232) (cherry picked from commit a84c80d425b31d72444a4d7157614899ee7df164) --- .../DeviceConfigurationOverrideSnippets.kt | 65 +++++++++++++++++++ gradle/libs.versions.toml | 26 ++++---- 2 files changed, 78 insertions(+), 13 deletions(-) create mode 100644 compose/snippets/src/androidTest/java/com/example/compose/snippets/deviceconfigurationoverride/DeviceConfigurationOverrideSnippets.kt diff --git a/compose/snippets/src/androidTest/java/com/example/compose/snippets/deviceconfigurationoverride/DeviceConfigurationOverrideSnippets.kt b/compose/snippets/src/androidTest/java/com/example/compose/snippets/deviceconfigurationoverride/DeviceConfigurationOverrideSnippets.kt new file mode 100644 index 00000000..fca68ad4 --- /dev/null +++ b/compose/snippets/src/androidTest/java/com/example/compose/snippets/deviceconfigurationoverride/DeviceConfigurationOverrideSnippets.kt @@ -0,0 +1,65 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.compose.snippets.deviceconfigurationoverride + +import androidx.compose.material3.Text +import androidx.compose.ui.test.DeviceConfigurationOverride +import androidx.compose.ui.test.FontScale +import androidx.compose.ui.test.FontWeightAdjustment +import androidx.compose.ui.test.ForcedSize +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.then +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.dp +import com.example.compose.snippets.interop.MyScreen +import org.junit.Ignore +import org.junit.Rule +import org.junit.Test + +class DeviceConfigurationOverrideSnippetsTest { + @get:Rule + val composeTestRule = createComposeRule() + + @Ignore("Snippet test") + @Test + fun forcedSize() { + // [START android_compose_deviceconfigurationoverride_forcedsize] + composeTestRule.setContent { + DeviceConfigurationOverride( + DeviceConfigurationOverride.ForcedSize(DpSize(1280.dp, 800.dp)) + ) { + MyScreen() // Will be rendered in the space for 1280dp by 800dp without clipping. + } + } + // [END android_compose_deviceconfigurationoverride_forcedsize] + } + + @Ignore("Snippet test") + @Test + fun then() { + // [START android_compose_deviceconfigurationoverride_then] + composeTestRule.setContent { + DeviceConfigurationOverride( + DeviceConfigurationOverride.FontScale(1.5f) then + DeviceConfigurationOverride.FontWeightAdjustment(200) + ) { + Text(text = "text with increased scale and weight") + } + } + // [END android_compose_deviceconfigurationoverride_then] + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b4ef5291..6dfba233 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,22 +1,22 @@ [versions] accompanist = "0.34.0" androidGradlePlugin = "8.4.2" -androidx-activity-compose = "1.9.1" +androidx-activity-compose = "1.9.2" androidx-appcompat = "1.7.0" -androidx-compose-bom = "2024.06.00" +androidx-compose-bom = "2024.09.00" androidx-compose-ui-test = "1.7.0-alpha08" androidx-constraintlayout = "2.1.4" androidx-constraintlayout-compose = "1.0.1" androidx-coordinator-layout = "1.2.0" androidx-corektx = "1.13.1" -androidx-emoji2-views = "1.4.0" -androidx-fragment-ktx = "1.8.2" +androidx-emoji2-views = "1.5.0" +androidx-fragment-ktx = "1.8.3" androidx-glance-appwidget = "1.1.0" -androidx-lifecycle-compose = "2.8.4" -androidx-lifecycle-runtime-compose = "2.8.4" -androidx-navigation = "2.8.0-rc01" -androidx-paging = "3.3.1" -androidx-test = "1.5.0" +androidx-lifecycle-compose = "2.8.5" +androidx-lifecycle-runtime-compose = "2.8.5" +androidx-navigation = "2.8.0" +androidx-paging = "3.3.2" +androidx-test = "1.6.1" androidx-test-espresso = "3.5.1" androidx-window = "1.3.0" androidxHiltNavigationCompose = "1.2.0" @@ -24,7 +24,7 @@ coil = "2.6.0" # @keep compileSdk = "34" coreSplashscreen = "1.0.1" -compose-latest = "1.7.0-beta06" +compose-latest = "1.7.0" coroutines = "1.7.3" google-maps = "18.2.0" gradle-versions = "0.51.0" @@ -37,8 +37,8 @@ kotlinxSerializationJson = "1.6.3" ksp = "1.8.0-1.0.9" maps-compose = "4.3.2" material = "1.4.0-beta01" -material3-adaptive = "1.0.0-rc01" -material3-adaptive-navigation-suite = "1.3.0-rc01" +material3-adaptive = "1.0.0" +material3-adaptive-navigation-suite = "1.3.0" media3 = "1.3.1" # @keep minSdk = "21" @@ -49,7 +49,7 @@ targetSdk = "34" version-catalog-update = "0.8.3" wearComposeFoundation = "1.3.1" wearComposeMaterial = "1.3.1" -composeUiTooling = "1.3.1" +composeUiTooling = "1.4.0" [libraries] accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" } From d40747f4798757ef1c5322e78472dad6701b5e96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 09:03:48 +0000 Subject: [PATCH 41/49] Bump actions/checkout from 3 to 4 (#222) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit 2f34f3b1f916f41d7c3b84286b24a9e1d57951f6) --- .github/workflows/apply_spotless.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/sync_main_latest.yml | 2 +- .github/workflows/update_deps.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/apply_spotless.yml b/.github/workflows/apply_spotless.yml index a63f272e..90724610 100644 --- a/.github/workflows/apply_spotless.yml +++ b/.github/workflows/apply_spotless.yml @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{ secrets.PAT || github.token }} fetch-depth: 0 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a27e800..4ace09b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ jobs: timeout-minutes: 30 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: token: ${{ secrets.PAT || github.token }} - name: set up Java 17 diff --git a/.github/workflows/sync_main_latest.yml b/.github/workflows/sync_main_latest.yml index a196b5da..f83c1a33 100644 --- a/.github/workflows/sync_main_latest.yml +++ b/.github/workflows/sync_main_latest.yml @@ -10,7 +10,7 @@ jobs: name: Syncing branches steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Merge main into latest run: git checkout latest && git merge main diff --git a/.github/workflows/update_deps.yml b/.github/workflows/update_deps.yml index 9f92a69b..d0191974 100644 --- a/.github/workflows/update_deps.yml +++ b/.github/workflows/update_deps.yml @@ -7,7 +7,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: set up JDK 17 uses: actions/setup-java@v3 with: From 89e3cfe1925dc1f7f0bee65a80e1842ac6403827 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Tue, 20 Feb 2024 13:18:24 +0000 Subject: [PATCH 42/49] Create dependabot.yml (#218) (cherry picked from commit db5ffc06e07c4830fbc362517680935b1ebd78c6) --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..0d08e261 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "github-actions" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" From a6199b5e898a7eca96fd8d8f88c3171882e63435 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 12:07:07 -0800 Subject: [PATCH 43/49] Bump stefanzweifel/git-auto-commit-action from 4 to 5 (#221) Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4 to 5. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4...v5) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit d8ef2dd19f25b74bdbbd5e78f96cdfb30be61a3c) --- .github/workflows/apply_spotless.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/apply_spotless.yml b/.github/workflows/apply_spotless.yml index 90724610..8618e388 100644 --- a/.github/workflows/apply_spotless.yml +++ b/.github/workflows/apply_spotless.yml @@ -45,7 +45,7 @@ jobs: run: ./gradlew :compose:spotlessApply --init-script gradle/init.gradle.kts --no-configuration-cache --stacktrace - name: Auto-commit if spotlessApply has changes - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: Apply Spotless From ac40734d4b7ece7de01956db153e52eafc4be4de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 12:06:44 -0800 Subject: [PATCH 44/49] Bump actions/setup-java from 2 to 4 (#220) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 2 to 4. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v2...v4) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit cea0c7d4d7e3157ab751870cce0212f3dff2700a) --- .github/workflows/apply_spotless.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/update_deps.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/apply_spotless.yml b/.github/workflows/apply_spotless.yml index 8618e388..db01dad5 100644 --- a/.github/workflows/apply_spotless.yml +++ b/.github/workflows/apply_spotless.yml @@ -36,7 +36,7 @@ jobs: fetch-depth: 0 - name: set up Java 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4ace09b7..8337b423 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: with: token: ${{ secrets.PAT || github.token }} - name: set up Java 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: '17' diff --git a/.github/workflows/update_deps.yml b/.github/workflows/update_deps.yml index d0191974..f02d4528 100644 --- a/.github/workflows/update_deps.yml +++ b/.github/workflows/update_deps.yml @@ -9,7 +9,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: 17 distribution: 'zulu' From 47579b86625fa818a01ddf2de4002272bc8e80d3 Mon Sep 17 00:00:00 2001 From: Chris Arriola Date: Thu, 29 Feb 2024 08:27:39 -0800 Subject: [PATCH 45/49] Set git config user for sync_main_latest workflow. (#230) * Set git config user for sync_main_latest workflow. * Update PR description. (cherry picked from commit ad9ffb0f36a9aaa35c57690430dca98f97c021d5) --- .github/workflows/sync_main_latest.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sync_main_latest.yml b/.github/workflows/sync_main_latest.yml index f83c1a33..6777c56c 100644 --- a/.github/workflows/sync_main_latest.yml +++ b/.github/workflows/sync_main_latest.yml @@ -12,6 +12,9 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Set git config user + run: git config user.email "compose-devrel-github-bot@google.com" && git config user.name "compose-devrel-github-bot" + - name: Merge main into latest run: git checkout latest && git merge main @@ -27,5 +30,5 @@ jobs: branch: bot-sync-main delete-branch: true title: '🤖 Sync main to latest' - body: Updated dependencies + body: 'Update `latest` with `main`' reviewers: ${{ github.actor }} From cbec137737755ae2a1849cebd0c6a006aec5c02b Mon Sep 17 00:00:00 2001 From: Chris Arriola Date: Mon, 26 Feb 2024 17:33:36 +0000 Subject: [PATCH 46/49] Fix merge --- .github/workflows/sync_main_latest.yml | 3 ++- .github/workflows/update_deps.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync_main_latest.yml b/.github/workflows/sync_main_latest.yml index 6777c56c..86676181 100644 --- a/.github/workflows/sync_main_latest.yml +++ b/.github/workflows/sync_main_latest.yml @@ -1,5 +1,6 @@ name: Sync main and latest on: + workflow_dispatch: push: branches: - main @@ -16,7 +17,7 @@ jobs: run: git config user.email "compose-devrel-github-bot@google.com" && git config user.name "compose-devrel-github-bot" - name: Merge main into latest - run: git checkout latest && git merge main + run: git fetch && git switch latest && git merge -s ours origin/main --allow-unrelated-histories - name: Create pull request id: cpr diff --git a/.github/workflows/update_deps.yml b/.github/workflows/update_deps.yml index f02d4528..ffe44b0e 100644 --- a/.github/workflows/update_deps.yml +++ b/.github/workflows/update_deps.yml @@ -19,7 +19,7 @@ jobs: run: ./gradlew versionCatalogUpdate - name: Create pull request id: cpr - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.PAT }} commit-message: 🤖 Update Dependencies From a0047891b53b8eef6d8c1063166255a28dd2b57f Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 6 Sep 2024 10:36:49 +0100 Subject: [PATCH 47/49] Fix merge --- .../android/compose/recomposehighlighter/MainActivity.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt b/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt index 3f7be75e..b4c0e9e1 100644 --- a/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt +++ b/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt @@ -26,6 +26,7 @@ import androidx.compose.material.Button import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -43,7 +44,7 @@ class MainActivity : ComponentActivity() { @Composable private fun Content() { - var counter by remember { mutableStateOf(0) } + var counter by remember { mutableIntStateOf(0) } Column( Modifier .fillMaxSize() From 113c7692a7db7b3710009c9a3b3161a23649c424 Mon Sep 17 00:00:00 2001 From: riggaroo Date: Fri, 6 Sep 2024 09:38:23 +0000 Subject: [PATCH 48/49] Apply Spotless --- .../example/android/compose/recomposehighlighter/MainActivity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt b/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt index b4c0e9e1..cd3540ab 100644 --- a/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt +++ b/compose/recomposehighlighter/src/main/java/com/example/android/compose/recomposehighlighter/MainActivity.kt @@ -27,7 +27,6 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf -import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier From f7f7cfefb4a5548a7cb1a1b8ec4683fb2bbd217a Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Fri, 6 Sep 2024 10:59:13 +0100 Subject: [PATCH 49/49] Fix merge --- .github/workflows/sync_main_latest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync_main_latest.yml b/.github/workflows/sync_main_latest.yml index 86676181..38c56bbb 100644 --- a/.github/workflows/sync_main_latest.yml +++ b/.github/workflows/sync_main_latest.yml @@ -21,7 +21,7 @@ jobs: - name: Create pull request id: cpr - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.PAT }} commit-message: 🤖 Sync main to latest