From 31b4de25dcfe883c3591790ebb1006c40a9c9add Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Wed, 2 Oct 2024 09:12:37 +0100 Subject: [PATCH 01/34] Added two snippets for showcasing how to do Masking and Clipping in Compose (#362) * Code snippet for Compose doc at https://developer.android.com/quick-guides/content/animate-text?hl=en (Animate text character-by-character). This commit slightly modifies (makes buildable in our repo) the existing code on the current DAC page. That code, in turn, was BNR's simplified version of Xoogler astamato's Medium article at https://medium.com/androiddevelopers/effective-state-management-for-textfield-in-compose-d6e5b070fbe5 * Code snippet for Compose doc at https://developer.android.com/quick-guides/content/animate-text?hl=en (Animate text character-by-character). This commit slightly modifies (makes buildable in our repo) the existing code on the current DAC page. That code, in turn, was BNR's simplified version of Xoogler astamato's Medium article at https://medium.com/androiddevelopers/effective-state-management-for-textfield-in-compose-d6e5b070fbe5 * Apply Spotless * Fix email input snippet * Migrate to use BasicSecureTextField. * Updated to use BasicSecureTextField. * Added clipping and faded edge examples * Apply Spotless * Clean up snippet * Clean up snippet --------- Co-authored-by: dmail Co-authored-by: thedmail Co-authored-by: riggaroo --- .../graphics/GraphicsModifiersSnippets.kt | 475 ++++++++++++------ 1 file changed, 331 insertions(+), 144 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/GraphicsModifiersSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/GraphicsModifiersSnippets.kt index ef00faec..0493012e 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/graphics/GraphicsModifiersSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/graphics/GraphicsModifiersSnippets.kt @@ -16,15 +16,26 @@ package com.example.compose.snippets.graphics +import androidx.compose.foundation.Canvas import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.gestures.detectDragGestures 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.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text @@ -42,21 +53,33 @@ import androidx.compose.ui.draw.drawWithCache import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.geometry.CornerRadius import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.geometry.Rect +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.geometry.center +import androidx.compose.ui.graphics.BlendMode import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.CompositingStrategy +import androidx.compose.ui.graphics.Path import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.TransformOrigin import androidx.compose.ui.graphics.drawscope.ContentDrawScope +import androidx.compose.ui.graphics.drawscope.DrawScope +import androidx.compose.ui.graphics.drawscope.Stroke +import androidx.compose.ui.graphics.drawscope.clipPath import androidx.compose.ui.graphics.drawscope.scale import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.TextStyle 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 kotlin.random.Random /* * Copyright 2022 The Android Open Source Project @@ -296,171 +319,170 @@ fun ModifierGraphicsLayerAlpha() { @Preview @Composable fun ModifierGraphicsLayerCompositingStrategy() { - /* Commented out until compositing Strategy is rolled out to production - // [START android_compose_graphics_modifiers_graphicsLayer_compositing_strategy] - - Image(painter = painterResource(id = R.drawable.dog), - contentDescription = "Dog", - contentScale = ContentScale.Crop, - modifier = Modifier - .size(120.dp) - .aspectRatio(1f) - .background( - Brush.linearGradient( - listOf( - Color(0xFFC5E1A5), - Color(0xFF80DEEA) - ) - ) - ) - .padding(8.dp) - .graphicsLayer { - compositingStrategy = CompositingStrategy.Offscreen - } - .drawWithCache { - val path = Path() - path.addOval( - Rect( - topLeft = Offset.Zero, - bottomRight = Offset(size.width, size.height) - ) - ) - onDrawWithContent { - clipPath(path) { - // this draws the actual image - if you don't call drawContent, it wont - // render anything - this@onDrawWithContent.drawContent() - } - val dotSize = size.width / 8f - // Clip a white border for the content - drawCircle( - Color.Black, - radius = dotSize, - center = Offset( - x = size.width - dotSize, - y = size.height - dotSize - ), - blendMode = BlendMode.Clear - ) - // draw the red circle indication - drawCircle( - Color(0xFFEF5350), radius = dotSize * 0.8f, - center = Offset( - x = size.width - dotSize, - y = size.height - dotSize - ) - ) - } - - } - ) - // [END android_compose_graphics_modifiers_graphicsLayer_compositing_strategy] - */ + // [START android_compose_graphics_modifiers_graphicsLayer_compositing_strategy] + + Image( + painter = painterResource(id = R.drawable.dog), + contentDescription = "Dog", + contentScale = ContentScale.Crop, + modifier = Modifier + .size(120.dp) + .aspectRatio(1f) + .background( + Brush.linearGradient( + listOf( + Color(0xFFC5E1A5), + Color(0xFF80DEEA) + ) + ) + ) + .padding(8.dp) + .graphicsLayer { + compositingStrategy = CompositingStrategy.Offscreen + } + .drawWithCache { + val path = Path() + path.addOval( + Rect( + topLeft = Offset.Zero, + bottomRight = Offset(size.width, size.height) + ) + ) + onDrawWithContent { + clipPath(path) { + // this draws the actual image - if you don't call drawContent, it wont + // render anything + this@onDrawWithContent.drawContent() + } + val dotSize = size.width / 8f + // Clip a white border for the content + drawCircle( + Color.Black, + radius = dotSize, + center = Offset( + x = size.width - dotSize, + y = size.height - dotSize + ), + blendMode = BlendMode.Clear + ) + // draw the red circle indication + drawCircle( + Color(0xFFEF5350), radius = dotSize * 0.8f, + center = Offset( + x = size.width - dotSize, + y = size.height - dotSize + ) + ) + } + } + ) + // [END android_compose_graphics_modifiers_graphicsLayer_compositing_strategy] } -/* Commented out until compositing Strategy is rolled out to production + @Preview // [START android_compose_graphics_modifier_compositing_strategy_differences] @Composable fun CompositingStrategyExamples() { - Column( - modifier = Modifier - .fillMaxSize() - .wrapContentSize(Alignment.Center) - ) { - /** Does not clip content even with a graphics layer usage here. By default, graphicsLayer - does not allocate + rasterize content into a separate layer but instead is used - for isolation. That is draw invalidations made outside of this graphicsLayer will not - re-record the drawing instructions in this composable as they have not changed **/ - Canvas( - modifier = Modifier - .graphicsLayer() - .size(100.dp) // Note size of 100 dp here - .border(2.dp, color = Color.Blue) - ) { - // ... and drawing a size of 200 dp here outside the bounds - drawRect(color = Color.Magenta, size = Size(200.dp.toPx(), 200.dp.toPx())) - } - - Spacer(modifier = Modifier.size(300.dp)) - - /** Clips content as alpha usage here creates an offscreen buffer to rasterize content - into first then draws to the original destination **/ - Canvas( - modifier = Modifier - // force to an offscreen buffer - .graphicsLayer(compositingStrategy = CompositingStrategy.Offscreen) - .size(100.dp) // Note size of 100 dp here - .border(2.dp, color = Color.Blue) - ) { - /** ... and drawing a size of 200 dp. However, because of the CompositingStrategy.Offscreen usage above, the - content gets clipped **/ - drawRect(color = Color.Red, size = Size(200.dp.toPx(), 200.dp.toPx())) - } - } + Column( + modifier = Modifier + .fillMaxSize() + .wrapContentSize(Alignment.Center) + ) { + // Does not clip content even with a graphics layer usage here. By default, graphicsLayer + // does not allocate + rasterize content into a separate layer but instead is used + // for isolation. That is draw invalidations made outside of this graphicsLayer will not + // re-record the drawing instructions in this composable as they have not changed + Canvas( + modifier = Modifier + .graphicsLayer() + .size(100.dp) // Note size of 100 dp here + .border(2.dp, color = Color.Blue) + ) { + // ... and drawing a size of 200 dp here outside the bounds + drawRect(color = Color.Magenta, size = Size(200.dp.toPx(), 200.dp.toPx())) + } + + Spacer(modifier = Modifier.size(300.dp)) + + /* Clips content as alpha usage here creates an offscreen buffer to rasterize content + into first then draws to the original destination */ + Canvas( + modifier = Modifier + // force to an offscreen buffer + .graphicsLayer(compositingStrategy = CompositingStrategy.Offscreen) + .size(100.dp) // Note size of 100 dp here + .border(2.dp, color = Color.Blue) + ) { + /* ... and drawing a size of 200 dp. However, because of the CompositingStrategy.Offscreen usage above, the + content gets clipped */ + drawRect(color = Color.Red, size = Size(200.dp.toPx(), 200.dp.toPx())) + } + } } // [END android_compose_graphics_modifier_compositing_strategy_differences] - */ -/* Commented out until compositing Strategy is rolled out to production // [START android_compose_graphics_modifier_compositing_strategy_modulate_alpha] @Preview @Composable -fun CompositingStratgey_ModulateAlpha() { - Column( - modifier = Modifier - .fillMaxSize() - .padding(32.dp) - ) { - // Base drawing, no alpha applied - Canvas( - modifier = Modifier.size(200.dp) - ) { - drawSquares() - } - - Spacer(modifier = Modifier.size(36.dp)) - - // Alpha 0.5f applied to whole composable - Canvas(modifier = Modifier - .size(200.dp) - .graphicsLayer { - alpha = 0.5f - }) { - drawSquares() - } - Spacer(modifier = Modifier.size(36.dp)) - - // 0.75f alpha applied to each draw call when using ModulateAlpha - Canvas(modifier = Modifier - .size(200.dp) - .graphicsLayer { - compositingStrategy = CompositingStrategy.ModulateAlpha - alpha = 0.75f - }) { - drawSquares() - } - } +fun CompositingStrategy_ModulateAlpha() { + Column( + modifier = Modifier + .fillMaxSize() + .padding(32.dp) + ) { + // Base drawing, no alpha applied + Canvas( + modifier = Modifier.size(200.dp) + ) { + drawSquares() + } + + Spacer(modifier = Modifier.size(36.dp)) + + // Alpha 0.5f applied to whole composable + Canvas( + modifier = Modifier + .size(200.dp) + .graphicsLayer { + alpha = 0.5f + } + ) { + drawSquares() + } + Spacer(modifier = Modifier.size(36.dp)) + + // 0.75f alpha applied to each draw call when using ModulateAlpha + Canvas( + modifier = Modifier + .size(200.dp) + .graphicsLayer { + compositingStrategy = CompositingStrategy.ModulateAlpha + alpha = 0.75f + } + ) { + drawSquares() + } + } } private fun DrawScope.drawSquares() { - val size = Size(100.dp.toPx(), 100.dp.toPx()) - drawRect(color = Red, size = size) - drawRect( - color = Purple, size = size, - topLeft = Offset(size.width / 4f, size.height / 4f) - ) - drawRect( - color = Yellow, size = size, - topLeft = Offset(size.width / 4f * 2f, size.height / 4f * 2f) - ) + val size = Size(100.dp.toPx(), 100.dp.toPx()) + drawRect(color = Red, size = size) + drawRect( + color = Purple, size = size, + topLeft = Offset(size.width / 4f, size.height / 4f) + ) + drawRect( + color = Yellow, size = size, + topLeft = Offset(size.width / 4f * 2f, size.height / 4f * 2f) + ) } val Purple = Color(0xFF7E57C2) val Yellow = Color(0xFFFFCA28) val Red = Color(0xFFEF5350) // [END android_compose_graphics_modifier_compositing_strategy_modulate_alpha] -*/ // [START android_compose_graphics_modifier_flipped] class FlippedModifier : DrawModifier { @@ -485,3 +507,168 @@ fun ModifierGraphicsFlippedUsage() { ) // [END android_compose_graphics_modifier_flipped_usage] } + +// [START android_compose_graphics_faded_edge_example] +@Composable +fun FadedEdgeBox(modifier: Modifier = Modifier, content: @Composable () -> Unit) { + Box( + modifier = modifier + .graphicsLayer(compositingStrategy = CompositingStrategy.Offscreen) + .drawWithContent { + drawContent() + drawRect( + brush = Brush.verticalGradient( + listOf(Color.Black, Color.Transparent) + ), + blendMode = BlendMode.DstIn + ) + } + ) { + content() + } +} +// [END android_compose_graphics_faded_edge_example] +@Preview +@Composable +private fun FadingLazyComments() { + FadedEdgeBox( + modifier = Modifier + .padding(32.dp) + .height(300.dp) + .fillMaxWidth() + ) { + LazyColumn { + items(listComments, key = { it.key }) { + ListCommentItem(it) + } + item { + Spacer(Modifier.height(100.dp)) + } + } + } +} + +@Composable +private fun ListCommentItem(it: Comment) { + Row(modifier = Modifier.padding(bottom = 8.dp)) { + val strokeWidthPx = with(LocalDensity.current) { + 2.dp.toPx() + } + Avatar(strokeWidth = strokeWidthPx, modifier = Modifier.size(48.dp)) { + Image( + painter = painterResource(id = it.avatar), + contentScale = ContentScale.Crop, + contentDescription = null + ) + } + Spacer(Modifier.width(6.dp)) + Text( + it.text, + fontSize = 20.sp, + modifier = Modifier.align(Alignment.CenterVertically) + ) + } +} + +data class Comment( + val avatar: Int, + val text: String, + val key: Int = Random.nextInt() +) + +val listComments = listOf( + Comment(R.drawable.dog, "Woof 🐶"), + Comment(R.drawable.froyo, "I love ice cream..."), + Comment(R.drawable.donut, "Mmmm delicious"), + Comment(R.drawable.cupcake, "I love cupcakes"), + Comment(R.drawable.gingerbread, "🍪🍪❤️"), + Comment(R.drawable.eclair, "Where do I get the recipe?"), + Comment(R.drawable.froyo, "🍦The ice cream is BEST"), +) + +// [START android_compose_graphics_stacked_clipped_avatars] +@Composable +fun Avatar( + strokeWidth: Float, + modifier: Modifier = Modifier, + content: @Composable () -> Unit +) { + val stroke = remember(strokeWidth) { + Stroke(width = strokeWidth) + } + Box( + modifier = modifier + .drawWithContent { + drawContent() + drawCircle( + Color.Black, + size.minDimension / 2, + size.center, + style = stroke, + blendMode = BlendMode.Clear + ) + } + .clip(CircleShape) + ) { + content() + } +} + +@Preview +@Composable +private fun StackedAvatars() { + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.linearGradient( + colors = listOf( + Color.Magenta.copy(alpha = 0.5f), + Color.Blue.copy(alpha = 0.5f) + ) + ) + ) + ) { + val size = 80.dp + val strokeWidth = 2.dp + val strokeWidthPx = with(LocalDensity.current) { + strokeWidth.toPx() + } + val sizeModifier = Modifier.size(size) + val avatars = listOf( + R.drawable.cupcake, + R.drawable.donut, + R.drawable.eclair, + R.drawable.froyo, + R.drawable.gingerbread, + R.drawable.dog + ) + val width = ((size / 2) + strokeWidth * 2) * (avatars.size + 1) + Box( + modifier = Modifier + .size(width, size) + .graphicsLayer { + // Use an offscreen buffer as underdraw protection when + // using blendmodes that clear destination pixels + compositingStrategy = CompositingStrategy.Offscreen + } + .align(Alignment.Center), + ) { + var offset = 0.dp + for (avatar in avatars) { + Avatar( + strokeWidth = strokeWidthPx, + modifier = sizeModifier.offset(offset) + ) { + Image( + painter = painterResource(id = avatar), + contentScale = ContentScale.Crop, + contentDescription = null + ) + } + offset += size / 2 + } + } + } +} +// [END android_compose_graphics_stacked_clipped_avatars] From d1e297bd4e81028e062a48527318d08c3a3e751b Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Thu, 3 Oct 2024 12:11:50 +0100 Subject: [PATCH 02/34] =?UTF-8?q?=F0=9F=A4=96=20Update=20Dependencies=20(#?= =?UTF-8?q?366)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b3b72fb4..6aed96f5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,20 +1,20 @@ [versions] accompanist = "0.36.0" -androidGradlePlugin = "8.6.1" +androidGradlePlugin = "8.7.0" androidx-activity-compose = "1.9.2" androidx-appcompat = "1.7.0" -androidx-compose-bom = "2024.09.02" +androidx-compose-bom = "2024.09.03" 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.5.0" -androidx-fragment-ktx = "1.8.3" +androidx-fragment-ktx = "1.8.4" androidx-glance-appwidget = "1.1.0" androidx-lifecycle-compose = "2.8.6" androidx-lifecycle-runtime-compose = "2.8.6" -androidx-navigation = "2.8.1" +androidx-navigation = "2.8.2" androidx-paging = "3.3.2" androidx-test = "1.6.1" androidx-test-espresso = "3.6.1" @@ -23,15 +23,15 @@ androidxHiltNavigationCompose = "1.2.0" coil = "2.7.0" # @keep compileSdk = "34" -compose-latest = "1.7.2" +compose-latest = "1.7.3" composeUiTooling = "1.4.0" coreSplashscreen = "1.0.1" -coroutines = "1.7.3" +coroutines = "1.9.0" glide = "1.0.0-beta01" google-maps = "19.0.0" gradle-versions = "0.51.0" hilt = "2.52" -horologist = "0.6.19" +horologist = "0.6.20" junit = "4.13.2" kotlin = "2.0.20" kotlinxSerializationJson = "1.7.3" @@ -94,7 +94,7 @@ androidx-glance-appwidget = { module = "androidx.glance:glance-appwidget", versi androidx-glance-material3 = { module = "androidx.glance:glance-material3", version.ref = "androidx-glance-appwidget" } androidx-graphics-shapes = "androidx.graphics:graphics-shapes:1.0.1" androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" } -androidx-lifecycle-runtime = "androidx.lifecycle:lifecycle-runtime-ktx:2.8.5" +androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle-runtime-compose" } androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle-runtime-compose" } androidx-lifecycle-viewModelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle-compose" } androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle-compose" } @@ -124,7 +124,7 @@ horologist-compose-material = { module = "com.google.android.horologist:horologi 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 = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0" +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } play-services-wearable = { module = "com.google.android.gms:play-services-wearable", version.ref = "playServicesWearable" } From 0c9024be7705d86edca458dc84f3e47e59996a4a Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Thu, 3 Oct 2024 13:13:13 +0100 Subject: [PATCH 03/34] Add Material Carousel (#363) * Add Carousel * Apply Spotless * add to components * Apply Spotless * Clean up landing screens, using Scaffold and list items. * Apply Spotless * Review comments --------- Co-authored-by: riggaroo --- .../compose/snippets/SnippetsActivity.kt | 2 + .../compose/snippets/components/Carousel.kt | 136 ++++++++++++++++++ .../snippets/components/ComponentsScreen.kt | 52 ++++--- .../compose/snippets/landing/LandingScreen.kt | 57 +++----- .../snippets/navigation/Destination.kt | 1 + 5 files changed, 195 insertions(+), 53 deletions(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/components/Carousel.kt 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 3979a110..357cf556 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 @@ -33,6 +33,7 @@ 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.CarouselExamples import com.example.compose.snippets.components.CheckboxExamples import com.example.compose.snippets.components.ChipExamples import com.example.compose.snippets.components.ComponentsScreen @@ -109,6 +110,7 @@ class SnippetsActivity : ComponentActivity() { TopComponentsDestination.PartialBottomSheet -> PartialBottomSheet() TopComponentsDestination.TimePickerExamples -> TimePickerExamples() TopComponentsDestination.DatePickerExamples -> DatePickerExamples() + TopComponentsDestination.CarouselExamples -> CarouselExamples() } } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Carousel.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Carousel.kt new file mode 100644 index 00000000..fb8a3177 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Carousel.kt @@ -0,0 +1,136 @@ +/* + * 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.components + +import androidx.annotation.DrawableRes +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.carousel.HorizontalMultiBrowseCarousel +import androidx.compose.material3.carousel.HorizontalUncontainedCarousel +import androidx.compose.material3.carousel.rememberCarouselState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +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 + +@OptIn(ExperimentalMaterial3Api::class) +@Preview +// [START android_compose_carousel_multi_browse_basic] +@Composable +fun CarouselExample_MultiBrowse() { + data class CarouselItem( + val id: Int, + @DrawableRes val imageResId: Int, + val contentDescription: String + ) + + val items = remember { + listOf( + CarouselItem(0, R.drawable.cupcake, "cupcake"), + CarouselItem(1, R.drawable.donut, "donut"), + CarouselItem(2, R.drawable.eclair, "eclair"), + CarouselItem(3, R.drawable.froyo, "froyo"), + CarouselItem(4, R.drawable.gingerbread, "gingerbread"), + ) + } + + HorizontalMultiBrowseCarousel( + state = rememberCarouselState { items.count() }, + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + .padding(top = 16.dp, bottom = 16.dp), + preferredItemWidth = 186.dp, + itemSpacing = 8.dp, + contentPadding = PaddingValues(horizontal = 16.dp) + ) { i -> + val item = items[i] + Image( + modifier = Modifier + .height(205.dp) + .maskClip(MaterialTheme.shapes.extraLarge), + painter = painterResource(id = item.imageResId), + contentDescription = item.contentDescription, + contentScale = ContentScale.Crop + ) + } +} +// [END android_compose_carousel_multi_browse_basic] + +@OptIn(ExperimentalMaterial3Api::class) +@Preview +// [START android_compose_carousel_uncontained_basic] +@Composable +fun CarouselExample() { + data class CarouselItem( + val id: Int, + @DrawableRes val imageResId: Int, + val contentDescription: String + ) + + val carouselItems = remember { + listOf( + CarouselItem(0, R.drawable.cupcake, "cupcake"), + CarouselItem(1, R.drawable.donut, "donut"), + CarouselItem(2, R.drawable.eclair, "eclair"), + CarouselItem(3, R.drawable.froyo, "froyo"), + CarouselItem(4, R.drawable.gingerbread, "gingerbread"), + ) + } + + HorizontalUncontainedCarousel( + state = rememberCarouselState { carouselItems.count() }, + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + .padding(top = 16.dp, bottom = 16.dp), + itemWidth = 186.dp, + itemSpacing = 8.dp, + contentPadding = PaddingValues(horizontal = 16.dp) + ) { i -> + val item = carouselItems[i] + Image( + modifier = Modifier + .height(205.dp) + .maskClip(MaterialTheme.shapes.extraLarge), + painter = painterResource(id = item.imageResId), + contentDescription = item.contentDescription, + contentScale = ContentScale.Crop + ) + } +} +// [END android_compose_carousel_uncontained_basic] + +@Preview +@Composable +fun CarouselExamples() { + Column { + CarouselExample() + CarouselExample_MultiBrowse() + } +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/ComponentsScreen.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/ComponentsScreen.kt index ce1bbae4..7f87a5c9 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/ComponentsScreen.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/ComponentsScreen.kt @@ -16,45 +16,59 @@ package com.example.compose.snippets.components +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.fillMaxSize 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.ExperimentalMaterial3Api +import androidx.compose.material3.ListItem +import androidx.compose.material3.Scaffold import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.example.compose.snippets.navigation.TopComponentsDestination +@OptIn(ExperimentalMaterial3Api::class) @Composable fun ComponentsScreen( navigate: (TopComponentsDestination) -> Unit ) { - LazyColumn( - modifier = Modifier - .padding(16.dp) - .fillMaxSize(), - verticalArrangement = Arrangement.spacedBy(8.dp), - horizontalAlignment = Alignment.CenterHorizontally, - ) { - items(TopComponentsDestination.entries) { destination -> - NavigationItem(destination) { - navigate( - destination - ) + Scaffold(topBar = { + TopAppBar(title = { + Text("Common Components") + }) + }, content = { padding -> + LazyColumn( + modifier = Modifier + .padding(padding) + .fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(8.dp), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + items(TopComponentsDestination.entries) { destination -> + NavigationItem(destination) { + navigate( + destination + ) + } } } - } + }) } @Composable fun NavigationItem(destination: TopComponentsDestination, onClick: () -> Unit) { - Button( - onClick = { onClick() } - ) { - Text(destination.title) - } + ListItem( + headlineContent = { + Text(destination.title) + }, + modifier = Modifier.clickable { + onClick() + } + ) } 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 79083bd3..6e6c8401 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 @@ -18,56 +18,45 @@ 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.HorizontalDivider +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ListItem +import androidx.compose.material3.Scaffold import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import com.example.compose.snippets.navigation.Destination +@OptIn(ExperimentalMaterial3Api::class) @Composable fun LandingScreen( navigate: (Destination) -> Unit ) { - Column( - modifier = Modifier - .padding(16.dp) - .fillMaxSize(), - verticalArrangement = Arrangement.spacedBy(24.dp), - ) { - Text( - modifier = Modifier.fillMaxWidth(), - style = TextStyle( - fontSize = 24.sp, - fontWeight = FontWeight.Bold, - textAlign = TextAlign.Center, - ), - text = "Android snippets", - ) - Text( - text = "Use the following buttons to view a selection of the snippets used in the Android documentation." - ) - NavigationItems { navigate(it) } + Scaffold( + topBar = { + TopAppBar(title = { + Text(text = "Android snippets",) + }) + } + ) { padding -> + NavigationItems(modifier = Modifier.padding(padding)) { navigate(it) } } } @Composable -fun NavigationItems(navigate: (Destination) -> Unit) { +fun NavigationItems( + modifier: Modifier = Modifier, + navigate: (Destination) -> Unit +) { LazyColumn( - modifier = Modifier + modifier = modifier .fillMaxSize(), verticalArrangement = Arrangement.spacedBy(8.dp), horizontalAlignment = Alignment.CenterHorizontally, @@ -84,14 +73,14 @@ fun NavigationItems(navigate: (Destination) -> Unit) { @Composable fun NavigationItem(destination: Destination, onClick: () -> Unit) { - Box( + ListItem( + headlineContent = { + Text(destination.title) + }, modifier = Modifier .heightIn(min = 48.dp) .clickable { onClick() } - ) { - Text(destination.title) - HorizontalDivider(modifier = Modifier.align(Alignment.BottomCenter)) - } + ) } 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 9e711050..20753d36 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 @@ -44,4 +44,5 @@ enum class TopComponentsDestination(val route: String, val title: String) { PartialBottomSheet("partialBottomSheets", "Partial Bottom Sheet"), TimePickerExamples("timePickerExamples", "Time Pickers"), DatePickerExamples("datePickerExamples", "Date Pickers"), + CarouselExamples("carouselExamples", "Carousel") } From 68fef6e953c5566cad2fb9ce37301a87cadc7c2f Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:34:20 +0100 Subject: [PATCH 04/34] Basic menu examples (#371) * basic menu examples * Make DropdownMenuWithDetails toggle expanded on click * Apply Spotless * Remove unneeded dependencies * Remove unneeded imports --------- Co-authored-by: jakeroseman --- .../compose/snippets/SnippetsActivity.kt | 2 + .../compose/snippets/components/Menus.kt | 214 ++++++++++++++++++ .../snippets/navigation/Destination.kt | 3 +- 3 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt 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 357cf556..645cd9e5 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 @@ -41,6 +41,7 @@ import com.example.compose.snippets.components.DatePickerExamples import com.example.compose.snippets.components.DialogExamples import com.example.compose.snippets.components.DividerExamples import com.example.compose.snippets.components.FloatingActionButtonExamples +import com.example.compose.snippets.components.MenusExamples import com.example.compose.snippets.components.PartialBottomSheet import com.example.compose.snippets.components.ProgressIndicatorExamples import com.example.compose.snippets.components.ScaffoldExample @@ -111,6 +112,7 @@ class SnippetsActivity : ComponentActivity() { TopComponentsDestination.TimePickerExamples -> TimePickerExamples() TopComponentsDestination.DatePickerExamples -> DatePickerExamples() TopComponentsDestination.CarouselExamples -> CarouselExamples() + TopComponentsDestination.MenusExample -> MenusExamples() } } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt new file mode 100644 index 00000000..c355f948 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt @@ -0,0 +1,214 @@ +/* + * 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.components + +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.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.Help +import androidx.compose.material.icons.automirrored.outlined.OpenInNew +import androidx.compose.material.icons.automirrored.outlined.Send +import androidx.compose.material.icons.filled.MoreVert +import androidx.compose.material.icons.outlined.Feedback +import androidx.compose.material.icons.outlined.Info +import androidx.compose.material.icons.outlined.Person +import androidx.compose.material.icons.outlined.Settings +import androidx.compose.material3.Button +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +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.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Composable +fun MenusExamples() { + var currentExample by remember { mutableStateOf<(@Composable () -> Unit)?>(null) } + + Box(modifier = Modifier.fillMaxSize()) { + currentExample?.let { + it() + FloatingActionButton( + onClick = { currentExample = null }, + modifier = Modifier + .align(Alignment.BottomEnd) + .padding(16.dp) + ) { + Text(text = "Close example", modifier = Modifier.padding(16.dp)) + } + return + } + + Column(modifier = Modifier.padding(16.dp)) { + Button(onClick = { currentExample = { MinimalDropdownMenu() } }) { + Text("Minimal dropdown menu") + } + Button(onClick = { currentExample = { LongBasicDropdownMenu() } }) { + Text("Dropdown menu with many items") + } + Button(onClick = { currentExample = { DropdownMenuWithDetails() } }) { + Text("Dropdown menu with sections and icons") + } + } + } +} + +// [START android_compose_components_minimaldropdownmenu] +@Composable +fun MinimalDropdownMenu() { + var expanded by remember { mutableStateOf(false) } + Box( + modifier = Modifier + .padding(16.dp) + ) { + IconButton(onClick = { expanded = !expanded }) { + Icon(Icons.Default.MoreVert, contentDescription = "More options") + } + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false } + ) { + DropdownMenuItem( + text = { Text("Option 1") }, + onClick = { /* Do something... */ } + ) + DropdownMenuItem( + text = { Text("Option 2") }, + onClick = { /* Do something... */ } + ) + } + } +} +// [END android_compose_components_minimaldropdownmenu] + +@Preview +@Composable +fun MinimalDropdownMenuPreview() { + MinimalDropdownMenu() +} + +// [START android_compose_components_longbasicdropdownmenu] +@Composable +fun LongBasicDropdownMenu() { + var expanded by remember { mutableStateOf(false) } + // Placeholder list of 100 strings for demonstration + val menuItemData = List(100) { "Option ${it + 1}" } + + Box( + modifier = Modifier + .padding(16.dp) + ) { + IconButton(onClick = { expanded = !expanded }) { + Icon(Icons.Default.MoreVert, contentDescription = "More options") + } + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false } + ) { + menuItemData.forEach { option -> + DropdownMenuItem( + text = { Text(option) }, + onClick = { /* Do something... */ } + ) + } + } + } +} +// [END android_compose_components_longbasicdropdownmenu] + +@Preview +@Composable +fun LongBasicDropdownMenuPreview() { + LongBasicDropdownMenu() +} + +// [START android_compose_components_dropdownmenuwithdetails] +@Composable +fun DropdownMenuWithDetails() { + var expanded by remember { mutableStateOf(false) } + + Box( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + IconButton(onClick = { expanded = !expanded }) { + Icon(Icons.Default.MoreVert, contentDescription = "More options") + } + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false } + ) { + // First section + DropdownMenuItem( + text = { Text("Profile") }, + leadingIcon = { Icon(Icons.Outlined.Person, contentDescription = null) }, + onClick = { /* Do something... */ } + ) + DropdownMenuItem( + text = { Text("Settings") }, + leadingIcon = { Icon(Icons.Outlined.Settings, contentDescription = null) }, + onClick = { /* Do something... */ } + ) + + HorizontalDivider() + + // Second section + DropdownMenuItem( + text = { Text("Send Feedback") }, + leadingIcon = { Icon(Icons.Outlined.Feedback, contentDescription = null) }, + trailingIcon = { Icon(Icons.AutoMirrored.Outlined.Send, contentDescription = null) }, + onClick = { /* Do something... */ } + ) + + HorizontalDivider() + + // Third section + DropdownMenuItem( + text = { Text("About") }, + leadingIcon = { Icon(Icons.Outlined.Info, contentDescription = null) }, + onClick = { /* Do something... */ } + ) + DropdownMenuItem( + text = { Text("Help") }, + leadingIcon = { Icon(Icons.AutoMirrored.Outlined.Help, contentDescription = null) }, + trailingIcon = { Icon(Icons.AutoMirrored.Outlined.OpenInNew, contentDescription = null) }, + onClick = { /* Do something... */ } + ) + } + } +} +// [END android_compose_components_dropdownmenuwithdetails] + +@Preview +@Composable +fun DropdownMenuWithDetailsPreview() { + DropdownMenuWithDetails() +} 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 20753d36..0bce08f0 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 @@ -44,5 +44,6 @@ enum class TopComponentsDestination(val route: String, val title: String) { PartialBottomSheet("partialBottomSheets", "Partial Bottom Sheet"), TimePickerExamples("timePickerExamples", "Time Pickers"), DatePickerExamples("datePickerExamples", "Date Pickers"), - CarouselExamples("carouselExamples", "Carousel") + CarouselExamples("carouselExamples", "Carousel"), + MenusExample("menusExamples", "Menus") } From fbfd07d9c17db10e628c84ec865d6628a8ae92c1 Mon Sep 17 00:00:00 2001 From: Jolanda Verhoef Date: Fri, 11 Oct 2024 13:14:46 +0100 Subject: [PATCH 05/34] Filter chip dropdown menu (#375) * Filter chip dropdown menu * Apply Spotless --- .../compose/snippets/components/Menus.kt | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt index c355f948..a3468a7c 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Menus.kt @@ -16,16 +16,26 @@ package com.example.compose.snippets.components +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.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.DirectionsBike +import androidx.compose.material.icons.automirrored.filled.DirectionsRun +import androidx.compose.material.icons.automirrored.filled.DirectionsWalk import androidx.compose.material.icons.automirrored.outlined.Help import androidx.compose.material.icons.automirrored.outlined.OpenInNew import androidx.compose.material.icons.automirrored.outlined.Send +import androidx.compose.material.icons.filled.ArrowDropDown +import androidx.compose.material.icons.filled.Check +import androidx.compose.material.icons.filled.Hiking import androidx.compose.material.icons.filled.MoreVert +import androidx.compose.material.icons.filled.Tune import androidx.compose.material.icons.outlined.Feedback import androidx.compose.material.icons.outlined.Info import androidx.compose.material.icons.outlined.Person @@ -33,6 +43,7 @@ import androidx.compose.material.icons.outlined.Settings import androidx.compose.material3.Button import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.FilterChip import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon @@ -76,6 +87,9 @@ fun MenusExamples() { Button(onClick = { currentExample = { DropdownMenuWithDetails() } }) { Text("Dropdown menu with sections and icons") } + Button(onClick = { currentExample = { DropdownFilter() } }) { + Text("Menu for applying a filter, attached to a filter chip") + } } } } @@ -212,3 +226,79 @@ fun DropdownMenuWithDetails() { fun DropdownMenuWithDetailsPreview() { DropdownMenuWithDetails() } + +@Composable +fun DropdownFilter(modifier: Modifier = Modifier) { + Row( + modifier = modifier + .padding(16.dp) + .wrapContentSize(unbounded = true), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Icon(Icons.Default.Tune, "Filters") + FilterChip(selected = false, onClick = { /*TODO*/ }, label = { Text("Time") }) + DropdownFilterChip() + FilterChip(selected = false, onClick = { /*TODO*/ }, label = { Text("Wheelchair accessible") }) + } +} + +// [START android_compose_components_dropdownfilterchip] +@Composable +fun DropdownFilterChip(modifier: Modifier = Modifier) { + var isDropdownExpanded by remember { mutableStateOf(false) } + var selectedChipText by remember { mutableStateOf(null) } + Box(modifier) { + FilterChip( + selected = selectedChipText != null, + onClick = { isDropdownExpanded = !isDropdownExpanded }, + label = { Text(if (selectedChipText == null) "Type" else "$selectedChipText") }, + leadingIcon = { if (selectedChipText != null) Icon(Icons.Default.Check, null) }, + trailingIcon = { Icon(Icons.Default.ArrowDropDown, null) }, + ) + DropdownMenu( + expanded = isDropdownExpanded, + onDismissRequest = { isDropdownExpanded = !isDropdownExpanded } + ) { + DropdownMenuItem( + text = { Text("Running") }, + leadingIcon = { Icon(Icons.AutoMirrored.Default.DirectionsRun, null) }, + onClick = { + selectedChipText = + if (selectedChipText == "Running") null else "Running" + } + ) + DropdownMenuItem( + text = { Text("Walking") }, + leadingIcon = { Icon(Icons.AutoMirrored.Default.DirectionsWalk, null) }, + onClick = { + selectedChipText = + if (selectedChipText == "Walking") null else "Walking" + } + ) + DropdownMenuItem( + text = { Text("Hiking") }, + leadingIcon = { Icon(Icons.Default.Hiking, null) }, + onClick = { + selectedChipText = + if (selectedChipText == "Hiking") null else "Hiking" + } + ) + DropdownMenuItem( + text = { Text("Cycling") }, + leadingIcon = { Icon(Icons.AutoMirrored.Default.DirectionsBike, null) }, + onClick = { + selectedChipText = + if (selectedChipText == "Cycling") null else "Cycling" + } + ) + } + } +} +// [END android_compose_components_dropdownfilterchip] + +@Preview +@Composable +private fun DropdownFilterPreview() { + DropdownFilter() +} From f67b8492ff5f850ba962102c7b5c65d83895bdd3 Mon Sep 17 00:00:00 2001 From: Jolanda Verhoef Date: Fri, 11 Oct 2024 14:56:55 +0100 Subject: [PATCH 06/34] Add example of date picker textfield opening picker dialog on click (#376) * Add example of date picker textfield opening picker dialog on click * Apply Spotless --- .../snippets/components/DatePickers.kt | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/DatePickers.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/DatePickers.kt index 650b969a..69219912 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/DatePickers.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/DatePickers.kt @@ -17,6 +17,9 @@ package com.example.compose.snippets.components import androidx.compose.foundation.background +import androidx.compose.foundation.gestures.awaitEachGesture +import androidx.compose.foundation.gestures.awaitFirstDown +import androidx.compose.foundation.gestures.waitForUpOrCancellation import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -49,12 +52,24 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow +import androidx.compose.ui.input.pointer.PointerEventPass +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Popup +import com.example.compose.snippets.touchinput.userinteractions.MyAppTheme import java.text.SimpleDateFormat import java.util.Date import java.util.Locale +@Preview +@Composable +private fun DatePickerPreview() { + MyAppTheme { + DatePickerExamples() + } +} + // [START android_compose_components_datepicker_examples] // [START_EXCLUDE] @Composable @@ -77,6 +92,9 @@ fun DatePickerExamples() { Text("Docked date picker:") DatePickerDocked() + Text("Open modal picker on click") + DatePickerFieldToModal() + Text("Modal date pickers:") Button(onClick = { showModal = true }) { Text("Show Modal Date Picker") @@ -259,6 +277,43 @@ fun DatePickerDocked() { } } +@Composable +fun DatePickerFieldToModal(modifier: Modifier = Modifier) { + var selectedDate by remember { mutableStateOf(null) } + var showModal by remember { mutableStateOf(false) } + + OutlinedTextField( + value = selectedDate?.let { convertMillisToDate(it) } ?: "", + onValueChange = { }, + label = { Text("DOB") }, + placeholder = { Text("MM/DD/YYYY") }, + trailingIcon = { + Icon(Icons.Default.DateRange, contentDescription = "Select date") + }, + modifier = modifier + .fillMaxWidth() + .pointerInput(selectedDate) { + awaitEachGesture { + // Modifier.clickable doesn't work for text fields, so we use Modifier.pointerInput + // in the Initial pass to observe events before the text field consumes them + // in the Main pass. + awaitFirstDown(pass = PointerEventPass.Initial) + val upEvent = waitForUpOrCancellation(pass = PointerEventPass.Initial) + if (upEvent != null) { + showModal = true + } + } + } + ) + + if (showModal) { + DatePickerModal( + onDateSelected = { selectedDate = it }, + onDismiss = { showModal = false } + ) + } +} + fun convertMillisToDate(millis: Long): String { val formatter = SimpleDateFormat("MM/dd/yyyy", Locale.getDefault()) return formatter.format(Date(millis)) From a0b94c02fb4043e2b4889e78a542d7562fbfd0e8 Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Fri, 11 Oct 2024 16:14:14 +0100 Subject: [PATCH 07/34] Add auto advance pager snippets (#377) * Add auto advance pager snippets * Apply Spotless --------- Co-authored-by: jakeroseman --- .../compose/snippets/SnippetsActivity.kt | 2 + .../compose/snippets/layouts/PagerSnippets.kt | 109 ++++++++++++++++++ .../snippets/navigation/Destination.kt | 3 +- 3 files changed, 113 insertions(+), 1 deletion(-) 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 645cd9e5..40d0a254 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 @@ -53,6 +53,7 @@ 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 +import com.example.compose.snippets.layouts.PagerExamples import com.example.compose.snippets.navigation.Destination import com.example.compose.snippets.navigation.TopComponentsDestination import com.example.compose.snippets.ui.theme.SnippetsTheme @@ -87,6 +88,7 @@ class SnippetsActivity : ComponentActivity() { } Destination.ShapesExamples -> ApplyPolygonAsClipImage() Destination.SharedElementExamples -> PlaceholderSizeAnimated_Demo() + Destination.PagerExamples -> PagerExamples() } } } 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 ec8e84cb..45361ef8 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 @@ -20,7 +20,12 @@ package com.example.compose.snippets.layouts import android.util.Log import androidx.compose.foundation.Image +import androidx.compose.foundation.LocalIndication import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.collectIsDraggedAsState +import androidx.compose.foundation.interaction.collectIsPressedAsState import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -50,6 +55,8 @@ import androidx.compose.material3.TabRow import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment @@ -58,6 +65,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.dp @@ -65,6 +73,7 @@ import androidx.compose.ui.util.lerp import coil.compose.rememberAsyncImagePainter import com.example.compose.snippets.util.rememberRandomSampleImageUrl import kotlin.math.absoluteValue +import kotlinx.coroutines.delay import kotlinx.coroutines.launch /* @@ -83,6 +92,18 @@ import kotlinx.coroutines.launch * limitations under the License. */ +@Composable +fun PagerExamples() { + AutoAdvancePager( + listOf( + Color.Red, + Color.Gray, + Color.Green, + Color.White + ) + ) +} + @Preview @Composable fun HorizontalPagerSample() { @@ -392,6 +413,94 @@ fun PagerIndicator() { } } +@Composable +fun AutoAdvancePager(pageItems: List, modifier: Modifier = Modifier) { + Box(modifier = Modifier.fillMaxSize()) { + val pagerState = rememberPagerState(pageCount = { pageItems.size }) + val pagerIsDragged by pagerState.interactionSource.collectIsDraggedAsState() + + val pageInteractionSource = remember { MutableInteractionSource() } + val pageIsPressed by pageInteractionSource.collectIsPressedAsState() + + // Stop auto-advancing when pager is dragged or one of the pages is pressed + val autoAdvance = !pagerIsDragged && !pageIsPressed + + if (autoAdvance) { + LaunchedEffect(pagerState, pageInteractionSource) { + while (true) { + delay(2000) + val nextPage = (pagerState.currentPage + 1) % pageItems.size + pagerState.animateScrollToPage(nextPage) + } + } + } + + HorizontalPager( + state = pagerState + ) { page -> + Text( + text = "Page: $page", + textAlign = TextAlign.Center, + modifier = modifier + .fillMaxSize() + .background(pageItems[page]) + .clickable( + interactionSource = pageInteractionSource, + indication = LocalIndication.current + ) { + // Handle page click + } + .wrapContentSize(align = Alignment.Center) + ) + } + + PagerIndicator(pageItems.size, pagerState.currentPage) + } +} + +@Preview +@Composable +private fun AutoAdvancePagerPreview() { + val pageItems: List = listOf( + Color.Red, + Color.Gray, + Color.Green, + Color.White + ) + AutoAdvancePager(pageItems = pageItems) +} + +@Composable +fun PagerIndicator(pageCount: Int, currentPageIndex: Int, modifier: Modifier = Modifier) { + Box(modifier = Modifier.fillMaxSize()) { + Row( + modifier = Modifier + .wrapContentHeight() + .fillMaxWidth() + .align(Alignment.BottomCenter) + .padding(bottom = 8.dp), + horizontalArrangement = Arrangement.Center + ) { + repeat(pageCount) { iteration -> + val color = if (currentPageIndex == iteration) Color.DarkGray else Color.LightGray + Box( + modifier = modifier + .padding(2.dp) + .clip(CircleShape) + .background(color) + .size(16.dp) + ) + } + } + } +} + +@Preview +@Composable +private fun PagerIndicatorPreview() { + PagerIndicator(pageCount = 4, currentPageIndex = 1) +} + // [START android_compose_pager_custom_page_size] private val threePagesPerViewport = object : PageSize { override fun Density.calculateMainAxisPageSize( 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 0bce08f0..70368d31 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,7 +23,8 @@ 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") + SharedElementExamples("sharedElement", "Shared elements"), + PagerExamples("pagerExamples", "Pager examples") } // Enum class for compose components navigation screen. From 591dfa5cc87e9b1ee7adc59006443e88d1c2098e Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Fri, 11 Oct 2024 16:39:40 +0100 Subject: [PATCH 08/34] Tooltip component examples (#373) * Tooltip component examples * Apply Spotless * Addressing PR comments * use LaunchedEffect to fix tooltip bug * Apply Spotless * Updated content descriptions --------- Co-authored-by: jakeroseman --- .../compose/snippets/SnippetsActivity.kt | 2 + .../compose/snippets/components/Tooltips.kt | 212 ++++++++++++++++++ .../snippets/navigation/Destination.kt | 3 +- 3 files changed, 216 insertions(+), 1 deletion(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt 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 40d0a254..c8aab798 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 @@ -48,6 +48,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.components.TimePickerExamples +import com.example.compose.snippets.components.TooltipExamples import com.example.compose.snippets.graphics.ApplyPolygonAsClipImage import com.example.compose.snippets.graphics.BitmapFromComposableFullSnippet import com.example.compose.snippets.graphics.BrushExamplesScreen @@ -115,6 +116,7 @@ class SnippetsActivity : ComponentActivity() { TopComponentsDestination.DatePickerExamples -> DatePickerExamples() TopComponentsDestination.CarouselExamples -> CarouselExamples() TopComponentsDestination.MenusExample -> MenusExamples() + TopComponentsDestination.TooltipExamples -> TooltipExamples() } } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt new file mode 100644 index 00000000..e43ac2d9 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt @@ -0,0 +1,212 @@ +/* + * 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.components + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Camera +import androidx.compose.material.icons.filled.Favorite +import androidx.compose.material.icons.filled.Info +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.PlainTooltip +import androidx.compose.material3.RichTooltip +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.TooltipBox +import androidx.compose.material3.TooltipDefaults +import androidx.compose.material3.TooltipState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +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.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.dp + +@Composable +fun TooltipExamples() { + Text( + "Long press an icon to see the tooltip.", + modifier = Modifier.fillMaxWidth().padding(16.dp), + textAlign = TextAlign.Center + ) + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxSize() + ) { + PlainTooltipExample() + RichTooltipExample() + AdvancedRichTooltipExample() + } +} + +@Preview +@Composable +private fun TooltipExamplesPreview() { + TooltipExamples() +} + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_plaintooltipexample] +@Composable +fun PlainTooltipExample( + modifier: Modifier = Modifier, + plainTooltipText: String = "Add to favorites" +) { + var tooltipState by remember { mutableStateOf(TooltipState()) } + TooltipBox( + modifier = modifier, + positionProvider = TooltipDefaults.rememberPlainTooltipPositionProvider(), + tooltip = { + PlainTooltip { Text(plainTooltipText) } + }, + state = tooltipState + ) { + IconButton(onClick = { /* Do something... */ }) { + Icon( + imageVector = Icons.Filled.Favorite, + contentDescription = "Add to favorites" + ) + } + } + + // Reset tooltipState after closing the tooltip. + LaunchedEffect(tooltipState.isVisible) { + if (!tooltipState.isVisible) { + tooltipState = TooltipState() + } + } +} + +// [END android_compose_components_plaintooltipexample] + +@Preview +@Composable +private fun PlainTooltipSamplePreview() { + PlainTooltipExample() +} + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_richtooltipexample] +@Composable +fun RichTooltipExample( + modifier: Modifier = Modifier, + richTooltipSubheadText: String = "Rich Tooltip", + richTooltipText: String = "Rich tooltips support multiple lines of informational text." +) { + var tooltipState by remember { mutableStateOf(TooltipState(isPersistent = true)) } + + TooltipBox( + modifier = modifier, + positionProvider = TooltipDefaults.rememberRichTooltipPositionProvider(), + tooltip = { + RichTooltip( + title = { Text(richTooltipSubheadText) } + ) { + Text(richTooltipText) + } + }, + state = tooltipState + ) { + IconButton(onClick = { /* Icon button's click event */ }) { + Icon( + imageVector = Icons.Filled.Info, + contentDescription = "Show more information" + ) + } + } + + // Reset tooltipState after closing the tooltip. + LaunchedEffect(tooltipState.isVisible) { + if (!tooltipState.isVisible) { + tooltipState = TooltipState(isPersistent = true) + } + } +} +// [END android_compose_components_richtooltipexample] + +@Preview +@Composable +private fun RichTooltipSamplePreview() { + RichTooltipExample() +} + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_advancedrichtooltipexample] +@Composable +fun AdvancedRichTooltipExample( + modifier: Modifier = Modifier, + richTooltipSubheadText: String = "Custom Rich Tooltip", + richTooltipText: String = "Rich tooltips support multiple lines of informational text.", + richTooltipActionText: String = "Dismiss" +) { + var tooltipState by remember { mutableStateOf(TooltipState(isPersistent = true)) } + + TooltipBox( + modifier = modifier, + positionProvider = TooltipDefaults.rememberRichTooltipPositionProvider(), + tooltip = { + RichTooltip( + title = { Text(richTooltipSubheadText) }, + action = { + Row { + TextButton(onClick = { tooltipState.dismiss() }) { + Text(richTooltipActionText) + } + } + }, + caretSize = DpSize(32.dp, 16.dp) + ) { + Text(richTooltipText) + } + }, + state = tooltipState + ) { + IconButton(onClick = { tooltipState.dismiss() }) { + Icon( + imageVector = Icons.Filled.Camera, + contentDescription = "Open camera" + ) + } + } + + // Reset tooltipState after closing the tooltip. + LaunchedEffect(tooltipState.isVisible) { + if (!tooltipState.isVisible) { + tooltipState = TooltipState(isPersistent = true) + } + } +} +// [END android_compose_components_advancedrichtooltipexample] + +@Preview +@Composable +private fun RichTooltipWithCustomCaretSamplePreview() { + AdvancedRichTooltipExample() +} 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 70368d31..189f473d 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 @@ -46,5 +46,6 @@ enum class TopComponentsDestination(val route: String, val title: String) { TimePickerExamples("timePickerExamples", "Time Pickers"), DatePickerExamples("datePickerExamples", "Date Pickers"), CarouselExamples("carouselExamples", "Carousel"), - MenusExample("menusExamples", "Menus") + MenusExample("menusExamples", "Menus"), + TooltipExamples("tooltipExamples", "Tooltips") } From 4baf47718fa0e5e7e0f153da3722be1216ad9b04 Mon Sep 17 00:00:00 2001 From: Jolanda Verhoef Date: Fri, 11 Oct 2024 19:57:31 +0100 Subject: [PATCH 09/34] Add pull to refresh snippets (#378) * Add pull to refresh snippets * Apply Spotless --- .../snippets/components/PullToRefreshBox.kt | 241 ++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/components/PullToRefreshBox.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/PullToRefreshBox.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/PullToRefreshBox.kt new file mode 100644 index 00000000..81280151 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/PullToRefreshBox.kt @@ -0,0 +1,241 @@ +/* + * 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.components + +import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.CloudDownload +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.ListItem +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.pulltorefresh.PullToRefreshBox +import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults +import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults.Indicator +import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults.PositionalThreshold +import androidx.compose.material3.pulltorefresh.PullToRefreshState +import androidx.compose.material3.pulltorefresh.pullToRefreshIndicator +import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState +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.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.example.compose.snippets.components.PullToRefreshIndicatorConstants.CROSSFADE_DURATION_MILLIS +import com.example.compose.snippets.components.PullToRefreshIndicatorConstants.SPINNER_SIZE +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + +private object PullToRefreshIndicatorConstants { + const val CROSSFADE_DURATION_MILLIS = 100 + val SPINNER_SIZE = 16.dp +} + +@Preview +@Composable +fun PullToRefreshBasicPreview() { + PullToRefreshStatefulWrapper { itemCount, isRefreshing, onRefresh -> + val items = List(itemCount) { "Item ${itemCount - it}" } + PullToRefreshBasicSample(items, isRefreshing, onRefresh) + } +} + +@Preview +@Composable +fun PullToRefreshCustomStylePreview() { + PullToRefreshStatefulWrapper { itemCount, isRefreshing, onRefresh -> + val items = List(itemCount) { "Item ${itemCount - it}" } + PullToRefreshCustomStyleSample(items, isRefreshing, onRefresh) + } +} + +@Preview +@Composable +fun PullToRefreshCustomIndicatorPreview() { + PullToRefreshStatefulWrapper { itemCount, isRefreshing, onRefresh -> + val items = List(itemCount) { "Item ${itemCount - it}" } + PullToRefreshCustomIndicatorSample(items, isRefreshing, onRefresh) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_pull_to_refresh_basic] +@Composable +fun PullToRefreshBasicSample( + items: List, + isRefreshing: Boolean, + onRefresh: () -> Unit, + modifier: Modifier = Modifier +) { + PullToRefreshBox( + isRefreshing = isRefreshing, + onRefresh = onRefresh, + modifier = modifier + ) { + LazyColumn(Modifier.fillMaxSize()) { + items(items) { + ListItem({ Text(text = it) }) + } + } + } +} +// [END android_compose_components_pull_to_refresh_basic] + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_pull_to_refresh_custom_style] +@Composable +fun PullToRefreshCustomStyleSample( + items: List, + isRefreshing: Boolean, + onRefresh: () -> Unit, + modifier: Modifier = Modifier +) { + val state = rememberPullToRefreshState() + + PullToRefreshBox( + isRefreshing = isRefreshing, + onRefresh = onRefresh, + modifier = modifier, + state = state, + indicator = { + Indicator( + modifier = Modifier.align(Alignment.TopCenter), + isRefreshing = isRefreshing, + containerColor = MaterialTheme.colorScheme.primaryContainer, + color = MaterialTheme.colorScheme.onPrimaryContainer, + state = state + ) + }, + ) { + LazyColumn(Modifier.fillMaxSize()) { + items(items) { + ListItem({ Text(text = it) }) + } + } + } +} +// [END android_compose_components_pull_to_refresh_custom_style] + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_pull_to_refresh_custom_indicator] +@Composable +fun PullToRefreshCustomIndicatorSample( + items: List, + isRefreshing: Boolean, + onRefresh: () -> Unit, + modifier: Modifier = Modifier +) { + val state = rememberPullToRefreshState() + + PullToRefreshBox( + isRefreshing = isRefreshing, + onRefresh = onRefresh, + modifier = modifier, + state = state, + indicator = { + MyCustomIndicator( + state = state, + isRefreshing = isRefreshing, + modifier = Modifier.align(Alignment.TopCenter) + ) + } + ) { + LazyColumn(Modifier.fillMaxSize()) { + items(items) { + ListItem({ Text(text = it) }) + } + } + } +} + +// [START_EXCLUDE] +@OptIn(ExperimentalMaterial3Api::class) +// [END_EXCLUDE] +@Composable +fun MyCustomIndicator( + state: PullToRefreshState, + isRefreshing: Boolean, + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier.pullToRefreshIndicator( + state = state, + isRefreshing = isRefreshing, + containerColor = PullToRefreshDefaults.containerColor, + threshold = PositionalThreshold + ), + contentAlignment = Alignment.Center + ) { + Crossfade( + targetState = isRefreshing, + animationSpec = tween(durationMillis = CROSSFADE_DURATION_MILLIS), + modifier = Modifier.align(Alignment.Center) + ) { refreshing -> + if (refreshing) { + CircularProgressIndicator(Modifier.size(SPINNER_SIZE)) + } else { + val distanceFraction = { state.distanceFraction.coerceIn(0f, 1f) } + Icon( + imageVector = Icons.Filled.CloudDownload, + contentDescription = "Refresh", + modifier = Modifier + .size(18.dp) + .graphicsLayer { + val progress = distanceFraction() + this.alpha = progress + this.scaleX = progress + this.scaleY = progress + } + ) + } + } + } +} +// [END android_compose_components_pull_to_refresh_custom_indicator] + +@Composable +fun PullToRefreshStatefulWrapper( + content: @Composable (itemCount: Int, isRefreshing: Boolean, onRefresh: () -> Unit) -> Unit +) { + var itemCount by remember { mutableIntStateOf(15) } + var isRefreshing by remember { mutableStateOf(false) } + val coroutineScope = rememberCoroutineScope() + val onRefresh: () -> Unit = { + isRefreshing = true + coroutineScope.launch { + delay(1500) + itemCount += 5 + isRefreshing = false + } + } + content(itemCount, isRefreshing, onRefresh) +} From 5545f3751aaf989770dd6b67b518e81c368444fd Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Mon, 14 Oct 2024 12:21:49 +0100 Subject: [PATCH 10/34] Remove LaunchedEffect workaround (#379) * Remove LaunchedEffect workaround for library bug * Apply Spotless * Changed single var to val --------- Co-authored-by: jakeroseman --- .../compose/snippets/components/Tooltips.kt | 35 +++---------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt index e43ac2d9..1b5d9ea0 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/Tooltips.kt @@ -34,12 +34,9 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TooltipBox import androidx.compose.material3.TooltipDefaults -import androidx.compose.material3.TooltipState +import androidx.compose.material3.rememberTooltipState import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect 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 @@ -79,14 +76,13 @@ fun PlainTooltipExample( modifier: Modifier = Modifier, plainTooltipText: String = "Add to favorites" ) { - var tooltipState by remember { mutableStateOf(TooltipState()) } TooltipBox( modifier = modifier, positionProvider = TooltipDefaults.rememberPlainTooltipPositionProvider(), tooltip = { PlainTooltip { Text(plainTooltipText) } }, - state = tooltipState + state = rememberTooltipState() ) { IconButton(onClick = { /* Do something... */ }) { Icon( @@ -95,13 +91,6 @@ fun PlainTooltipExample( ) } } - - // Reset tooltipState after closing the tooltip. - LaunchedEffect(tooltipState.isVisible) { - if (!tooltipState.isVisible) { - tooltipState = TooltipState() - } - } } // [END android_compose_components_plaintooltipexample] @@ -120,8 +109,6 @@ fun RichTooltipExample( richTooltipSubheadText: String = "Rich Tooltip", richTooltipText: String = "Rich tooltips support multiple lines of informational text." ) { - var tooltipState by remember { mutableStateOf(TooltipState(isPersistent = true)) } - TooltipBox( modifier = modifier, positionProvider = TooltipDefaults.rememberRichTooltipPositionProvider(), @@ -132,7 +119,7 @@ fun RichTooltipExample( Text(richTooltipText) } }, - state = tooltipState + state = rememberTooltipState() ) { IconButton(onClick = { /* Icon button's click event */ }) { Icon( @@ -141,13 +128,6 @@ fun RichTooltipExample( ) } } - - // Reset tooltipState after closing the tooltip. - LaunchedEffect(tooltipState.isVisible) { - if (!tooltipState.isVisible) { - tooltipState = TooltipState(isPersistent = true) - } - } } // [END android_compose_components_richtooltipexample] @@ -166,7 +146,7 @@ fun AdvancedRichTooltipExample( richTooltipText: String = "Rich tooltips support multiple lines of informational text.", richTooltipActionText: String = "Dismiss" ) { - var tooltipState by remember { mutableStateOf(TooltipState(isPersistent = true)) } + val tooltipState = rememberTooltipState() TooltipBox( modifier = modifier, @@ -195,13 +175,6 @@ fun AdvancedRichTooltipExample( ) } } - - // Reset tooltipState after closing the tooltip. - LaunchedEffect(tooltipState.isVisible) { - if (!tooltipState.isVisible) { - tooltipState = TooltipState(isPersistent = true) - } - } } // [END android_compose_components_advancedrichtooltipexample] From 90b8500ff3655f1559fcb6ea0476af6d5c277b19 Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Mon, 14 Oct 2024 19:05:17 +0100 Subject: [PATCH 11/34] Navigation drawer examples (#380) * Basic navigation drawer examples * Add previews * Fix merge issue * Apply Spotless * rearrange functions * Narrowing the examples to just the example with nested items * Apply Spotless * refactoring as dismissable drawer * Fixing imports * refactor, new region tags * Renaming functions * Apply Spotless * Add horizontal padding to the drawer content * Apply Spotless * Make drawer content scrollable to make it work on small screens / landscape --------- Co-authored-by: jakeroseman Co-authored-by: Jolanda Verhoef --- .../compose/snippets/SnippetsActivity.kt | 2 + .../snippets/components/NavigationDrawer.kt | 147 ++++++++++++++++++ .../snippets/navigation/Destination.kt | 3 +- 3 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/components/NavigationDrawer.kt 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 c8aab798..33e8c3dd 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 @@ -16,6 +16,7 @@ package com.example.compose.snippets +import NavigationDrawerExamples import android.os.Bundle import android.os.StrictMode import androidx.activity.ComponentActivity @@ -117,6 +118,7 @@ class SnippetsActivity : ComponentActivity() { TopComponentsDestination.CarouselExamples -> CarouselExamples() TopComponentsDestination.MenusExample -> MenusExamples() TopComponentsDestination.TooltipExamples -> TooltipExamples() + TopComponentsDestination.NavigationDrawerExamples -> NavigationDrawerExamples() } } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/NavigationDrawer.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/NavigationDrawer.kt new file mode 100644 index 00000000..993f1c99 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/NavigationDrawer.kt @@ -0,0 +1,147 @@ +/* + * 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.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.Help +import androidx.compose.material.icons.filled.Menu +import androidx.compose.material.icons.outlined.Settings +import androidx.compose.material3.DrawerValue +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.ModalDrawerSheet +import androidx.compose.material3.ModalNavigationDrawer +import androidx.compose.material3.NavigationDrawerItem +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.material3.rememberDrawerState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.launch + +@Composable +fun NavigationDrawerExamples() { + // Add more examples here in future if necessary. + + DetailedDrawerExample { innerPadding -> + Box(modifier = Modifier.padding(innerPadding)) { + Text( + "Swipe from left edge or use menu icon to open the dismissible drawer", + modifier = Modifier.padding(16.dp) + ) + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_detaileddrawerexample] +@Composable +fun DetailedDrawerExample( + content: @Composable (PaddingValues) -> Unit +) { + val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed) + val scope = rememberCoroutineScope() + + ModalNavigationDrawer( + drawerContent = { + ModalDrawerSheet { + Column( + modifier = Modifier.padding(horizontal = 16.dp) + .verticalScroll(rememberScrollState()) + ) { + Spacer(Modifier.height(12.dp)) + Text("Drawer Title", modifier = Modifier.padding(16.dp), style = MaterialTheme.typography.titleLarge) + HorizontalDivider() + + Text("Section 1", modifier = Modifier.padding(16.dp), style = MaterialTheme.typography.titleMedium) + NavigationDrawerItem( + label = { Text("Item 1") }, + selected = false, + onClick = { /* Handle click */ } + ) + NavigationDrawerItem( + label = { Text("Item 2") }, + selected = false, + onClick = { /* Handle click */ } + ) + + HorizontalDivider(modifier = Modifier.padding(vertical = 8.dp)) + + Text("Section 2", modifier = Modifier.padding(16.dp), style = MaterialTheme.typography.titleMedium) + NavigationDrawerItem( + label = { Text("Settings") }, + selected = false, + icon = { Icon(Icons.Outlined.Settings, contentDescription = null) }, + badge = { Text("20") }, // Placeholder + onClick = { /* Handle click */ } + ) + NavigationDrawerItem( + label = { Text("Help and feedback") }, + selected = false, + icon = { Icon(Icons.AutoMirrored.Outlined.Help, contentDescription = null) }, + onClick = { /* Handle click */ }, + ) + Spacer(Modifier.height(12.dp)) + } + } + }, + drawerState = drawerState + ) { + Scaffold( + topBar = { + TopAppBar( + title = { Text("Navigation Drawer Example") }, + navigationIcon = { + IconButton(onClick = { + scope.launch { + if (drawerState.isClosed) { + drawerState.open() + } else { + drawerState.close() + } + } + }) { + Icon(Icons.Default.Menu, contentDescription = "Menu") + } + } + ) + } + ) { innerPadding -> + content(innerPadding) + } + } +} +// [END android_compose_components_detaileddrawerexample] + +@Preview +@Composable +fun DetailedDrawerExamplePreview() { + NavigationDrawerExamples() +} 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 189f473d..f913923e 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 @@ -47,5 +47,6 @@ enum class TopComponentsDestination(val route: String, val title: String) { DatePickerExamples("datePickerExamples", "Date Pickers"), CarouselExamples("carouselExamples", "Carousel"), MenusExample("menusExamples", "Menus"), - TooltipExamples("tooltipExamples", "Tooltips") + TooltipExamples("tooltipExamples", "Tooltips"), + NavigationDrawerExamples("navigationDrawerExamples", "Navigation drawer") } From e9116f52fef14d6f76f257fd39c8f430fe9d2cbc Mon Sep 17 00:00:00 2001 From: "N. Shimizu" Date: Wed, 16 Oct 2024 12:29:54 +0900 Subject: [PATCH 12/34] Snippets for keyboard input (#368) * Add a sample code for Keyboard Shortcuts Helper * Add a sample code for keyboard actions * Fix the issue on casting a Context object into Activity --- .../keyboardinput/KeyboardShortcutsHelper.kt | 116 ++++++ .../touchinput/keyboardinput/commands.kt | 337 ++++++++++++++++++ 2 files changed, 453 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/KeyboardShortcutsHelper.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/commands.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/KeyboardShortcutsHelper.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/KeyboardShortcutsHelper.kt new file mode 100644 index 00000000..a7f21362 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/KeyboardShortcutsHelper.kt @@ -0,0 +1,116 @@ +/* + * 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.keyboardinput + +import android.app.Activity +import android.os.Build +import android.os.Bundle +import android.view.KeyEvent +import android.view.KeyboardShortcutGroup +import android.view.KeyboardShortcutInfo +import android.view.Menu +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.annotation.RequiresApi +import androidx.compose.material3.Button +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.ui.platform.LocalContext + +class MainActivity : ComponentActivity() { + // Activity codes such as overridden onStart method. + + @RequiresApi(Build.VERSION_CODES.N) + // [START android_compose_keyboard_shortcuts_helper] + override fun onProvideKeyboardShortcuts( + data: MutableList?, + menu: Menu?, + deviceId: Int + ) { + val shortcutGroup = + KeyboardShortcutGroup( + "Cursor movement", + listOf( + KeyboardShortcutInfo("Up", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON), + KeyboardShortcutInfo("Down", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON), + KeyboardShortcutInfo("Forward", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON), + KeyboardShortcutInfo("Backward", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON), + ) + ) + data?.add(shortcutGroup) + } + // [END android_compose_keyboard_shortcuts_helper] +} + +class AnotherActivity : ComponentActivity() { + + @RequiresApi(Build.VERSION_CODES.N) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContent { + MaterialTheme { + // [START android_compose_keyboard_shortcuts_helper_request] + val activity = LocalContext.current as? Activity + + Button( + onClick = { + activity?.requestShowKeyboardShortcuts() + } + ) { + Text(text = "Show keyboard shortcuts") + } + // [END android_compose_keyboard_shortcuts_helper_request] + } + } + } + + @RequiresApi(Build.VERSION_CODES.N) + // [START android_compose_keyboard_shortcuts_helper_with_groups] + override fun onProvideKeyboardShortcuts( + data: MutableList?, + menu: Menu?, + deviceId: Int + ) { + val cursorMovement = KeyboardShortcutGroup( + "Cursor movement", + listOf( + KeyboardShortcutInfo("Up", KeyEvent.KEYCODE_P, KeyEvent.META_CTRL_ON), + KeyboardShortcutInfo("Down", KeyEvent.KEYCODE_N, KeyEvent.META_CTRL_ON), + KeyboardShortcutInfo("Forward", KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON), + KeyboardShortcutInfo("Backward", KeyEvent.KEYCODE_B, KeyEvent.META_CTRL_ON), + ) + ) + + val messageEdit = KeyboardShortcutGroup( + "Message editing", + listOf( + KeyboardShortcutInfo("Select All", KeyEvent.KEYCODE_A, KeyEvent.META_CTRL_ON), + KeyboardShortcutInfo( + "Send a message", + KeyEvent.KEYCODE_ENTER, + KeyEvent.META_SHIFT_ON + ) + ) + ) + + data?.add(cursorMovement) + data?.add(messageEdit) + } + // [END android_compose_keyboard_shortcuts_helper_with_groups] +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/commands.kt b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/commands.kt new file mode 100644 index 00000000..d0c08c54 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/touchinput/keyboardinput/commands.kt @@ -0,0 +1,337 @@ +/* + * 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.keyboardinput + +import android.content.Context +import android.widget.Toast +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Card +import androidx.compose.material3.MaterialTheme +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 +import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.FocusDirection +import androidx.compose.ui.focus.onFocusEvent +import androidx.compose.ui.input.key.Key +import androidx.compose.ui.input.key.KeyEvent +import androidx.compose.ui.input.key.KeyEventType +import androidx.compose.ui.input.key.isAltPressed +import androidx.compose.ui.input.key.isCtrlPressed +import androidx.compose.ui.input.key.isMetaPressed +import androidx.compose.ui.input.key.isShiftPressed +import androidx.compose.ui.input.key.key +import androidx.compose.ui.input.key.onKeyEvent +import androidx.compose.ui.input.key.onPreviewKeyEvent +import androidx.compose.ui.input.key.type +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.unit.dp + +@Suppress("unused") +@Composable +fun CommandsScreen() { + val context = LocalContext.current + var playerState by rememberSaveable { mutableStateOf(false) } + + val doSomething = { + showToast(context, "Doing something") + } + + val doAnotherThing = { + showToast(context, "Doing another thing") + } + + val togglePlayPause = { + playerState = !playerState + val message = if (playerState) { + "Playing" + } else { + "Paused" + } + showToast(context, message) + } + + val actionC = { + showToast(context, "Action C") + } + + Column( + verticalArrangement = Arrangement.spacedBy(16.dp), + modifier = Modifier + .verticalScroll(rememberScrollState()) + .padding(8.dp) + ) { + KeyEvents(doSomething) + ModifierKeys(doSomething) + SpacebarAndEnterKeyTriggersClickEvents(togglePlayPause) + UnconsumedKeyEvents(doSomething, doAnotherThing, actionC) + PreviewKeyEvents() + InterceptKeyEvents( + doSomething, + { keyEvent -> + showToast(context, "onPreviewKeyEvent: ${keyEvent.key.keyCode}") + }, + { keyEvent -> + showToast(context, "onKeyEvent: ${keyEvent.key.keyCode}") + } + ) + } +} + +fun showToast(context: Context, message: String) { + val toast = Toast.makeText(context, message, Toast.LENGTH_SHORT) + toast.show() +} + +@Composable +private fun BoxWithFocusIndication( + modifier: Modifier = Modifier, + content: @Composable BoxScope.() -> Unit +) { + var isFocused by remember { mutableStateOf(false) } + val backgroundColor = if (isFocused) { + MaterialTheme.colorScheme.surfaceVariant + } else { + MaterialTheme.colorScheme.surface + } + Box( + modifier = modifier + .onFocusEvent { + isFocused = it.isFocused + } + .background(backgroundColor), + content = content + ) +} + +@Composable +private fun KeyEvents( + doSomething: () -> Unit, + modifier: Modifier = Modifier, +) { + BoxWithFocusIndication(modifier) { + // [START android_compose_touchinput_keyboardinput_keyevents] + Box( + modifier = Modifier + .onKeyEvent { + if ( + it.type == KeyEventType.KeyUp && + it.key == Key.S + ) { + doSomething() + true + } else { + false + } + } + .focusable() + ) { + Text("Press S key") + } + // [END android_compose_touchinput_keyboardinput_keyevents] + } +} + +@Composable +private fun ModifierKeys( + doSomething: () -> Unit, + modifier: Modifier = Modifier, +) { + BoxWithFocusIndication(modifier = modifier) { + // [START android_compose_touchinput_keyboardinput_modifierkeys] + Box( + modifier = Modifier + .focusable() + .onKeyEvent { + if ( + it.type == KeyEventType.KeyUp && + it.key == Key.S && + !it.isAltPressed && + !it.isCtrlPressed && + !it.isMetaPressed && + !it.isShiftPressed + ) { + doSomething() + true + } else { + false + } + } + ) { + Text("Press S key with a modifier key") + } + // [END android_compose_touchinput_keyboardinput_modifierkeys] + } +} + +@Composable +private fun SpacebarAndEnterKeyTriggersClickEvents( + togglePausePlay: () -> Unit, + modifier: Modifier = Modifier, +) { + BoxWithFocusIndication(modifier = modifier) { + // [START android_compose_touchinput_keyboardinput_spacebar] + MediaPlayer(modifier = Modifier.clickable { togglePausePlay() }) + // [END android_compose_touchinput_keyboardinput_spacebar] + } +} + +@Composable +private fun MediaPlayer( + modifier: Modifier = Modifier, +) { + Box( + modifier = modifier + .size(200.dp) + .background(MaterialTheme.colorScheme.primaryContainer) + ) +} + +@Composable +private fun UnconsumedKeyEvents( + actionA: () -> Unit, + actionB: () -> Unit, + actionC: () -> Unit, + modifier: Modifier = Modifier, +) { + BoxWithFocusIndication(modifier = modifier) { + // [START android_compose_touchinput_keyboardinput_unconsumedkeyevents] + OuterComponent( + modifier = Modifier.onKeyEvent { + when { + it.type == KeyEventType.KeyUp && it.key == Key.S -> { + actionB() // This function is never called. + true + } + + it.type == KeyEventType.KeyUp && it.key == Key.D -> { + actionC() + true + } + + else -> false + } + } + ) { + InnerComponent( + modifier = Modifier.onKeyEvent { + if (it.type == KeyEventType.KeyUp && it.key == Key.S) { + actionA() + true + } else { + false + } + } + ) + } + // [END android_compose_touchinput_keyboardinput_unconsumedkeyevents] + } +} + +@Composable +private fun OuterComponent( + modifier: Modifier = Modifier, + content: @Composable BoxScope.() -> Unit, +) = + Box(content = content, modifier = modifier.focusable()) + +@Composable +private fun InnerComponent( + modifier: Modifier = Modifier +) { + Card(modifier = modifier.focusable()) { + Text("Press S key or D key", modifier = Modifier.padding(16.dp)) + } +} + +@Composable +private fun PreviewKeyEvents() { + // [START android_compose_touchinput_keyboardinput_previewkeyevents] + val focusManager = LocalFocusManager.current + var textFieldValue by remember { mutableStateOf(TextFieldValue()) } + + TextField( + textFieldValue, + onValueChange = { + textFieldValue = it + }, + modifier = Modifier.onPreviewKeyEvent { + if (it.type == KeyEventType.KeyUp && it.key == Key.Tab) { + focusManager.moveFocus(FocusDirection.Next) + true + } else { + false + } + } + ) + // [END android_compose_touchinput_keyboardinput_previewkeyevents] +} + +@Composable +private fun InterceptKeyEvents( + previewSKey: () -> Unit, + actionForPreview: (KeyEvent) -> Unit, + actionForKeyEvent: (KeyEvent) -> Unit, + modifier: Modifier = Modifier, +) { + BoxWithFocusIndication(modifier = modifier) { + // [START android_compose_touchinput_keyboardinput_interceptevents] + Column( + modifier = Modifier.onPreviewKeyEvent { + if (it.key == Key.S) { + previewSKey() + true + } else { + false + } + } + ) { + Box( + modifier = Modifier + .focusable() + .onPreviewKeyEvent { + actionForPreview(it) + false + } + .onKeyEvent { + actionForKeyEvent(it) + true + } + ) { + Text("Press any key") + } + } + // [END android_compose_touchinput_keyboardinput_interceptevents] + } +} From 2af26d9016ff82b9f6b08a35a522c0d278a2b471 Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Wed, 16 Oct 2024 12:29:03 +0100 Subject: [PATCH 13/34] Snippet for animated sorted list with add/remove buttons. (#381) * Snippet for animated sorted list with add/remove buttons. * Apply Spotless * Simplify adding an item to displayedItems * Use ViewModel to correctly extract business logic from UI --------- Co-authored-by: jakeroseman Co-authored-by: Jolanda Verhoef --- .../snippets/lists/AnimatedOrderedList.kt | 217 ++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/lists/AnimatedOrderedList.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/lists/AnimatedOrderedList.kt b/compose/snippets/src/main/java/com/example/compose/snippets/lists/AnimatedOrderedList.kt new file mode 100644 index 00000000..4d60e66b --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/lists/AnimatedOrderedList.kt @@ -0,0 +1,217 @@ +/* + * 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.lists + +import android.util.Log +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.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +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.ListItem +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SegmentedButton +import androidx.compose.material3.SegmentedButtonDefaults +import androidx.compose.material3.SingleChoiceSegmentedButtonRow +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.lifecycle.ViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow + +class AnimatedOrderedListViewModel : ViewModel() { + private val _data = listOf("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten") + private val _displayedItems: MutableStateFlow> = MutableStateFlow(_data) + val displayedItems: StateFlow> = _displayedItems + + fun resetOrder() { + _displayedItems.value = _data.filter { it in _displayedItems.value } + } + + fun sortAlphabetically() { + _displayedItems.value = _displayedItems.value.sortedBy { it } + } + + fun sortByLength() { + _displayedItems.value = _displayedItems.value.sortedBy { it.length } + } + + fun addItem() { + // Avoid duplicate items + val remainingItems = _data.filter { it !in _displayedItems.value } + if (remainingItems.isNotEmpty()) _displayedItems.value += remainingItems.first() + } + + fun removeItem() { + _displayedItems.value = _displayedItems.value.dropLast(1) + } +} + +@Composable +fun AnimatedOrderedListScreen( + viewModel: AnimatedOrderedListViewModel, + modifier: Modifier = Modifier, +) { + val displayedItems by viewModel.displayedItems.collectAsStateWithLifecycle() + + ListAnimatedItemsExample( + displayedItems, + onAddItem = viewModel::addItem, + onRemoveItem = viewModel::removeItem, + resetOrder = viewModel::resetOrder, + onSortAlphabetically = viewModel::sortAlphabetically, + onSortByLength = viewModel::sortByLength, + modifier = modifier + ) +} + +// [START android_compose_layouts_list_listanimateditems] +@Composable +fun ListAnimatedItems( + items: List, + modifier: Modifier = Modifier +) { + LazyColumn(modifier) { + // Use a unique key per item, so that animations work as expected. + items(items, key = { it }) { + ListItem( + headlineContent = { Text(it) }, + modifier = Modifier + .animateItem( + // Optionally add custom animation specs + ) + .fillParentMaxWidth() + .padding(horizontal = 8.dp, vertical = 0.dp), + ) + } + } +} +// [END android_compose_layouts_list_listanimateditems] + +// [START android_compose_layouts_list_listanimateditemsexample] +@Composable +private fun ListAnimatedItemsExample( + data: List, + modifier: Modifier = Modifier, + onAddItem: () -> Unit = {}, + onRemoveItem: () -> Unit = {}, + resetOrder: () -> Unit = {}, + onSortAlphabetically: () -> Unit = {}, + onSortByLength: () -> Unit = {}, +) { + val canAddItem = data.size < 10 + val canRemoveItem = data.isNotEmpty() + + Scaffold(modifier) { paddingValues -> + Column( + modifier = Modifier + .padding(paddingValues) + .fillMaxSize() + ) { + // Buttons that change the value of displayedItems. + AddRemoveButtons(canAddItem, canRemoveItem, onAddItem, onRemoveItem) + OrderButtons(resetOrder, onSortAlphabetically, onSortByLength) + + // List that displays the values of displayedItems. + ListAnimatedItems(data) + } + } +} +// [END android_compose_layouts_list_listanimateditemsexample] + +// [START android_compose_layouts_list_addremovebuttons] +@Composable +private fun AddRemoveButtons( + canAddItem: Boolean, + canRemoveItem: Boolean, + onAddItem: () -> Unit, + onRemoveItem: () -> Unit +) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center + ) { + Button(enabled = canAddItem, onClick = onAddItem) { + Text("Add Item") + } + Spacer(modifier = Modifier.padding(25.dp)) + Button(enabled = canRemoveItem, onClick = onRemoveItem) { + Text("Delete Item") + } + } +} +// [END android_compose_layouts_list_addremovebuttons] + +// [START android_compose_layouts_list_orderbuttons] +@Composable +private fun OrderButtons( + resetOrder: () -> Unit, + orderAlphabetically: () -> Unit, + orderByLength: () -> Unit +) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center + ) { + var selectedIndex by remember { mutableIntStateOf(0) } + val options = listOf("Reset", "Alphabetical", "Length") + + SingleChoiceSegmentedButtonRow { + options.forEachIndexed { index, label -> + SegmentedButton( + shape = SegmentedButtonDefaults.itemShape( + index = index, + count = options.size + ), + onClick = { + Log.d("AnimatedOrderedList", "selectedIndex: $selectedIndex") + selectedIndex = index + when (options[selectedIndex]) { + "Reset" -> resetOrder() + "Alphabetical" -> orderAlphabetically() + "Length" -> orderByLength() + } + }, + selected = index == selectedIndex + ) { + Text(label) + } + } + } + } +} +// [END android_compose_layouts_list_orderbuttons] + +@Preview +@Composable +fun AnimatedOrderedListScreenPreview() { + val viewModel = remember { AnimatedOrderedListViewModel() } + AnimatedOrderedListScreen(viewModel) +} From 514653c318c747c557f70e32aad2cc7051d44115 Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Thu, 24 Oct 2024 15:25:33 +0100 Subject: [PATCH 14/34] Add basic segmented button examples (#383) * Add basic segmented button examples * Apply Spotless * Add region tags --------- Co-authored-by: jakeroseman --- .../compose/snippets/SnippetsActivity.kt | 2 + .../snippets/components/SegmentedButton.kt | 139 ++++++++++++++++++ .../snippets/navigation/Destination.kt | 3 +- 3 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/components/SegmentedButton.kt 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 33e8c3dd..f07c4613 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 @@ -46,6 +46,7 @@ import com.example.compose.snippets.components.MenusExamples import com.example.compose.snippets.components.PartialBottomSheet import com.example.compose.snippets.components.ProgressIndicatorExamples import com.example.compose.snippets.components.ScaffoldExample +import com.example.compose.snippets.components.SegmentedButtonExamples import com.example.compose.snippets.components.SliderExamples import com.example.compose.snippets.components.SwitchExamples import com.example.compose.snippets.components.TimePickerExamples @@ -119,6 +120,7 @@ class SnippetsActivity : ComponentActivity() { TopComponentsDestination.MenusExample -> MenusExamples() TopComponentsDestination.TooltipExamples -> TooltipExamples() TopComponentsDestination.NavigationDrawerExamples -> NavigationDrawerExamples() + TopComponentsDestination.SegmentedButtonExamples -> SegmentedButtonExamples() } } } diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/SegmentedButton.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/SegmentedButton.kt new file mode 100644 index 00000000..21fbd9d6 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/SegmentedButton.kt @@ -0,0 +1,139 @@ +/* + * 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.components + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.DirectionsWalk +import androidx.compose.material.icons.filled.DirectionsBus +import androidx.compose.material.icons.filled.DirectionsCar +import androidx.compose.material3.Icon +import androidx.compose.material3.MultiChoiceSegmentedButtonRow +import androidx.compose.material3.SegmentedButton +import androidx.compose.material3.SegmentedButtonDefaults +import androidx.compose.material3.SingleChoiceSegmentedButtonRow +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +@Composable +fun SegmentedButtonExamples() { + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + + ) { + SingleChoiceSegmentedButton() + Spacer(modifier = Modifier.height(16.dp)) + MultiChoiceSegmentedButton() + } +} + +// [START android_compose_components_singlechoicesegmentedbutton] +@Composable +fun SingleChoiceSegmentedButton(modifier: Modifier = Modifier) { + var selectedIndex by remember { mutableIntStateOf(0) } + val options = listOf("Day", "Month", "Week") + + SingleChoiceSegmentedButtonRow { + options.forEachIndexed { index, label -> + SegmentedButton( + shape = SegmentedButtonDefaults.itemShape( + index = index, + count = options.size + ), + onClick = { selectedIndex = index }, + selected = index == selectedIndex, + label = { Text(label) } + ) + } + } +} +// [END android_compose_components_singlechoicesegmentedbutton] + +@Preview +@Composable +private fun SingleChoiceSegmentedButtonPreview() { + SingleChoiceSegmentedButton() +} + +// [START android_compose_components_multichoicesegmentedbutton] +@Composable +fun MultiChoiceSegmentedButton(modifier: Modifier = Modifier) { + val selectedOptions = remember { + mutableStateListOf(false, false, false) + } + val options = listOf("Walk", "Ride", "Drive") + + MultiChoiceSegmentedButtonRow { + options.forEachIndexed { index, label -> + SegmentedButton( + shape = SegmentedButtonDefaults.itemShape( + index = index, + count = options.size + ), + checked = selectedOptions[index], + onCheckedChange = { + selectedOptions[index] = !selectedOptions[index] + }, + icon = { SegmentedButtonDefaults.Icon(selectedOptions[index]) }, + label = { + when (label) { + "Walk" -> Icon( + imageVector = + Icons.AutoMirrored.Filled.DirectionsWalk, + contentDescription = "Directions Walk" + ) + "Ride" -> Icon( + imageVector = + Icons.Default.DirectionsBus, + contentDescription = "Directions Bus" + ) + "Drive" -> Icon( + imageVector = + Icons.Default.DirectionsCar, + contentDescription = "Directions Car" + ) + } + } + ) + } + } +} +// [END android_compose_components_multichoicesegmentedbutton] + +@Preview +@Composable +private fun MultiChoiceSegmentedButtonPreview() { + MultiChoiceSegmentedButton() +} 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 f913923e..78396390 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 @@ -48,5 +48,6 @@ enum class TopComponentsDestination(val route: String, val title: String) { CarouselExamples("carouselExamples", "Carousel"), MenusExample("menusExamples", "Menus"), TooltipExamples("tooltipExamples", "Tooltips"), - NavigationDrawerExamples("navigationDrawerExamples", "Navigation drawer") + NavigationDrawerExamples("navigationDrawerExamples", "Navigation drawer"), + SegmentedButtonExamples("segmentedButtonExamples", "Segmented button") } From 5ccd4a83345cb23f46cd58924660fd23dbeacb94 Mon Sep 17 00:00:00 2001 From: Hoyt Summers Pittman Date: Mon, 28 Oct 2024 12:45:19 -0400 Subject: [PATCH 15/34] Adding views snippets module with Generated Preview samples (#384) * Adding views snippets module with Generated Preview samples * fixup --------- Co-authored-by: Summers Pittman --- gradle/libs.versions.toml | 2 +- settings.gradle.kts | 2 + views/.gitignore | 1 + views/README.md | 1 + views/build.gradle.kts | 56 ++++++++++++++ views/consumer-rules.pro | 0 views/proguard-rules.pro | 21 ++++++ views/src/main/AndroidManifest.xml | 20 +++++ .../views/appwidget/AppWidgetSnippets.kt | 73 +++++++++++++++++++ views/src/main/res/layout/widget_preview.xml | 24 ++++++ 10 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 views/.gitignore create mode 100644 views/README.md create mode 100644 views/build.gradle.kts create mode 100644 views/consumer-rules.pro create mode 100644 views/proguard-rules.pro create mode 100644 views/src/main/AndroidManifest.xml create mode 100644 views/src/main/java/com/example/example/snippet/views/appwidget/AppWidgetSnippets.kt create mode 100644 views/src/main/res/layout/widget_preview.xml diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6aed96f5..7d649bdc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ androidx-coordinator-layout = "1.2.0" androidx-corektx = "1.13.1" androidx-emoji2-views = "1.5.0" androidx-fragment-ktx = "1.8.4" -androidx-glance-appwidget = "1.1.0" +androidx-glance-appwidget = "1.1.1" androidx-lifecycle-compose = "2.8.6" androidx-lifecycle-runtime-compose = "2.8.6" androidx-navigation = "2.8.2" diff --git a/settings.gradle.kts b/settings.gradle.kts index f9ba4f22..22366383 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -27,4 +27,6 @@ include( ":kotlin", ":compose:snippets", ":wear", + ":views", ) + diff --git a/views/.gitignore b/views/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/views/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/views/README.md b/views/README.md new file mode 100644 index 00000000..a9256a20 --- /dev/null +++ b/views/README.md @@ -0,0 +1 @@ +This is a sample project that contains the code snippets seen on https://android.devsite.corp.google.com/develop/ui/views diff --git a/views/build.gradle.kts b/views/build.gradle.kts new file mode 100644 index 00000000..80ee4edc --- /dev/null +++ b/views/build.gradle.kts @@ -0,0 +1,56 @@ +//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. + +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) +} + +android { + namespace = "com.example.example.snippet.views" + compileSdk = 35 + + defaultConfig { + minSdk = 35 + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.google.android.material) + implementation(libs.androidx.glance.appwidget) + +} \ No newline at end of file diff --git a/views/consumer-rules.pro b/views/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/views/proguard-rules.pro b/views/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/views/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/views/src/main/AndroidManifest.xml b/views/src/main/AndroidManifest.xml new file mode 100644 index 00000000..65ba8e1e --- /dev/null +++ b/views/src/main/AndroidManifest.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/views/src/main/java/com/example/example/snippet/views/appwidget/AppWidgetSnippets.kt b/views/src/main/java/com/example/example/snippet/views/appwidget/AppWidgetSnippets.kt new file mode 100644 index 00000000..cd6ac485 --- /dev/null +++ b/views/src/main/java/com/example/example/snippet/views/appwidget/AppWidgetSnippets.kt @@ -0,0 +1,73 @@ +/* + * 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.example.snippet.views.appwidget + +import android.appwidget.AppWidgetManager +import android.appwidget.AppWidgetProvider +import android.appwidget.AppWidgetProviderInfo +import android.content.ComponentName +import android.content.Context +import android.widget.RemoteViews +import androidx.glance.GlanceId +import androidx.glance.appwidget.GlanceAppWidget +import androidx.glance.appwidget.compose +import com.example.example.snippet.views.R + +class ExampleAppWidget:GlanceAppWidget() { + override suspend fun provideGlance(context: Context, id: GlanceId) { + TODO("Not yet implemented") + } + +} + +private object GeneratedPreviewWithoutGlance { + + lateinit var appContext: Context + + fun MyWidgetPreview() { + // [START android_view_appwidget_generatedpreview_with_remoteview] + AppWidgetManager.getInstance(appContext).setWidgetPreview( + ComponentName( + appContext, + ExampleAppWidgetReceiver::class.java + ), + AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN, + RemoteViews("com.example", R.layout.widget_preview) + ) + // [END android_view_appwidget_generatedpreview_with_remoteview] + } + + suspend fun MyGlanceWidgetPreview() { + // [START android_view_appwidget_generatedpreview_with_glance] + AppWidgetManager.getInstance(appContext).setWidgetPreview( + ComponentName( + appContext, + ExampleAppWidgetReceiver::class.java + ), + AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN, + ExampleAppWidget().compose( + context = appContext + ), + ) + + // [END android_view_appwidget_generatedpreview_with_glance] + } +} + +class ExampleAppWidgetReceiver: AppWidgetProvider() { + +} diff --git a/views/src/main/res/layout/widget_preview.xml b/views/src/main/res/layout/widget_preview.xml new file mode 100644 index 00000000..c9f449bb --- /dev/null +++ b/views/src/main/res/layout/widget_preview.xml @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file From 195bd61f42e9ab554f99c9111cb1d619a459c78f Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Tue, 29 Oct 2024 16:04:22 +0000 Subject: [PATCH 16/34] Adding top bar multi selection examples (#387) * Adding top bar multi selection examples * Apply Spotless * Remember some vals --------- Co-authored-by: jakeroseman --- .../compose/snippets/components/AppBar.kt | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/AppBar.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/AppBar.kt index 8199b00c..354efe63 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/components/AppBar.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/AppBar.kt @@ -16,12 +16,17 @@ package com.example.compose.snippets.components +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.combinedClickable +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.PaddingValues 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.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.filled.Add @@ -30,6 +35,7 @@ import androidx.compose.material.icons.filled.Edit import androidx.compose.material.icons.filled.Image import androidx.compose.material.icons.filled.Menu import androidx.compose.material.icons.filled.Mic +import androidx.compose.material.icons.filled.Share import androidx.compose.material3.BottomAppBar import androidx.compose.material3.BottomAppBarDefaults import androidx.compose.material3.Button @@ -40,6 +46,7 @@ import androidx.compose.material3.FloatingActionButtonDefaults import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.LargeTopAppBar +import androidx.compose.material3.ListItem import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MediumTopAppBar import androidx.compose.material3.Scaffold @@ -52,6 +59,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue 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.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll @@ -76,6 +84,7 @@ fun AppBarExamples( "topBarMedium" -> MediumTopAppBarExample() "topBarLarge" -> LargeTopAppBarExample() "topBarNavigation" -> TopBarNavigationExample { navigateBack() } + "multiSelection" -> AppBarMultiSelectionExample() else -> AppBarOptions( toBottom = { selection = "bottomBar" }, toTopBarSmall = { selection = "topBar" }, @@ -83,6 +92,7 @@ fun AppBarExamples( toTopBarMedium = { selection = "topBarMedium" }, toTopBarLarge = { selection = "topBarLarge" }, toTopBarNavigation = { selection = "topBarNavigation" }, + toMultiSelection = { selection = "multiSelection" }, ) } } @@ -96,6 +106,7 @@ fun AppBarOptions( toTopBarMedium: () -> Unit, toTopBarLarge: () -> Unit, toTopBarNavigation: () -> Unit, + toMultiSelection: () -> Unit, ) { Column() { Button({ toBottom() }) { @@ -116,6 +127,9 @@ fun AppBarOptions( Button({ toTopBarNavigation() }) { Text("Top bar navigation example") } + Button({ toMultiSelection() }) { + Text("Top bar with multi selection list") + } } } @@ -382,3 +396,156 @@ fun ScrollContent(innerPadding: PaddingValues) { } } } + +@OptIn(ExperimentalMaterial3Api::class) +// [START android_compose_components_appbarselectionactions] +@Composable +fun AppBarSelectionActions( + selectedItems: Set, + modifier: Modifier = Modifier, +) { + val hasSelection = selectedItems.isNotEmpty() + val topBarText = if (hasSelection) { + "Selected ${selectedItems.size} items" + } else { + "List of items" + } + + TopAppBar( + title = { + Text(topBarText) + }, + colors = TopAppBarDefaults.topAppBarColors( + containerColor = MaterialTheme.colorScheme.primaryContainer, + titleContentColor = MaterialTheme.colorScheme.primary, + ), + actions = { + if (hasSelection) { + IconButton(onClick = { + /* click action */ + }) { + Icon( + imageVector = Icons.Filled.Share, + contentDescription = "Share items" + ) + } + } + }, + ) +} +// [END android_compose_components_appbarselectionactions] + +@Preview +@Composable +private fun AppBarSelectionActionsPreview() { + val selectedItems = setOf(1, 2, 3) + + AppBarSelectionActions(selectedItems) +} + +@OptIn(ExperimentalFoundationApi::class) +@Preview +// [START android_compose_components_appbarmultiselectionexample] +@Composable +private fun AppBarMultiSelectionExample( + modifier: Modifier = Modifier, +) { + val listItems by remember { mutableStateOf(listOf(1, 2, 3, 4, 5, 6)) } + var selectedItems by rememberSaveable { mutableStateOf(setOf()) } + + Scaffold( + topBar = { AppBarSelectionActions(selectedItems) } + ) { innerPadding -> + LazyColumn(contentPadding = innerPadding) { + itemsIndexed(listItems) { _, index -> + val isItemSelected = selectedItems.contains(index) + ListItemSelectable( + selected = isItemSelected, + Modifier + .combinedClickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = { + /* click action */ + }, + onLongClick = { + if (isItemSelected) selectedItems -= index else selectedItems += index + } + ) + ) + } + } + } +} +// [END android_compose_components_appbarmultiselectionexample] + +// [START android_compose_components_listitemselectable] +@Composable +fun ListItemSelectable( + selected: Boolean, + modifier: Modifier = Modifier +) { + Box(modifier = modifier) { + ListItem( + headlineContent = { Text("Long press to select or deselect item") }, + leadingContent = { + if (selected) { + Icon( + Icons.Filled.Check, + contentDescription = "Localized description", + ) + } + } + ) + } +} +// [END android_compose_components_listitemselectable] + +@Preview +@Composable +private fun ListItemSelectablePreview() { + ListItemSelectable(true) +} + +@OptIn(ExperimentalFoundationApi::class) +// [START android_compose_components_lazylistmultiselection +@Composable +fun LazyListMultiSelection( + listItems: List, + modifier: Modifier = Modifier, + contentPadding: PaddingValues = PaddingValues(0.dp), +) { + var selectedItems by rememberSaveable { mutableStateOf(setOf()) } + + LazyColumn(contentPadding = contentPadding) { + itemsIndexed(listItems) { _, index -> + val selected = selectedItems.contains(index) + ListItemSelectable( + selected = selected, + Modifier + .combinedClickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = { + /* click action */ + }, + onLongClick = { + if (selected) selectedItems -= index else selectedItems += index + } + ) + ) + } + } +} +// [END android_compose_components_lazylistmultiselection + +@Preview +@Composable +private fun LazyListMultiSelectionPreview() { + val listItems = listOf(1, 2, 3) + + LazyListMultiSelection( + listItems, + modifier = Modifier + ) +} From d081491af31dd87fcf4b657320e98ee9c3a67643 Mon Sep 17 00:00:00 2001 From: Chiara Chiappini Date: Thu, 31 Oct 2024 09:07:54 +0000 Subject: [PATCH 17/34] Include AppScaffold in navigation Snippet (#385) --- .../com/example/wear/snippets/navigation/Navigation.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wear/src/main/java/com/example/wear/snippets/navigation/Navigation.kt b/wear/src/main/java/com/example/wear/snippets/navigation/Navigation.kt index 5c7fbe06..42507078 100644 --- a/wear/src/main/java/com/example/wear/snippets/navigation/Navigation.kt +++ b/wear/src/main/java/com/example/wear/snippets/navigation/Navigation.kt @@ -47,8 +47,8 @@ import com.google.android.horologist.compose.rotaryinput.rotaryWithScroll @Composable fun navigation() { + // [START android_wear_navigation] AppScaffold { - // [START android_wear_navigation] val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, @@ -63,16 +63,20 @@ fun navigation() { MessageDetail(id = it.arguments?.getString("id")!!) } } - // [END android_wear_navigation] } + // [START_EXCLUDE] } @OptIn(ExperimentalHorologistApi::class) @Composable fun MessageDetail(id: String) { + // [END_EXCLUDE] + // .. Screen level content goes here val scrollState = rememberScrollState() ScreenScaffold(scrollState = scrollState) { + // Screen content goes here + // [END android_wear_navigation] val padding = ScalingLazyColumnDefaults.padding( first = ItemType.Text, last = ItemType.Text From 81c1a2a1d0cb80dd91576236d381ac8f464b30e3 Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Tue, 5 Nov 2024 14:42:17 +0000 Subject: [PATCH 18/34] Animate image size on scroll (#390) * Add animate image size on scroll example * Add simple comments and rename some variables * Apply Spotless * Add region tags --------- Co-authored-by: jakeroseman --- .../snippets/images/AnimateImageSnippets.kt | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/images/AnimateImageSnippets.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/images/AnimateImageSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/images/AnimateImageSnippets.kt new file mode 100644 index 00000000..2eab0220 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/images/AnimateImageSnippets.kt @@ -0,0 +1,118 @@ +/* + * 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.images + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf +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.geometry.Offset +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.graphics.painter.ColorPainter +import androidx.compose.ui.input.nestedscroll.NestedScrollConnection +import androidx.compose.ui.input.nestedscroll.NestedScrollSource +import androidx.compose.ui.input.nestedscroll.nestedScroll +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.unit.dp + +// [START android_compose_images_imageresizeonscrollexample] +@Composable +fun ImageResizeOnScrollExample( + modifier: Modifier = Modifier, + maxImageSize: Dp = 300.dp, + minImageSize: Dp = 100.dp +) { + var currentImageSize by remember { mutableStateOf(maxImageSize) } + var imageScale by remember { mutableFloatStateOf(1f) } + + val nestedScrollConnection = remember { + object : NestedScrollConnection { + override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset { + // Calculate the change in image size based on scroll delta + val delta = available.y + val newImageSize = currentImageSize + delta.dp + val previousImageSize = currentImageSize + + // Constrain the image size within the allowed bounds + currentImageSize = newImageSize.coerceIn(minImageSize, maxImageSize) + val consumed = currentImageSize - previousImageSize + + // Calculate the scale for the image + imageScale = currentImageSize / maxImageSize + + // Return the consumed scroll amount + return Offset(0f, consumed.value) + } + } + } + + Box(Modifier.nestedScroll(nestedScrollConnection)) { + LazyColumn( + Modifier + .fillMaxWidth() + .padding(15.dp) + .offset { + IntOffset(0, currentImageSize.roundToPx()) + } + ) { + // Placeholder list items + items(100, key = { it }) { + Text( + text = "Item: $it", + style = MaterialTheme.typography.bodyLarge + ) + } + } + + Image( + painter = ColorPainter(Color.Red), + contentDescription = "Red color image", + Modifier + .size(maxImageSize) + .align(Alignment.TopCenter) + .graphicsLayer { + scaleX = imageScale + scaleY = imageScale + // Center the image vertically as it scales + translationY = -(maxImageSize.toPx() - currentImageSize.toPx()) / 2f + } + ) + } +} +// [END android_compose_images_imageresizeonscrollexample] + +@Preview(showBackground = true) +@Composable +private fun ImageSizeOnScrollScreenPreview() { + ImageResizeOnScrollExample() +} From 1da22a01f7dbe6c610374e0db501827e8ada15df Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Tue, 5 Nov 2024 16:33:13 +0000 Subject: [PATCH 19/34] Add basic HTML text styling example (#389) * Add basic HTML text styling example * Apply Spotless * Add region tags --------- Co-authored-by: jakeroseman --- .../compose/snippets/text/HtmlStyling.kt | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt new file mode 100644 index 00000000..607fdf46 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/HtmlStyling.kt @@ -0,0 +1,62 @@ +/* + * 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.text + +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextLinkStyles +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.fromHtml +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.tooling.preview.Preview + +// [START android_compose_text_annotatedhtmlstringwithlink] +@Composable +fun AnnotatedHtmlStringWithLink( + modifier: Modifier = Modifier, + htmlText: String = """ +

Jetpack Compose

+

+ Build better apps faster with Jetpack Compose +

+ """.trimIndent() +) { + Text( + AnnotatedString.fromHtml( + htmlText, + linkStyles = TextLinkStyles( + style = SpanStyle( + textDecoration = TextDecoration.Underline, + fontStyle = FontStyle.Italic, + color = Color.Blue + ) + ) + ), + modifier + ) +} +// [END android_compose_text_annotatedhtmlstringwithlink] + +@Preview(showBackground = true) +@Composable +private fun AnnotatedHtmlStringWithLinkPreview() { + AnnotatedHtmlStringWithLink() +} From f595a0d317fd8aca6b33d4344bf87696cd45c481 Mon Sep 17 00:00:00 2001 From: compose-devrel-github-bot <118755852+compose-devrel-github-bot@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:47:07 +0000 Subject: [PATCH 20/34] =?UTF-8?q?=F0=9F=A4=96=20Update=20Dependencies=20(#?= =?UTF-8?q?391)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🤖 Update Dependencies * Update compileSdk to 35 --------- Co-authored-by: Jolanda Verhoef --- gradle/libs.versions.toml | 38 +++++++++++++++++++------------------- wear/build.gradle.kts | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7d649bdc..6d03c099 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,20 +1,20 @@ [versions] accompanist = "0.36.0" -androidGradlePlugin = "8.7.0" -androidx-activity-compose = "1.9.2" +androidGradlePlugin = "8.7.2" +androidx-activity-compose = "1.9.3" androidx-appcompat = "1.7.0" -androidx-compose-bom = "2024.09.03" +androidx-compose-bom = "2024.10.01" androidx-compose-ui-test = "1.7.0-alpha08" -androidx-constraintlayout = "2.1.4" -androidx-constraintlayout-compose = "1.0.1" +androidx-constraintlayout = "2.2.0" +androidx-constraintlayout-compose = "1.1.0" androidx-coordinator-layout = "1.2.0" -androidx-corektx = "1.13.1" +androidx-corektx = "1.15.0" androidx-emoji2-views = "1.5.0" -androidx-fragment-ktx = "1.8.4" +androidx-fragment-ktx = "1.8.5" androidx-glance-appwidget = "1.1.1" -androidx-lifecycle-compose = "2.8.6" -androidx-lifecycle-runtime-compose = "2.8.6" -androidx-navigation = "2.8.2" +androidx-lifecycle-compose = "2.8.7" +androidx-lifecycle-runtime-compose = "2.8.7" +androidx-navigation = "2.8.3" androidx-paging = "3.3.2" androidx-test = "1.6.1" androidx-test-espresso = "3.6.1" @@ -22,8 +22,8 @@ androidx-window = "1.3.0" androidxHiltNavigationCompose = "1.2.0" coil = "2.7.0" # @keep -compileSdk = "34" -compose-latest = "1.7.3" +compileSdk = "35" +compose-latest = "1.7.5" composeUiTooling = "1.4.0" coreSplashscreen = "1.0.1" coroutines = "1.9.0" @@ -33,13 +33,13 @@ gradle-versions = "0.51.0" hilt = "2.52" horologist = "0.6.20" junit = "4.13.2" -kotlin = "2.0.20" +kotlin = "2.0.21" kotlinxSerializationJson = "1.7.3" -ksp = "2.0.20-1.0.25" -maps-compose = "6.1.2" -material = "1.13.0-alpha06" +ksp = "2.0.21-1.0.26" +maps-compose = "6.2.0" +material = "1.13.0-alpha07" material3-adaptive = "1.0.0" -material3-adaptive-navigation-suite = "1.3.0" +material3-adaptive-navigation-suite = "1.3.1" media3 = "1.4.1" # @keep minSdk = "21" @@ -47,7 +47,7 @@ playServicesWearable = "18.2.0" recyclerview = "1.3.2" # @keep targetSdk = "34" -version-catalog-update = "0.8.4" +version-catalog-update = "0.8.5" wearComposeFoundation = "1.4.0" wearComposeMaterial = "1.4.0" @@ -108,7 +108,7 @@ androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-te androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" } androidx-test-runner = "androidx.test:runner:1.6.2" androidx-window-core = { module = "androidx.window:window-core", version.ref = "androidx-window" } -androidx-work-runtime-ktx = "androidx.work:work-runtime-ktx:2.9.1" +androidx-work-runtime-ktx = "androidx.work:work-runtime-ktx:2.10.0" coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } compose-foundation = { module = "androidx.wear.compose:compose-foundation", version.ref = "wearComposeFoundation" } compose-material = { module = "androidx.wear.compose:compose-material", version.ref = "wearComposeMaterial" } diff --git a/wear/build.gradle.kts b/wear/build.gradle.kts index 9725e539..13fff794 100644 --- a/wear/build.gradle.kts +++ b/wear/build.gradle.kts @@ -6,7 +6,7 @@ plugins { android { namespace = "com.example.wear" - compileSdk = 34 + compileSdk = 35 defaultConfig { applicationId = "com.example.wear" From f4e49876ac3fad90376323fa23b6991581d547c7 Mon Sep 17 00:00:00 2001 From: Tram Bui <62119967+trambui09@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:27:59 -0800 Subject: [PATCH 21/34] add in predictive back snippets for NavHost and predictive back handler (#394) * add in predictive back snippets * Apply Spotless * add in basic predictivebackhandler composable example * Apply Spotless --------- Co-authored-by: trambui09 --- .../predictiveback/PredictiveBackSnippets.kt | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt new file mode 100644 index 00000000..88ec5c4a --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt @@ -0,0 +1,190 @@ +/* + * 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.predictiveback + +import android.os.SystemClock +import androidx.activity.BackEventCompat +import androidx.activity.compose.PredictiveBackHandler +import androidx.compose.animation.EnterTransition +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.scaleOut +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.TransformOrigin +import androidx.compose.ui.input.pointer.util.VelocityTracker +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.dp +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import kotlin.coroutines.cancellation.CancellationException +import kotlinx.coroutines.flow.Flow + +@Composable +private fun PredictiveBackOverrideExit( + modifier: Modifier, +) { + val navController = rememberNavController() + + // [START android_compose_predictiveback_navhost] + NavHost( + navController = navController, + startDestination = "home", + popExitTransition = { + scaleOut( + targetScale = 0.9f, + transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) + ) + }, + popEnterTransition = { + EnterTransition.None + }, + modifier = modifier, + ) + // [END android_compose_predictiveback_navhost] + { + composable("home") { + HomeScreen( + modifier = modifier, + navController = navController, + ) + } + composable("settings") { + SettingsScreen( + modifier = modifier, + navController = navController, + ) + } + } +} + +@Composable +private fun HomeScreen( + modifier: Modifier = Modifier, + navController: NavHostController +) { +} + +@Composable +private fun SettingsScreen( + modifier: Modifier = Modifier, + navController: NavHostController +) { +} + +@Composable +private fun PredictiveBackHandlerBasicExample() { + + var boxScale by remember { mutableFloatStateOf(1F) } + + Box( + modifier = Modifier + .fillMaxSize(boxScale) + .background(Color.Blue) + ) + + // [START android_compose_predictivebackhandler_basic] + PredictiveBackHandler(true) { progress: Flow -> + // code for gesture back started + try { + progress.collect { backEvent -> + // code for progress + boxScale = 1F - (1F * backEvent.progress) + } + // code for completion + } catch (e: CancellationException) { + // code for cancellation + boxScale = 1F + } + } + // [END android_compose_predictivebackhandler_basic] +} + +@Composable +private fun PredictiveBackHandlerManualProgress() { + + Surface( + modifier = Modifier.fillMaxSize() + ) { + var drawerState by remember { + mutableStateOf(DrawerState.Closed) + } + + val translationX = remember { + Animatable(0f) + } + + val drawerWidth = with(LocalDensity.current) { + DrawerWidth.toPx() + } + translationX.updateBounds(0f, drawerWidth) + + val coroutineScope = rememberCoroutineScope() + + suspend fun closeDrawer(velocity: Float = 0f) { + translationX.animateTo(targetValue = 0f, initialVelocity = velocity) + drawerState = DrawerState.Closed + } + suspend fun openDrawer(velocity: Float = 0f) { + translationX.animateTo(targetValue = drawerWidth, initialVelocity = velocity) + drawerState = DrawerState.Open + } + + val velocityTracker = remember { + VelocityTracker() + } + + // [START android_compose_predictivebackhandler_manualprogress] + PredictiveBackHandler(drawerState == DrawerState.Open) { progress -> + try { + progress.collect { backEvent -> + val targetSize = (drawerWidth - (drawerWidth * backEvent.progress)) + translationX.snapTo(targetSize) + velocityTracker.addPosition( + SystemClock.uptimeMillis(), + Offset(backEvent.touchX, backEvent.touchY) + ) + } + closeDrawer(velocityTracker.calculateVelocity().x) + } catch (e: CancellationException) { + openDrawer(velocityTracker.calculateVelocity().x) + } + velocityTracker.resetTracking() + } + // [END android_compose_predictivebackhandler_manualprogress] + } +} + +private enum class DrawerState { + Open, + Closed +} + +private val DrawerWidth = 300.dp From 515b08ec9726abb958c04b3e62b6f9b2250438dc Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:53:52 +0000 Subject: [PATCH 22/34] Add region tags to auto advance pager examples (#398) --- .../com/example/compose/snippets/layouts/PagerSnippets.kt | 4 ++++ 1 file changed, 4 insertions(+) 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 45361ef8..89916336 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 @@ -413,6 +413,7 @@ fun PagerIndicator() { } } +// [START android_compose_autoadvancepager] @Composable fun AutoAdvancePager(pageItems: List, modifier: Modifier = Modifier) { Box(modifier = Modifier.fillMaxSize()) { @@ -457,6 +458,7 @@ fun AutoAdvancePager(pageItems: List, modifier: Modifier = Modifier) { PagerIndicator(pageItems.size, pagerState.currentPage) } } +// [END android_compose_autoadvancepager] @Preview @Composable @@ -470,6 +472,7 @@ private fun AutoAdvancePagerPreview() { AutoAdvancePager(pageItems = pageItems) } +// [START android_compose_pagerindicator] @Composable fun PagerIndicator(pageCount: Int, currentPageIndex: Int, modifier: Modifier = Modifier) { Box(modifier = Modifier.fillMaxSize()) { @@ -494,6 +497,7 @@ fun PagerIndicator(pageCount: Int, currentPageIndex: Int, modifier: Modifier = M } } } +// [END android_compose_pagerindicator] @Preview @Composable From fb654a90218dec10d36fc058b7350505f391bc30 Mon Sep 17 00:00:00 2001 From: Michael Stillwell Date: Wed, 27 Nov 2024 13:45:18 +0000 Subject: [PATCH 23/34] Init Wear Tiles snippets (#400) * Init Wear Tiles snippets * Add snippet markers * Add manifest snippet markers * Rename manifest snippet markers --- gradle/libs.versions.toml | 22 ++++++++ wear/build.gradle.kts | 11 ++++ wear/src/main/AndroidManifest.xml | 18 ++++++ .../com/example/wear/snippets/tile/Tile.kt | 53 ++++++++++++++++++ wear/src/main/res/drawable/tile_preview.png | Bin 0 -> 7335 bytes wear/src/main/res/values/strings.xml | 2 + 6 files changed, 106 insertions(+) create mode 100644 wear/src/main/java/com/example/wear/snippets/tile/Tile.kt create mode 100644 wear/src/main/res/drawable/tile_preview.png diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6d03c099..6c83d9d7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,6 +30,7 @@ coroutines = "1.9.0" glide = "1.0.0-beta01" google-maps = "19.0.0" gradle-versions = "0.51.0" +guava = "33.2.1-android" hilt = "2.52" horologist = "0.6.20" junit = "4.13.2" @@ -44,12 +45,22 @@ media3 = "1.4.1" # @keep minSdk = "21" playServicesWearable = "18.2.0" +protolayout = "1.3.0-alpha04" +protolayoutExpression = "1.3.0-alpha04" +protolayoutMaterial = "1.3.0-alpha04" recyclerview = "1.3.2" # @keep targetSdk = "34" +tiles = "1.5.0-alpha04" +tilesRenderer = "1.5.0-alpha04" +tilesTesting = "1.5.0-alpha04" +tilesTooling = "1.5.0-alpha04" +tilesToolingPreview = "1.5.0-alpha04" version-catalog-update = "0.8.5" +wear = "1.3.0" wearComposeFoundation = "1.4.0" wearComposeMaterial = "1.4.0" +wearToolingPreview = "1.0.0" [libraries] accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" } @@ -103,10 +114,20 @@ androidx-media3-common = { module = "androidx.media3:media3-common", version.ref androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" } androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" } androidx-paging-compose = { module = "androidx.paging:paging-compose", version.ref = "androidx-paging" } +androidx-protolayout = { module = "androidx.wear.protolayout:protolayout", version.ref = "protolayout" } +androidx-protolayout-expression = { module = "androidx.wear.protolayout:protolayout-expression", version.ref = "protolayoutExpression" } +androidx-protolayout-material = { module = "androidx.wear.protolayout:protolayout-material", version.ref = "protolayoutMaterial" } androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" } androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test" } androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" } androidx-test-runner = "androidx.test:runner:1.6.2" +androidx-tiles = { module = "androidx.wear.tiles:tiles", version.ref = "tiles" } +androidx-tiles-renderer = { module = "androidx.wear.tiles:tiles-renderer", version.ref = "tilesRenderer" } +androidx-tiles-testing = { module = "androidx.wear.tiles:tiles-testing", version.ref = "tilesTesting" } +androidx-tiles-tooling = { module = "androidx.wear.tiles:tiles-tooling", version.ref = "tilesTooling" } +androidx-tiles-tooling-preview = { module = "androidx.wear.tiles:tiles-tooling-preview", version.ref = "tilesToolingPreview" } +androidx-wear = { module = "androidx.wear:wear", version.ref = "wear" } +androidx-wear-tooling-preview = { module = "androidx.wear:wear-tooling-preview", version.ref = "wearToolingPreview" } androidx-window-core = { module = "androidx.window:window-core", version.ref = "androidx-window" } androidx-work-runtime-ktx = "androidx.work:work-runtime-ktx:2.10.0" coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } @@ -117,6 +138,7 @@ glide-compose = { module = "com.github.bumptech.glide:compose", version.ref = "g google-android-material = { module = "com.google.android.material:material", version.ref = "material" } googlemaps-compose = { module = "com.google.maps.android:maps-compose", version.ref = "maps-compose" } googlemaps-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "google-maps" } +guava = { module = "com.google.guava:guava", version.ref = "guava" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } horologist-compose-layout = { module = "com.google.android.horologist:horologist-compose-layout", version.ref = "horologist" } diff --git a/wear/build.gradle.kts b/wear/build.gradle.kts index 13fff794..154e7d37 100644 --- a/wear/build.gradle.kts +++ b/wear/build.gradle.kts @@ -55,6 +55,17 @@ dependencies { implementation(libs.compose.ui.tooling) implementation(libs.play.services.wearable) + implementation(libs.androidx.tiles) + implementation(libs.androidx.wear) + implementation(libs.androidx.protolayout) + implementation(libs.androidx.protolayout.material) + implementation(libs.androidx.protolayout.expression) + debugImplementation(libs.androidx.tiles.renderer) + testImplementation(libs.androidx.tiles.testing) + implementation(libs.androidx.wear.tooling.preview) + implementation(libs.androidx.tiles.tooling.preview) + debugImplementation(libs.androidx.tiles.tooling) + implementation(libs.guava) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.tooling.preview) diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml index f0d2328e..84c4785a 100644 --- a/wear/src/main/AndroidManifest.xml +++ b/wear/src/main/AndroidManifest.xml @@ -34,6 +34,24 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/wear/src/main/java/com/example/wear/snippets/tile/Tile.kt b/wear/src/main/java/com/example/wear/snippets/tile/Tile.kt new file mode 100644 index 00000000..74a29483 --- /dev/null +++ b/wear/src/main/java/com/example/wear/snippets/tile/Tile.kt @@ -0,0 +1,53 @@ +/* + * 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.wear.snippets.tile + +import androidx.wear.protolayout.ColorBuilders.argb +import androidx.wear.protolayout.ResourceBuilders.Resources +import androidx.wear.protolayout.TimelineBuilders.Timeline +import androidx.wear.protolayout.material.Text +import androidx.wear.protolayout.material.Typography +import androidx.wear.tiles.RequestBuilders +import androidx.wear.tiles.RequestBuilders.ResourcesRequest +import androidx.wear.tiles.TileBuilders.Tile +import androidx.wear.tiles.TileService +import com.google.common.util.concurrent.Futures + +private const val RESOURCES_VERSION = "1" + +// [START android_wear_tile_mytileservice] +class MyTileService : TileService() { + + override fun onTileRequest(requestParams: RequestBuilders.TileRequest) = + Futures.immediateFuture(Tile.Builder() + .setResourcesVersion(RESOURCES_VERSION) + .setTileTimeline( + Timeline.fromLayoutElement( + Text.Builder(this, "Hello World!") + .setTypography(Typography.TYPOGRAPHY_BODY1) + .setColor(argb(0xFFFFFFFF.toInt())) + .build())) + .build()) + + override fun onTileResourcesRequest(requestParams: ResourcesRequest) = + Futures.immediateFuture(Resources.Builder() + .setVersion(RESOURCES_VERSION) + .build() + ) + +} +// [END android_wear_tile_mytileservice] \ No newline at end of file diff --git a/wear/src/main/res/drawable/tile_preview.png b/wear/src/main/res/drawable/tile_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a254a16c2d32f4b8df60587fd240228e1f0505 GIT binary patch literal 7335 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 Input
Voice Text Entry Message List + Hello Tile + Hello Tile Description \ No newline at end of file From c699e70b7ad6df9e7982424c6e91bc4fc27f86ca Mon Sep 17 00:00:00 2001 From: Jolanda Verhoef Date: Thu, 28 Nov 2024 14:08:20 +0000 Subject: [PATCH 24/34] Create misc module, add broadcast receiver snippets (#397) * Create misc module, add broadcast receiver snippets * Apply Spotless --- .github/workflows/apply_spotless.yml | 11 +- .github/workflows/build.yml | 2 + misc/.gitignore | 1 + misc/build.gradle.kts | 72 +++++ {shared => misc}/proguard-rules.pro | 0 misc/src/main/AndroidManifest.xml | 50 ++++ .../BroadcastReceiverJavaSnippets.java | 120 ++++++++ .../snippets/BroadcastReceiverSnippets.kt | 272 ++++++++++++++++++ .../com/example/snippets/DataRepository.kt | 33 +++ .../java/com/example/snippets/MainActivity.kt | 66 +++++ .../com/example/snippets/MyApplication.kt | 23 ++ .../snippets/navigation/Destination.kt | 22 ++ .../snippets/navigation/LandingScreen.kt | 101 +++++++ .../com/example/snippets/ui/theme/Color.kt | 27 ++ .../com/example/snippets/ui/theme/Theme.kt | 73 +++++ .../com/example/snippets/ui/theme/Type.kt | 50 ++++ .../res/drawable/ic_launcher_background.xml | 133 +++++---- .../res/drawable/ic_launcher_foreground.xml | 30 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 1 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 1 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes misc/src/main/res/values/colors.xml | 10 + misc/src/main/res/values/strings.xml | 3 + misc/src/main/res/values/themes.xml | 5 + settings.gradle.kts | 5 +- shared/.gitignore | 1 - shared/build.gradle.kts | 37 --- shared/src/main/AndroidManifest.xml | 3 - .../drawable-v24/ic_launcher_foreground.xml | 34 --- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2963 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4905 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2060 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2783 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4490 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6895 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6387 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10413 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9128 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 15132 -> 0 bytes shared/src/main/res/values/colors.xml | 6 - shared/src/main/res/values/strings.xml | 3 - shared/src/main/res/values/styles.xml | 11 - .../example/wear/snippets/rotary/Rotary.kt | 2 +- .../com/example/wear/snippets/tile/Tile.kt | 32 ++- 53 files changed, 1056 insertions(+), 184 deletions(-) create mode 100644 misc/.gitignore create mode 100644 misc/build.gradle.kts rename {shared => misc}/proguard-rules.pro (100%) create mode 100644 misc/src/main/AndroidManifest.xml create mode 100644 misc/src/main/java/com/example/snippets/BroadcastReceiverJavaSnippets.java create mode 100644 misc/src/main/java/com/example/snippets/BroadcastReceiverSnippets.kt create mode 100644 misc/src/main/java/com/example/snippets/DataRepository.kt create mode 100644 misc/src/main/java/com/example/snippets/MainActivity.kt create mode 100644 misc/src/main/java/com/example/snippets/MyApplication.kt create mode 100644 misc/src/main/java/com/example/snippets/navigation/Destination.kt create mode 100644 misc/src/main/java/com/example/snippets/navigation/LandingScreen.kt create mode 100644 misc/src/main/java/com/example/snippets/ui/theme/Color.kt create mode 100644 misc/src/main/java/com/example/snippets/ui/theme/Theme.kt create mode 100644 misc/src/main/java/com/example/snippets/ui/theme/Type.kt rename {shared => misc}/src/main/res/drawable/ic_launcher_background.xml (54%) create mode 100644 misc/src/main/res/drawable/ic_launcher_foreground.xml rename {shared => misc}/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (79%) rename {shared => misc}/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (79%) create mode 100644 misc/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 misc/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 misc/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 misc/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 misc/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 misc/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 misc/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 misc/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 misc/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 misc/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 misc/src/main/res/values/colors.xml create mode 100644 misc/src/main/res/values/strings.xml create mode 100644 misc/src/main/res/values/themes.xml delete mode 100644 shared/.gitignore delete mode 100644 shared/build.gradle.kts delete mode 100644 shared/src/main/AndroidManifest.xml delete mode 100644 shared/src/main/res/drawable-v24/ic_launcher_foreground.xml delete mode 100644 shared/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 shared/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 shared/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 shared/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 shared/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 shared/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 shared/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 shared/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 shared/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 shared/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 shared/src/main/res/values/colors.xml delete mode 100644 shared/src/main/res/values/strings.xml delete mode 100644 shared/src/main/res/values/styles.xml diff --git a/.github/workflows/apply_spotless.yml b/.github/workflows/apply_spotless.yml index db01dad5..5ba1f6fe 100644 --- a/.github/workflows/apply_spotless.yml +++ b/.github/workflows/apply_spotless.yml @@ -44,10 +44,13 @@ jobs: - name: Run spotlessApply run: ./gradlew :compose:spotlessApply --init-script gradle/init.gradle.kts --no-configuration-cache --stacktrace + - name: Run spotlessApply for Wear + run: ./gradlew :wear:spotlessApply --init-script gradle/init.gradle.kts --no-configuration-cache --stacktrace + + - name: Run spotlessApply for Misc + run: ./gradlew :misc:spotlessApply --init-script gradle/init.gradle.kts --no-configuration-cache --stacktrace + - name: Auto-commit if spotlessApply has changes uses: stefanzweifel/git-auto-commit-action@v5 with: - commit_message: Apply Spotless - - - name: Run spotlessApply for Wear - run: ./gradlew :wear:spotlessApply --init-script gradle/init.gradle.kts --no-configuration-cache --stacktrace + commit_message: Apply Spotless \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8337b423..97b36f46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,3 +45,5 @@ jobs: run: ./gradlew :kotlin:build - name: Build Wear snippets run: ./gradlew :wear:build + - name: Build misc snippets + run: ./gradlew :misc:build diff --git a/misc/.gitignore b/misc/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/misc/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/misc/build.gradle.kts b/misc/build.gradle.kts new file mode 100644 index 00000000..de867bb8 --- /dev/null +++ b/misc/build.gradle.kts @@ -0,0 +1,72 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.ksp) + alias(libs.plugins.hilt) + alias(libs.plugins.compose.compiler) +} + +android { + compileSdk = libs.versions.compileSdk.get().toInt() + namespace = "com.example.snippets" + + defaultConfig { + applicationId = "com.example.snippets" + minSdk = libs.versions.minSdk.get().toInt() + targetSdk = libs.versions.targetSdk.get().toInt() + versionCode = 1 + versionName = "1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + kotlin { + jvmToolchain(17) + } + + buildTypes { + getByName("debug") { + signingConfig = signingConfigs.getByName("debug") + } + + getByName("release") { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro") + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + buildFeatures { + compose = true + // Disable unused AGP features + viewBinding = true + } + +} +dependencies { + val composeBom = platform(libs.androidx.compose.bom) + implementation(composeBom) + androidTestImplementation(composeBom) + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.compose.runtime) + implementation(libs.androidx.compose.foundation) + implementation(libs.androidx.compose.foundation.layout) + implementation(libs.androidx.compose.ui.util) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.compose.material3) + + implementation(libs.hilt.android) + implementation(libs.androidx.hilt.navigation.compose) + implementation(libs.kotlinx.serialization.json) + ksp(libs.hilt.compiler) + + implementation(libs.androidx.lifecycle.runtime) + testImplementation(libs.junit) + androidTestImplementation(libs.junit) + androidTestImplementation(libs.androidx.test.core) + androidTestImplementation(libs.androidx.test.runner) + androidTestImplementation(libs.androidx.test.espresso.core) +} diff --git a/shared/proguard-rules.pro b/misc/proguard-rules.pro similarity index 100% rename from shared/proguard-rules.pro rename to misc/proguard-rules.pro diff --git a/misc/src/main/AndroidManifest.xml b/misc/src/main/AndroidManifest.xml new file mode 100644 index 00000000..0a7a5c6f --- /dev/null +++ b/misc/src/main/AndroidManifest.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/misc/src/main/java/com/example/snippets/BroadcastReceiverJavaSnippets.java b/misc/src/main/java/com/example/snippets/BroadcastReceiverJavaSnippets.java new file mode 100644 index 00000000..08363995 --- /dev/null +++ b/misc/src/main/java/com/example/snippets/BroadcastReceiverJavaSnippets.java @@ -0,0 +1,120 @@ +package com.example.snippets; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; + +import androidx.activity.ComponentActivity; +import androidx.core.content.ContextCompat; + +import java.util.Objects; + +import javax.inject.Inject; + +import dagger.hilt.android.qualifiers.ApplicationContext; + +// Warning for reader: This file has the Java code snippets for completeness of the corresponding +// documentation page, but these snippets are not part of the actual sample. Refer to the Kotlin +// code for the actual sample. +public class BroadcastReceiverJavaSnippets { + + // [START android_broadcast_receiver_2_class_java] + public static class MyBroadcastReceiver extends BroadcastReceiver { + + @Inject + DataRepository dataRepository; + + @Override + public void onReceive(Context context, Intent intent) { + if (Objects.equals(intent.getAction(), "com.example.snippets.ACTION_UPDATE_DATA")) { + String data = intent.getStringExtra("com.example.snippets.DATA"); + // Do something with the data, for example send it to a data repository: + if (data != null) { dataRepository.updateData(data); } + } + } + } + // [END android_broadcast_receiver_2_class_java] + + /** @noinspection ConstantValue, unused */ + public static class BroadcastReceiverViewModel { + Context context; + + public BroadcastReceiverViewModel(@ApplicationContext Context context) { + this.context = context; + } + + // [START android_broadcast_receiver_3_definition_java] + MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver(); + // [END android_broadcast_receiver_3_definition_java] + + public void registerBroadcastReceiver() { + // [START android_broadcast_receiver_4_intent_filter_java] + IntentFilter filter = new IntentFilter("com.example.snippets.ACTION_UPDATE_DATA"); + // [END android_broadcast_receiver_4_intent_filter_java] + // [START android_broadcast_receiver_5_exported_java] + boolean listenToBroadcastsFromOtherApps = false; + int receiverFlags = listenToBroadcastsFromOtherApps + ? ContextCompat.RECEIVER_EXPORTED + : ContextCompat.RECEIVER_NOT_EXPORTED; + // [END android_broadcast_receiver_5_exported_java] + + // [START android_broadcast_receiver_6_register_java] + ContextCompat.registerReceiver(context, myBroadcastReceiver, filter, receiverFlags); + // [END android_broadcast_receiver_6_register_java] + + // [START android_broadcast_receiver_12_register_with_permission_java] + ContextCompat.registerReceiver( + context, myBroadcastReceiver, filter, + android.Manifest.permission.ACCESS_COARSE_LOCATION, + null, // scheduler that defines thread, null means run on main thread + receiverFlags + ); + // [END android_broadcast_receiver_12_register_with_permission_java] + } + + public void unregisterBroadcastReceiver() { + context.unregisterReceiver(myBroadcastReceiver); + } + + public void sendBroadcast(String newData, boolean usePermission) { + if(usePermission) { + // [START android_broadcast_receiver_8_send_java] + Intent intent = new Intent("com.example.snippets.ACTION_UPDATE_DATA"); + intent.putExtra("com.example.snippets.DATA", newData); + intent.setPackage("com.example.snippets"); + context.sendBroadcast(intent); + // [END android_broadcast_receiver_8_send_java] + } else { + Intent intent = new Intent("com.example.snippets.ACTION_UPDATE_DATA"); + intent.putExtra("com.example.snippets.DATA", newData); + intent.setPackage("com.example.snippets"); + // [START android_broadcast_receiver_9_send_with_permission_java] + context.sendBroadcast(intent, android.Manifest.permission.ACCESS_COARSE_LOCATION); + // [END android_broadcast_receiver_9_send_with_permission_java] + } + } + } + + /** @noinspection InnerClassMayBeStatic*/ + // [START android_broadcast_receiver_13_activity_java] + class MyActivity extends ComponentActivity { + MyBroadcastReceiver myBroadcastReceiver; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // [START_EXCLUDE] + IntentFilter filter = new IntentFilter("com.example.snippets.ACTION_UPDATE_DATA"); + boolean listenToBroadcastsFromOtherApps = false; + int receiverFlags = listenToBroadcastsFromOtherApps + ? ContextCompat.RECEIVER_EXPORTED + : ContextCompat.RECEIVER_NOT_EXPORTED; + // [END_EXCLUDE] + ContextCompat.registerReceiver(this, myBroadcastReceiver, filter, receiverFlags); + // Set content + } + } + // [END android_broadcast_receiver_13_activity_java] +} diff --git a/misc/src/main/java/com/example/snippets/BroadcastReceiverSnippets.kt b/misc/src/main/java/com/example/snippets/BroadcastReceiverSnippets.kt new file mode 100644 index 00000000..dda35cbe --- /dev/null +++ b/misc/src/main/java/com/example/snippets/BroadcastReceiverSnippets.kt @@ -0,0 +1,272 @@ +/* + * 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.snippets + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +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.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.Scaffold +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 +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat +import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.ViewModel +import androidx.lifecycle.compose.LifecycleStartEffect +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import dagger.hilt.android.AndroidEntryPoint +import dagger.hilt.android.lifecycle.HiltViewModel +import dagger.hilt.android.qualifiers.ApplicationContext +import javax.inject.Inject + +// Warning for reader: This file contains both the code snippets for apps _sending_ broadcasts, as +// those that are _receiving_ broadcasts. Do not consider this a reference implementation. +// +// The actual sample demonstrates how data can be passed from a broadcast receiver back to the UI, +// through an intermediary data repository. + +@AndroidEntryPoint +// [START android_broadcast_receiver_2_class] +class MyBroadcastReceiver : BroadcastReceiver() { + + @Inject + lateinit var dataRepository: DataRepository + + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == "com.example.snippets.ACTION_UPDATE_DATA") { + val data = intent.getStringExtra("com.example.snippets.DATA") ?: "No data" + // Do something with the data, for example send it to a data repository: + dataRepository.updateData(data) + } + } +} +// [END android_broadcast_receiver_2_class] + +@HiltViewModel +class BroadcastReceiverViewModel @Inject constructor( + @ApplicationContext private val context: Context, + dataRepository: DataRepository +) : ViewModel() { + val data = dataRepository.data + + @Suppress("MemberVisibilityCanBePrivate") + // [START android_broadcast_receiver_3_definition] + val myBroadcastReceiver = MyBroadcastReceiver() + // [END android_broadcast_receiver_3_definition] + + fun registerBroadcastReceiver() { + // [START android_broadcast_receiver_4_intent_filter] + val filter = IntentFilter("com.example.snippets.ACTION_UPDATE_DATA") + // [END android_broadcast_receiver_4_intent_filter] + // [START android_broadcast_receiver_5_exported] + val listenToBroadcastsFromOtherApps = false + val receiverFlags = if (listenToBroadcastsFromOtherApps) { + ContextCompat.RECEIVER_EXPORTED + } else { + ContextCompat.RECEIVER_NOT_EXPORTED + } + // [END android_broadcast_receiver_5_exported] + + // [START android_broadcast_receiver_6_register] + ContextCompat.registerReceiver(context, myBroadcastReceiver, filter, receiverFlags) + // [END android_broadcast_receiver_6_register] + + // [START android_broadcast_receiver_12_register_with_permission] + ContextCompat.registerReceiver( + context, myBroadcastReceiver, filter, + android.Manifest.permission.ACCESS_COARSE_LOCATION, + null, // scheduler that defines thread, null means run on main thread + receiverFlags + ) + // [END android_broadcast_receiver_12_register_with_permission] + } + + fun unregisterBroadcastReceiver() { + context.unregisterReceiver(myBroadcastReceiver) + } + + fun sendBroadcast(newData: String, usePermission: Boolean = false) { + if (!usePermission) { + // [START android_broadcast_receiver_8_send] + val intent = Intent("com.example.snippets.ACTION_UPDATE_DATA").apply { + putExtra("com.example.snippets.DATA", newData) + setPackage("com.example.snippets") + } + context.sendBroadcast(intent) + // [END android_broadcast_receiver_8_send] + } else { + val intent = Intent("com.example.snippets.ACTION_UPDATE_DATA").apply { + putExtra("com.example.snippets.DATA", newData) + setPackage("com.example.snippets") + } + // [START android_broadcast_receiver_9_send_with_permission] + context.sendBroadcast(intent, android.Manifest.permission.ACCESS_COARSE_LOCATION) + // [END android_broadcast_receiver_9_send_with_permission] + } + } +} + +@Suppress("NAME_SHADOWING") +@Composable +fun LifecycleScopedBroadcastReceiver( + registerReceiver: () -> Unit, + unregisterReceiver: () -> Unit +) { + val registerReceiver by rememberUpdatedState(registerReceiver) + val unregisterReceiver by rememberUpdatedState(unregisterReceiver) + // [START android_broadcast_receiver_7_lifecycle_scoped] + LifecycleStartEffect(true) { + registerReceiver() + onStopOrDispose { unregisterReceiver() } + } + // [END android_broadcast_receiver_7_lifecycle_scoped] +} + +@Composable +fun BroadcastReceiverSample( + modifier: Modifier = Modifier, + viewModel: BroadcastReceiverViewModel = hiltViewModel() +) { + val data by viewModel.data.collectAsStateWithLifecycle() + BroadcastReceiverSample( + modifier = modifier, + data = data, + registerBroadcastReceiver = viewModel::registerBroadcastReceiver, + unregisterBroadcastReceiver = viewModel::unregisterBroadcastReceiver, + sendBroadcast = viewModel::sendBroadcast + ) +} + +@Composable +fun BroadcastReceiverSample( + modifier: Modifier = Modifier, + data: String, + registerBroadcastReceiver: () -> Unit, + unregisterBroadcastReceiver: () -> Unit, + sendBroadcast: (newData: String) -> Unit +) { + var newData by remember { mutableStateOf("") } + Scaffold { innerPadding -> + Column( + modifier + .padding(innerPadding) + .padding(16.dp) + ) { + Text("Fill in a word, send broadcast, and see it added to the bottom") + Spacer(Modifier.height(16.dp)) + TextField(newData, onValueChange = { newData = it }, Modifier.widthIn(min = 160.dp)) + Spacer(Modifier.height(16.dp)) + Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + Button(onClick = { sendBroadcast(newData) }) { + Text("Send broadcast") + } + } + Spacer(Modifier.height(16.dp)) + Text(data, Modifier.verticalScroll(rememberScrollState())) + } + } + LifecycleScopedBroadcastReceiver(registerBroadcastReceiver, unregisterBroadcastReceiver) +} + +class MyBroadcastReceiverWithPermission : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + // no-op, only used to demonstrate manifest registration of receiver with permission + } +} + +// Ignore following code - it's only used to demonstrate best practices, not part of the sample +@Suppress("unused") +// [START android_broadcast_receiver_13_activity] +class MyActivity : ComponentActivity() { + private val myBroadcastReceiver = MyBroadcastReceiver() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + // [START_EXCLUDE] + val filter = IntentFilter("com.example.snippets.ACTION_UPDATE_DATA") + val listenToBroadcastsFromOtherApps = false + val receiverFlags = if (listenToBroadcastsFromOtherApps) { + ContextCompat.RECEIVER_EXPORTED + } else { + ContextCompat.RECEIVER_NOT_EXPORTED + } + + // [END_EXCLUDE] + ContextCompat.registerReceiver(this, myBroadcastReceiver, filter, receiverFlags) + setContent { MyApp() } + } + + override fun onDestroy() { + super.onDestroy() + // When you forget to unregister your receiver here, you're causing a leak! + this.unregisterReceiver(myBroadcastReceiver) + } +} +// [END android_broadcast_receiver_13_activity] + +@Composable +fun MyApp() {} + +@Suppress("unused") +// [START android_broadcast_receiver_14_stateless] +@Composable +fun MyStatefulScreen() { + val myBroadcastReceiver = remember { MyBroadcastReceiver() } + val context = LocalContext.current + LifecycleStartEffect(true) { + // [START_EXCLUDE] + val filter = IntentFilter("com.example.snippets.ACTION_UPDATE_DATA") + val listenToBroadcastsFromOtherApps = false + val flags = if (listenToBroadcastsFromOtherApps) { + ContextCompat.RECEIVER_EXPORTED + } else { + ContextCompat.RECEIVER_NOT_EXPORTED + } + // [END_EXCLUDE] + ContextCompat.registerReceiver(context, myBroadcastReceiver, filter, flags) + onStopOrDispose { context.unregisterReceiver(myBroadcastReceiver) } + } + MyStatelessScreen() +} + +@Composable +fun MyStatelessScreen() { + // Implement your screen +} +// [END android_broadcast_receiver_14_stateless] diff --git a/misc/src/main/java/com/example/snippets/DataRepository.kt b/misc/src/main/java/com/example/snippets/DataRepository.kt new file mode 100644 index 00000000..7e626e5a --- /dev/null +++ b/misc/src/main/java/com/example/snippets/DataRepository.kt @@ -0,0 +1,33 @@ +/* + * 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.snippets + +import javax.inject.Inject +import javax.inject.Singleton +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow + +@Singleton +class DataRepository @Inject constructor() { + // You would normally save this data in a database or other persistent storage + private val _data: MutableStateFlow = MutableStateFlow("This text will be updated") + val data: StateFlow = _data + + fun updateData(data: String) { + _data.value += "\n$data" + } +} diff --git a/misc/src/main/java/com/example/snippets/MainActivity.kt b/misc/src/main/java/com/example/snippets/MainActivity.kt new file mode 100644 index 00000000..a687939e --- /dev/null +++ b/misc/src/main/java/com/example/snippets/MainActivity.kt @@ -0,0 +1,66 @@ +/* + * 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.snippets + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.ui.Modifier +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import com.example.snippets.navigation.Destination +import com.example.snippets.navigation.LandingScreen +import com.example.snippets.ui.theme.SnippetsTheme +import dagger.hilt.android.AndroidEntryPoint + +@AndroidEntryPoint +class MainActivity : ComponentActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContent { + SnippetsTheme { + val navController = rememberNavController() + // A surface container using the 'background' color from the theme + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + NavHost(navController, startDestination = "LandingScreen") { + composable("LandingScreen") { + LandingScreen { navController.navigate(it.route) } + } + Destination.entries.forEach { destination -> + composable(destination.route) { + when (destination) { + Destination.BroadcastReceiverExamples -> BroadcastReceiverSample() + // Add your destination here + } + } + } + } + } + } + } + } +} diff --git a/misc/src/main/java/com/example/snippets/MyApplication.kt b/misc/src/main/java/com/example/snippets/MyApplication.kt new file mode 100644 index 00000000..4e4a187c --- /dev/null +++ b/misc/src/main/java/com/example/snippets/MyApplication.kt @@ -0,0 +1,23 @@ +/* + * 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.snippets + +import android.app.Application +import dagger.hilt.android.HiltAndroidApp + +@HiltAndroidApp +class MyApplication : Application() diff --git a/misc/src/main/java/com/example/snippets/navigation/Destination.kt b/misc/src/main/java/com/example/snippets/navigation/Destination.kt new file mode 100644 index 00000000..59f424a7 --- /dev/null +++ b/misc/src/main/java/com/example/snippets/navigation/Destination.kt @@ -0,0 +1,22 @@ +/* + * 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.snippets.navigation + +enum class Destination(val route: String, val title: String) { + BroadcastReceiverExamples("broadcastReceiverExamples", "Broadcast Receiver Examples"), + // Add your example here +} diff --git a/misc/src/main/java/com/example/snippets/navigation/LandingScreen.kt b/misc/src/main/java/com/example/snippets/navigation/LandingScreen.kt new file mode 100644 index 00000000..f096906d --- /dev/null +++ b/misc/src/main/java/com/example/snippets/navigation/LandingScreen.kt @@ -0,0 +1,101 @@ +/* + * 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.snippets.navigation + +/* + * 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. + */ + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.fillMaxSize +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.ExperimentalMaterial3Api +import androidx.compose.material3.ListItem +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun LandingScreen( + navigate: (Destination) -> Unit +) { + Scaffold( + topBar = { + TopAppBar(title = { + Text(text = "Android snippets",) + }) + } + ) { padding -> + NavigationItems(modifier = Modifier.padding(padding)) { navigate(it) } + } +} + +@Composable +fun NavigationItems( + modifier: Modifier = Modifier, + navigate: (Destination) -> Unit +) { + LazyColumn( + modifier = modifier + .fillMaxSize(), + verticalArrangement = Arrangement.spacedBy(8.dp), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + items(Destination.entries) { destination -> + NavigationItem(destination) { + navigate( + destination + ) + } + } + } +} + +@Composable +fun NavigationItem(destination: Destination, onClick: () -> Unit) { + ListItem( + headlineContent = { + Text(destination.title) + }, + modifier = Modifier + .heightIn(min = 48.dp) + .clickable { + onClick() + } + ) +} diff --git a/misc/src/main/java/com/example/snippets/ui/theme/Color.kt b/misc/src/main/java/com/example/snippets/ui/theme/Color.kt new file mode 100644 index 00000000..662ef48f --- /dev/null +++ b/misc/src/main/java/com/example/snippets/ui/theme/Color.kt @@ -0,0 +1,27 @@ +/* + * 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.snippets.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) diff --git a/misc/src/main/java/com/example/snippets/ui/theme/Theme.kt b/misc/src/main/java/com/example/snippets/ui/theme/Theme.kt new file mode 100644 index 00000000..4dcf62e8 --- /dev/null +++ b/misc/src/main/java/com/example/snippets/ui/theme/Theme.kt @@ -0,0 +1,73 @@ +/* + * 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.snippets.ui.theme + +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun SnippetsTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} diff --git a/misc/src/main/java/com/example/snippets/ui/theme/Type.kt b/misc/src/main/java/com/example/snippets/ui/theme/Type.kt new file mode 100644 index 00000000..f383a07b --- /dev/null +++ b/misc/src/main/java/com/example/snippets/ui/theme/Type.kt @@ -0,0 +1,50 @@ +/* + * 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.snippets.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) diff --git a/shared/src/main/res/drawable/ic_launcher_background.xml b/misc/src/main/res/drawable/ic_launcher_background.xml similarity index 54% rename from shared/src/main/res/drawable/ic_launcher_background.xml rename to misc/src/main/res/drawable/ic_launcher_background.xml index 336b6dca..07d5da9c 100644 --- a/shared/src/main/res/drawable/ic_launcher_background.xml +++ b/misc/src/main/res/drawable/ic_launcher_background.xml @@ -1,171 +1,170 @@ - + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> diff --git a/misc/src/main/res/drawable/ic_launcher_foreground.xml b/misc/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 00000000..2b068d11 --- /dev/null +++ b/misc/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/shared/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/misc/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 79% rename from shared/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to misc/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index eca70cfe..6f3b755b 100644 --- a/shared/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/misc/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -2,4 +2,5 @@ + \ No newline at end of file diff --git a/shared/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/misc/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 79% rename from shared/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to misc/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index eca70cfe..6f3b755b 100644 --- a/shared/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/misc/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -2,4 +2,5 @@ + \ No newline at end of file diff --git a/misc/src/main/res/mipmap-hdpi/ic_launcher.webp b/misc/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/misc/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/misc/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/misc/src/main/res/mipmap-mdpi/ic_launcher.webp b/misc/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/misc/src/main/res/mipmap-xhdpi/ic_launcher.webp b/misc/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/misc/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/misc/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/misc/src/main/res/values/colors.xml b/misc/src/main/res/values/colors.xml new file mode 100644 index 00000000..f8c6127d --- /dev/null +++ b/misc/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/misc/src/main/res/values/strings.xml b/misc/src/main/res/values/strings.xml new file mode 100644 index 00000000..870fc473 --- /dev/null +++ b/misc/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Background Snippets + \ No newline at end of file diff --git a/misc/src/main/res/values/themes.xml b/misc/src/main/res/values/themes.xml new file mode 100644 index 00000000..65078ebe --- /dev/null +++ b/misc/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + + - - diff --git a/wear/src/main/java/com/example/wear/snippets/rotary/Rotary.kt b/wear/src/main/java/com/example/wear/snippets/rotary/Rotary.kt index a6115816..97bace50 100644 --- a/wear/src/main/java/com/example/wear/snippets/rotary/Rotary.kt +++ b/wear/src/main/java/com/example/wear/snippets/rotary/Rotary.kt @@ -243,7 +243,7 @@ fun SnapScrollableScreen() { } @Composable -fun PositionScrollIndicator(){ +fun PositionScrollIndicator() { // [START android_wear_rotary_position_indicator] val listState = rememberScalingLazyListState() Scaffold( diff --git a/wear/src/main/java/com/example/wear/snippets/tile/Tile.kt b/wear/src/main/java/com/example/wear/snippets/tile/Tile.kt index 74a29483..58cbaa75 100644 --- a/wear/src/main/java/com/example/wear/snippets/tile/Tile.kt +++ b/wear/src/main/java/com/example/wear/snippets/tile/Tile.kt @@ -33,21 +33,25 @@ private const val RESOURCES_VERSION = "1" class MyTileService : TileService() { override fun onTileRequest(requestParams: RequestBuilders.TileRequest) = - Futures.immediateFuture(Tile.Builder() - .setResourcesVersion(RESOURCES_VERSION) - .setTileTimeline( - Timeline.fromLayoutElement( - Text.Builder(this, "Hello World!") - .setTypography(Typography.TYPOGRAPHY_BODY1) - .setColor(argb(0xFFFFFFFF.toInt())) - .build())) - .build()) + Futures.immediateFuture( + Tile.Builder() + .setResourcesVersion(RESOURCES_VERSION) + .setTileTimeline( + Timeline.fromLayoutElement( + Text.Builder(this, "Hello World!") + .setTypography(Typography.TYPOGRAPHY_BODY1) + .setColor(argb(0xFFFFFFFF.toInt())) + .build() + ) + ) + .build() + ) override fun onTileResourcesRequest(requestParams: ResourcesRequest) = - Futures.immediateFuture(Resources.Builder() - .setVersion(RESOURCES_VERSION) - .build() + Futures.immediateFuture( + Resources.Builder() + .setVersion(RESOURCES_VERSION) + .build() ) - } -// [END android_wear_tile_mytileservice] \ No newline at end of file +// [END android_wear_tile_mytileservice] From 6f61cb5f4f7b71fca66a46cd4e32cab20d771a06 Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Wed, 4 Dec 2024 18:18:10 +0000 Subject: [PATCH 25/34] Add live search with FilterTextView example (#402) * Add live search with FilterTextView example * Apply Spotless --------- Co-authored-by: jakeroseman --- .../compose/snippets/text/FilterText.kt | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/text/FilterText.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/text/FilterText.kt b/compose/snippets/src/main/java/com/example/compose/snippets/text/FilterText.kt new file mode 100644 index 00000000..6967ea4f --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/text/FilterText.kt @@ -0,0 +1,105 @@ +/* + * 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.text + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material3.ListItem +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.lifecycle.ViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.lifecycle.viewmodel.compose.viewModel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow + +// [START android_compose_text_filtertextviewmodel] +class FilterTextViewModel : ViewModel() { + private val items = listOf( + "Cupcake", + "Donut", + "Eclair", + "Froyo", + "Gingerbread", + "Honeycomb", + "Ice Cream Sandwich" + ) + + private val _filteredItems = MutableStateFlow(items) + var filteredItems: StateFlow> = _filteredItems + + fun filterText(input: String) { + // This filter returns the full items list when input is an empty string. + _filteredItems.value = items.filter { it.contains(input, ignoreCase = true) } + } +} +// [END android_compose_text_filtertextviewmodel] + +// [START android_compose_text_filtertextview] +@Composable +fun FilterTextView(modifier: Modifier = Modifier, viewModel: FilterTextViewModel = viewModel()) { + val filteredItems by viewModel.filteredItems.collectAsStateWithLifecycle() + var text by rememberSaveable { mutableStateOf("") } + + Column( + modifier = Modifier + .fillMaxSize() + .padding(all = 10.dp) + ) { + OutlinedTextField( + value = text, + onValueChange = { + text = it + viewModel.filterText(text) + }, + label = { Text("Filter Text") }, + modifier = Modifier.fillMaxWidth() + ) + + LazyColumn { + items( + count = filteredItems.size, + key = { index -> filteredItems[index] } + ) { + ListItem( + headlineContent = { Text(filteredItems[it]) }, + modifier = Modifier + .fillParentMaxWidth() + .padding(10.dp) + ) + } + } + } +} +// [END android_compose_text_filtertextview] + +@Preview(showBackground = true) +@Composable +private fun FilterTextViewPreview() { + FilterTextView() +} From 0d07b08ebffe0d648d499ab8003c9bad1fc4f3e3 Mon Sep 17 00:00:00 2001 From: Jake Roseman <122034773+jakeroseman@users.noreply.github.com> Date: Wed, 4 Dec 2024 18:53:41 +0000 Subject: [PATCH 26/34] Add single option radio button example (#401) * Add single option radio button example * Apply Spotless * Apply Spotless --------- Co-authored-by: jakeroseman --- .../snippets/components/RadioButton.kt | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/components/RadioButton.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/components/RadioButton.kt b/compose/snippets/src/main/java/com/example/compose/snippets/components/RadioButton.kt new file mode 100644 index 00000000..93961f24 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/components/RadioButton.kt @@ -0,0 +1,77 @@ +/* + * 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.components + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.selection.selectable +import androidx.compose.foundation.selection.selectableGroup +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.RadioButton +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp + +// [START android_compose_components_radiobuttonsingleselection] +@Composable +fun RadioButtonSingleSelection(modifier: Modifier = Modifier) { + val radioOptions = listOf("Calls", "Missed", "Friends") + val (selectedOption, onOptionSelected) = remember { mutableStateOf(radioOptions[0]) } + // Note that Modifier.selectableGroup() is essential to ensure correct accessibility behavior + Column(modifier.selectableGroup()) { + radioOptions.forEach { text -> + Row( + Modifier + .fillMaxWidth() + .height(56.dp) + .selectable( + selected = (text == selectedOption), + onClick = { onOptionSelected(text) }, + role = Role.RadioButton + ) + .padding(horizontal = 16.dp), + verticalAlignment = Alignment.CenterVertically + ) { + RadioButton( + selected = (text == selectedOption), + onClick = null // null recommended for accessibility with screen readers + ) + Text( + text = text, + style = MaterialTheme.typography.bodyLarge, + modifier = Modifier.padding(start = 16.dp) + ) + } + } + } +} +// [END android_compose_components_radiobuttonsingleselection] + +@Preview +@Composable +private fun RadioButtonSingleSelectionPreview() { + RadioButtonSingleSelection() +} From c79a414f423d09d009c92d69fb71e882e6edd39b Mon Sep 17 00:00:00 2001 From: Tram Bui <62119967+trambui09@users.noreply.github.com> Date: Fri, 6 Dec 2024 09:49:02 -0800 Subject: [PATCH 27/34] update to use type safe routes (#399) --- .../snippets/predictiveback/PredictiveBackSnippets.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt index 88ec5c4a..fb94e118 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt @@ -46,6 +46,10 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import kotlin.coroutines.cancellation.CancellationException import kotlinx.coroutines.flow.Flow +import kotlinx.serialization.Serializable + +@Serializable data object Home +@Serializable data object Settings @Composable private fun PredictiveBackOverrideExit( @@ -56,7 +60,7 @@ private fun PredictiveBackOverrideExit( // [START android_compose_predictiveback_navhost] NavHost( navController = navController, - startDestination = "home", + startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, @@ -70,13 +74,13 @@ private fun PredictiveBackOverrideExit( ) // [END android_compose_predictiveback_navhost] { - composable("home") { + composable { HomeScreen( modifier = modifier, navController = navController, ) } - composable("settings") { + composable { SettingsScreen( modifier = modifier, navController = navController, @@ -119,6 +123,7 @@ private fun PredictiveBackHandlerBasicExample() { boxScale = 1F - (1F * backEvent.progress) } // code for completion + boxScale = 0F } catch (e: CancellationException) { // code for cancellation boxScale = 1F From 273d39951753854a1c8c052e757bd75849dca179 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 9 Dec 2024 13:29:53 +0000 Subject: [PATCH 28/34] Migrated relevant MotionCompose snippets into snippets (#411) * Migrated relevant MotionCompose snippets into snippets * Apply Spotless --------- Co-authored-by: riggaroo --- .../snippets/animations/demo/Cheese.kt | 182 +++++++++++ .../animations/demo/SimpleScaffold.kt | 58 ++++ .../demo/custom/CustomCanvasAnimation.kt | 110 +++++++ .../snippets/animations/demo/fade/FadeDemo.kt | 107 +++++++ .../demo/fadethrough/FadeThroughDemo.kt | 256 ++++++++++++++++ .../demo/sharedaxis/SharedAxisDemo.kt | 282 ++++++++++++++++++ .../sharedtransform/SharedTransformDemo.kt | 261 ++++++++++++++++ .../src/main/res/drawable-nodpi/cheese_1.jpg | Bin 0 -> 92915 bytes .../src/main/res/drawable-nodpi/cheese_2.jpg | Bin 0 -> 219481 bytes .../src/main/res/drawable-nodpi/cheese_3.jpg | Bin 0 -> 185185 bytes .../src/main/res/drawable-nodpi/cheese_4.jpg | Bin 0 -> 262322 bytes .../src/main/res/drawable-nodpi/cheese_5.jpg | Bin 0 -> 432062 bytes .../snippets/src/main/res/values/strings.xml | 2 + gradle/libs.versions.toml | 8 +- 14 files changed, 1262 insertions(+), 4 deletions(-) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/Cheese.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/SimpleScaffold.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/custom/CustomCanvasAnimation.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fade/FadeDemo.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fadethrough/FadeThroughDemo.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedaxis/SharedAxisDemo.kt create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedtransform/SharedTransformDemo.kt create mode 100644 compose/snippets/src/main/res/drawable-nodpi/cheese_1.jpg create mode 100644 compose/snippets/src/main/res/drawable-nodpi/cheese_2.jpg create mode 100644 compose/snippets/src/main/res/drawable-nodpi/cheese_3.jpg create mode 100644 compose/snippets/src/main/res/drawable-nodpi/cheese_4.jpg create mode 100644 compose/snippets/src/main/res/drawable-nodpi/cheese_5.jpg diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/Cheese.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/Cheese.kt new file mode 100644 index 00000000..2468bce9 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/Cheese.kt @@ -0,0 +1,182 @@ +/* + * 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.animations.demo + +import androidx.annotation.DrawableRes +import com.example.compose.snippets.R + +val CheeseImages = listOf( + R.drawable.cheese_1, + R.drawable.cheese_2, + R.drawable.cheese_3, + R.drawable.cheese_4, + R.drawable.cheese_5 +) + +val CheeseNames = listOf( + "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", + "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", + "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese", + "Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell", + "Aragon", "Ardi Gasna", "Ardrahan", "Armenian String", "Aromes au Gene de Marc", + "Asadero", "Asiago", "Aubisque Pyrenees", "Autun", "Avaxtskyr", "Baby Swiss", + "Babybel", "Baguette Laonnaise", "Bakers", "Baladi", "Balaton", "Bandal", "Banon", + "Barry's Bay Cheddar", "Basing", "Basket Cheese", "Bath Cheese", "Bavarian Bergkase", + "Baylough", "Beaufort", "Beauvoorde", "Beenleigh Blue", "Beer Cheese", "Bel Paese", + "Bergader", "Bergere Bleue", "Berkswell", "Beyaz Peynir", "Bierkase", "Bishop Kennedy", + "Blarney", "Bleu d'Auvergne", "Bleu de Gex", "Bleu de Laqueuille", + "Bleu de Septmoncel", "Bleu Des Causses", "Blue", "Blue Castello", "Blue Rathgore", + "Blue Vein (Australian)", "Blue Vein Cheeses", "Bocconcini", "Bocconcini (Australian)", + "Boeren Leidenkaas", "Bonchester", "Bosworth", "Bougon", "Boule Du Roves", + "Boulette d'Avesnes", "Boursault", "Boursin", "Bouyssou", "Bra", "Braudostur", + "Breakfast Cheese", "Brebis du Lavort", "Brebis du Lochois", "Brebis du Puyfaucon", + "Bresse Bleu", "Brick", "Brie", "Brie de Meaux", "Brie de Melun", "Brillat-Savarin", + "Brin", "Brin d' Amour", "Brin d'Amour", "Brinza (Burduf Brinza)", + "Briquette de Brebis", "Briquette du Forez", "Broccio", "Broccio Demi-Affine", + "Brousse du Rove", "Bruder Basil", "Brusselae Kaas (Fromage de Bruxelles)", "Bryndza", + "Buchette d'Anjou", "Buffalo", "Burgos", "Butte", "Butterkase", "Button (Innes)", + "Buxton Blue", "Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta", + "Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie", + "Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat", + "Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano", + "Castelleno", "Castelmagno", "Castelo Branco", "Castigliano", "Cathelain", + "Celtic Promise", "Cendre d'Olivet", "Cerney", "Chabichou", "Chabichou du Poitou", + "Chabis de Gatine", "Chaource", "Charolais", "Chaumes", "Cheddar", + "Cheddar Clothbound", "Cheshire", "Chevres", "Chevrotin des Aravis", "Chontaleno", + "Civray", "Coeur de Camembert au Calvados", "Coeur de Chevre", "Colby", "Cold Pack", + "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper", + "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)", + "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese", + "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza", + "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley", + "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino", + "Cypress Grove Chevre", "Danablu (Danish Blue)", "Danbo", "Danish Fontina", + "Daralagjazsky", "Dauphin", "Delice des Fiouves", "Denhany Dorset Drum", "Derby", + "Dessertnyj Belyj", "Devon Blue", "Devon Garland", "Dolcelatte", "Doolin", + "Doppelrhamstufel", "Dorset Blue Vinney", "Double Gloucester", "Double Worcester", + "Dreux a la Feuille", "Dry Jack", "Duddleswell", "Dunbarra", "Dunlop", "Dunsyre Blue", + "Duroblando", "Durrus", "Dutch Mimolette (Commissiekaas)", "Edam", "Edelpilz", + "Emental Grand Cru", "Emlett", "Emmental", "Epoisses de Bourgogne", "Esbareich", + "Esrom", "Etorki", "Evansdale Farmhouse Brie", "Evora De L'Alentejo", "Exmoor Blue", + "Explorateur", "Feta", "Feta (Australian)", "Figue", "Filetta", "Fin-de-Siecle", + "Finlandia Swiss", "Finn", "Fiore Sardo", "Fleur du Maquis", "Flor de Guia", + "Flower Marie", "Folded", "Folded cheese with mint", "Fondant de Brebis", + "Fontainebleau", "Fontal", "Fontina Val d'Aosta", "Formaggio di capra", "Fougerus", + "Four Herb Gouda", "Fourme d' Ambert", "Fourme de Haute Loire", "Fourme de Montbrison", + "Fresh Jack", "Fresh Mozzarella", "Fresh Ricotta", "Fresh Truffles", "Fribourgeois", + "Friesekaas", "Friesian", "Friesla", "Frinault", "Fromage a Raclette", "Fromage Corse", + "Fromage de Montagne de Savoie", "Fromage Frais", "Fruit Cream Cheese", + "Frying Cheese", "Fynbo", "Gabriel", "Galette du Paludier", "Galette Lyonnaise", + "Galloway Goat's Milk Gems", "Gammelost", "Gaperon a l'Ail", "Garrotxa", "Gastanberra", + "Geitost", "Gippsland Blue", "Gjetost", "Gloucester", "Golden Cross", "Gorgonzola", + "Gornyaltajski", "Gospel Green", "Gouda", "Goutu", "Gowrie", "Grabetto", "Graddost", + "Grafton Village Cheddar", "Grana", "Grana Padano", "Grand Vatel", + "Grataron d' Areches", "Gratte-Paille", "Graviera", "Greuilh", "Greve", + "Gris de Lille", "Gruyere", "Gubbeen", "Guerbigny", "Halloumi", + "Halloumy (Australian)", "Haloumi-Style Cheese", "Harbourne Blue", "Havarti", + "Heidi Gruyere", "Hereford Hop", "Herrgardsost", "Herriot Farmhouse", "Herve", + "Hipi Iti", "Hubbardston Blue Cow", "Hushallsost", "Iberico", "Idaho Goatster", + "Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg", + "Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa", + "Kadchgall", "Kaseri", "Kashta", "Kefalotyri", "Kenafa", "Kernhem", "Kervella Affine", + "Kikorangi", "King Island Cape Wickham Brie", "King River Gold", "Klosterkaese", + "Knockalara", "Kugelkase", "L'Aveyronnais", "L'Ecir de l'Aubrac", "La Taupiniere", + "La Vache Qui Rit", "Laguiole", "Lairobell", "Lajta", "Lanark Blue", "Lancashire", + "Langres", "Lappi", "Laruns", "Lavistown", "Le Brin", "Le Fium Orbo", "Le Lacandou", + "Le Roule", "Leafield", "Lebbene", "Leerdammer", "Leicester", "Leyden", "Limburger", + "Lincolnshire Poacher", "Lingot Saint Bousquet d'Orb", "Liptauer", "Little Rydings", + "Livarot", "Llanboidy", "Llanglofan Farmhouse", "Loch Arthur Farmhouse", + "Loddiswell Avondale", "Longhorn", "Lou Palou", "Lou Pevre", "Lyonnais", "Maasdam", + "Macconais", "Mahoe Aged Gouda", "Mahon", "Malvern", "Mamirolle", "Manchego", + "Manouri", "Manur", "Marble Cheddar", "Marbled Cheeses", "Maredsous", "Margotin", + "Maribo", "Maroilles", "Mascares", "Mascarpone", "Mascarpone (Australian)", + "Mascarpone Torta", "Matocq", "Maytag Blue", "Meira", "Menallack Farmhouse", + "Menonita", "Meredith Blue", "Mesost", "Metton (Cancoillotte)", "Meyer Vintage Gouda", + "Mihalic Peynir", "Milleens", "Mimolette", "Mine-Gabhar", "Mini Baby Bells", "Mixte", + "Molbo", "Monastery Cheeses", "Mondseer", "Mont D'or Lyonnais", "Montasio", + "Monterey Jack", "Monterey Jack Dry", "Morbier", "Morbier Cru de Montagne", + "Mothais a la Feuille", "Mozzarella", "Mozzarella (Australian)", + "Mozzarella di Bufala", "Mozzarella Fresh, in water", "Mozzarella Rolls", "Munster", + "Murol", "Mycella", "Myzithra", "Naboulsi", "Nantais", "Neufchatel", + "Neufchatel (Australian)", "Niolo", "Nokkelost", "Northumberland", "Oaxaca", + "Olde York", "Olivet au Foin", "Olivet Bleu", "Olivet Cendre", + "Orkney Extra Mature Cheddar", "Orla", "Oschtjepka", "Ossau Fermier", "Ossau-Iraty", + "Oszczypek", "Oxford Blue", "P'tit Berrichon", "Palet de Babligny", "Paneer", "Panela", + "Pannerone", "Pant ys Gawn", "Parmesan (Parmigiano)", "Parmigiano Reggiano", + "Pas de l'Escalette", "Passendale", "Pasteurized Processed", "Pate de Fromage", + "Patefine Fort", "Pave d'Affinois", "Pave d'Auge", "Pave de Chirac", "Pave du Berry", + "Pecorino", "Pecorino in Walnut Leaves", "Pecorino Romano", "Peekskill Pyramid", + "Pelardon des Cevennes", "Pelardon des Corbieres", "Penamellera", "Penbryn", + "Pencarreg", "Perail de Brebis", "Petit Morin", "Petit Pardou", "Petit-Suisse", + "Picodon de Chevre", "Picos de Europa", "Piora", "Pithtviers au Foin", + "Plateau de Herve", "Plymouth Cheese", "Podhalanski", "Poivre d'Ane", "Polkolbin", + "Pont l'Eveque", "Port Nicholson", "Port-Salut", "Postel", "Pouligny-Saint-Pierre", + "Pourly", "Prastost", "Pressato", "Prince-Jean", "Processed Cheddar", "Provolone", + "Provolone (Australian)", "Pyengana Cheddar", "Pyramide", "Quark", + "Quark (Australian)", "Quartirolo Lombardo", "Quatre-Vents", "Quercy Petit", + "Queso Blanco", "Queso Blanco con Frutas --Pina y Mango", "Queso de Murcia", + "Queso del Montsec", "Queso del Tietar", "Queso Fresco", "Queso Fresco (Adobera)", + "Queso Iberico", "Queso Jalapeno", "Queso Majorero", "Queso Media Luna", + "Queso Para Frier", "Queso Quesadilla", "Rabacal", "Raclette", "Ragusano", "Raschera", + "Reblochon", "Red Leicester", "Regal de la Dombes", "Reggianito", "Remedou", + "Requeson", "Richelieu", "Ricotta", "Ricotta (Australian)", "Ricotta Salata", "Ridder", + "Rigotte", "Rocamadour", "Rollot", "Romano", "Romans Part Dieu", "Roncal", "Roquefort", + "Roule", "Rouleau De Beaulieu", "Royalp Tilsit", "Rubens", "Rustinu", "Saaland Pfarr", + "Saanenkaese", "Saga", "Sage Derby", "Sainte Maure", "Saint-Marcellin", + "Saint-Nectaire", "Saint-Paulin", "Salers", "Samso", "San Simon", "Sancerre", + "Sap Sago", "Sardo", "Sardo Egyptian", "Sbrinz", "Scamorza", "Schabzieger", "Schloss", + "Selles sur Cher", "Selva", "Serat", "Seriously Strong Cheddar", "Serra da Estrela", + "Sharpam", "Shelburne Cheddar", "Shropshire Blue", "Siraz", "Sirene", "Smoked Gouda", + "Somerset Brie", "Sonoma Jack", "Sottocenare al Tartufo", "Soumaintrain", + "Sourire Lozerien", "Spenwood", "Sraffordshire Organic", "St. Agur Blue Cheese", + "Stilton", "Stinking Bishop", "String", "Sussex Slipcote", "Sveciaost", "Swaledale", + "Sweet Style Swiss", "Swiss", "Syrian (Armenian String)", "Tala", "Taleggio", "Tamie", + "Tasmania Highland Chevre Log", "Taupiniere", "Teifi", "Telemea", "Testouri", + "Tete de Moine", "Tetilla", "Texas Goat Cheese", "Tibet", "Tillamook Cheddar", + "Tilsit", "Timboon Brie", "Toma", "Tomme Brulee", "Tomme d'Abondance", + "Tomme de Chevre", "Tomme de Romans", "Tomme de Savoie", "Tomme des Chouans", "Tommes", + "Torta del Casar", "Toscanello", "Touree de L'Aubier", "Tourmalet", + "Trappe (Veritable)", "Trois Cornes De Vendee", "Tronchon", "Trou du Cru", "Truffe", + "Tupi", "Turunmaa", "Tymsboro", "Tyn Grug", "Tyning", "Ubriaco", "Ulloa", + "Vacherin-Fribourgeois", "Valencay", "Vasterbottenost", "Venaco", "Vendomois", + "Vieux Corse", "Vignotte", "Vulscombe", "Waimata Farmhouse Blue", + "Washed Rind Cheese (Australian)", "Waterloo", "Weichkaese", "Wellington", + "Wensleydale", "White Stilton", "Whitestone Farmhouse", "Wigmore", "Woodside Cabecou", + "Xanadu", "Xynotyro", "Yarg Cornish", "Yarra Valley Pyramid", "Yorkshire Blue", + "Zamorano", "Zanetti Grana Padano", "Zanetti Parmigiano Reggiano" +) + +data class Cheese( + val id: Long, + val name: String, + @DrawableRes val image: Int +) { + companion object { + fun all(): List { + return CheeseNames.mapIndexed { i, name -> + Cheese( + id = (i + 1).toLong(), + name = name, + image = CheeseImages[ + ((name.hashCode() % CheeseImages.size) + CheeseImages.size) % + CheeseImages.size + ] + ) + } + } + } +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/SimpleScaffold.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/SimpleScaffold.kt new file mode 100644 index 00000000..987d545a --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/SimpleScaffold.kt @@ -0,0 +1,58 @@ +/* + * 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.animations.demo + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.statusBarsPadding +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun SimpleScaffold( + title: String, + modifier: Modifier = Modifier, + content: @Composable BoxScope.() -> Unit +) { + Scaffold( + topBar = { + TopAppBar( + title = { + Text(text = title) + }, + modifier = Modifier + .statusBarsPadding() + ) + }, + modifier = modifier + ) { padding -> + Box( + modifier = Modifier + .fillMaxSize() + .padding(padding) + ) { + content() + } + } +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/custom/CustomCanvasAnimation.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/custom/CustomCanvasAnimation.kt new file mode 100644 index 00000000..e8279434 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/custom/CustomCanvasAnimation.kt @@ -0,0 +1,110 @@ +/* + * 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.animations.demo.custom + +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.SpringSpec +import androidx.compose.animation.core.spring +import androidx.compose.foundation.Canvas +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.delay + +/** + * A custom loading animation example using Canvas and draw APIs, combined with + * Animatable to show the use of the animateTo() function used sequentially. + */ +@Composable +@Preview +fun CustomCanvasBouncyLoader() { + val yOffset = remember { + Animatable(0f) + } + val scale = remember { + Animatable(1f) + } + LaunchedEffect("bouncyLoader") { + delay(400) + // We use the Animatable.animateTo() API here to demonstrate the coroutine usage - each + // item is animating one after the other, as the animateTo function is sequential. + // Animate y to half the height + yOffset.animateTo(0.5f, bouncyAnimationSpec) + scale.animateTo(3f, bouncyAnimationSpec) + delay(500) + scale.animateTo(10f, bouncyAnimationSpec) + delay(500) + scale.animateTo(50f, bouncyAnimationSpec) + } + val size = remember { + mutableStateOf(IntSize.Zero) + } + Box( + Modifier + .fillMaxSize() + .onSizeChanged { + // We get the size change of the whole composable, and use this to determine how + // big the ball should be. + size.value = it + } + ) { + GradientCircle( + Modifier + .align(Alignment.TopCenter) + .size(26.dp) + .graphicsLayer { + // We use .graphicsLayer here to perform the animation as we are animating + // multiple properties of our Gradient circle at once, and this is more + // efficient than using multiple modifiers. + // .graphicsLayer also defers these changes to the Draw phase of Compose, + // therefore minimizing recompositions required to do this. + scaleX = scale.value + scaleY = scale.value + translationY = yOffset.value * size.value.height + } + ) + } +} + +@Composable +private fun GradientCircle(modifier: Modifier = Modifier) { + val brush = remember { + Brush.verticalGradient(listOf(Color(0xFFF56E34), Color(0xFF234EDA))) + } + Canvas(modifier = modifier) { + drawCircle(brush = brush) + } +} + +private val bouncyAnimationSpec: SpringSpec = spring( + dampingRatio = Spring.DampingRatioMediumBouncy, + stiffness = Spring.StiffnessLow +) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fade/FadeDemo.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fade/FadeDemo.kt new file mode 100644 index 00000000..c46735f2 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fade/FadeDemo.kt @@ -0,0 +1,107 @@ +/* + * 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.animations.demo.fade + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.ContentTransform +import androidx.compose.animation.core.LinearOutSlowInEasing +import androidx.compose.animation.core.snap +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.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +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.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.animations.demo.CheeseImages +import com.example.compose.snippets.animations.demo.SimpleScaffold + +/** + * A fade creates a smooth sequence between elements that fully overlap each other, such as + * photos inside of a card or another container. When a new element enters, it fades in + * over the current element. + */ +@Preview +@Composable +fun FadeDemo() { + SimpleScaffold(title = "Fade") { + + val painters = CheeseImages.map { painterResource(it) } + var index by remember { mutableIntStateOf(0) } + + AnimatedContent( + targetState = index, + modifier = Modifier.align(Alignment.Center), + transitionSpec = fade() + ) { targetIndex -> + Image( + painter = painters[targetIndex], + contentDescription = "Cheese", + modifier = Modifier + .size(256.dp, 192.dp) + .clip(shape = RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + } + + Button( + onClick = { index = (index + 1) % painters.size }, + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(64.dp) + ) { + Text(text = "NEXT") + } + } +} + +/** + * Creates a transitionSpec for configuring [AnimatedContent] to the fade pattern. + */ +private fun fade( + durationMillis: Int = 300 +): AnimatedContentTransitionScope.() -> ContentTransform { + return { + ContentTransform( + // The initial content should stay until the target content is completely opaque. + initialContentExit = fadeOut(animationSpec = snap(delayMillis = durationMillis)), + // The target content fades in. This is shown on top of the initial content. + targetContentEnter = fadeIn( + animationSpec = tween( + durationMillis = durationMillis, + // LinearOutSlowInEasing is suitable for incoming elements. + easing = LinearOutSlowInEasing + ) + ) + ) + } +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fadethrough/FadeThroughDemo.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fadethrough/FadeThroughDemo.kt new file mode 100644 index 00000000..efdd3574 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/fadethrough/FadeThroughDemo.kt @@ -0,0 +1,256 @@ +/* + * 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.animations.demo.fadethrough + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.ContentTransform +import androidx.compose.animation.SizeTransform +import androidx.compose.animation.core.FastOutLinearInEasing +import androidx.compose.animation.core.LinearOutSlowInEasing +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.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Favorite +import androidx.compose.material.icons.filled.Share +import androidx.compose.material3.Button +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +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.saveable.rememberSaveable +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.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.example.compose.snippets.R +import com.example.compose.snippets.animations.demo.SimpleScaffold + +/** + * Fade through involves one element fading out completely before a new one fades in. These + * transitions can be applied to text, icons, and other elements that don't perfectly + * overlap. This technique lets the background show through during a transition, and it can + * provide continuity between screens when paired with a shared transformation. + */ +@Preview +@Composable +fun FadeThroughDemo() { + SimpleScaffold(title = "Fade through") { + var expanded by rememberSaveable { mutableStateOf(false) } + DemoCard( + expanded = expanded, + modifier = Modifier.align(Alignment.Center) + ) + + Button( + onClick = { expanded = !expanded }, + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(64.dp) + ) { + Text(text = "TOGGLE") + } + } +} + +/** + * Shows the card. The card can be either expanded or collapsed, and the transition between the two + * states is animated with the fade-through effect. + * + * @param expanded Whether the card is expanded or collapsed. + */ +@Composable +private fun DemoCard( + expanded: Boolean, + modifier: Modifier = Modifier +) { + Surface( + modifier = modifier, + tonalElevation = 2.dp, + shape = RoundedCornerShape(16.dp) + ) { + // Use `AnimatedContent` to switch between different content. + AnimatedContent( + // `targetState` specifies the input state. + targetState = expanded, + // `transitionSpec` defines the behavior of the transition animation. + transitionSpec = fadeThrough() + ) { targetExpanded -> + if (targetExpanded) { + ExpandedContent() + } else { + CollapsedContent() + } + } + } +} + +/** + * Creates a transitionSpec for configuring [AnimatedContent] to the fade through pattern. + * See [Fade through](https://material.io/design/motion/the-motion-system.html#fade-through) for + * the motion spec. + */ +fun fadeThrough( + durationMillis: Int = 300 +): AnimatedContentTransitionScope.() -> ContentTransform { + return { + ContentTransform( + // The initial content fades out. + initialContentExit = fadeOut( + animationSpec = tween( + // The duration is 3/8 of the overall duration. + durationMillis = durationMillis * 3 / 8, + // FastOutLinearInEasing is suitable for elements exiting the screen. + easing = FastOutLinearInEasing + ) + ), + // The target content fades in after the current content fades out. + targetContentEnter = fadeIn( + animationSpec = tween( + // The duration is 5/8 of the overall duration. + durationMillis = durationMillis * 5 / 8, + // Delays the EnterTransition by the duration of the ExitTransition. + delayMillis = durationMillis * 3 / 8, + // LinearOutSlowInEasing is suitable for incoming elements. + easing = LinearOutSlowInEasing + ) + ), + // The size changes along with the content transition. + sizeTransform = SizeTransform( + sizeAnimationSpec = { _, _ -> + tween(durationMillis = durationMillis) + } + ) + ) + } +} + +@Composable +private fun CollapsedContent() { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.padding(16.dp), + horizontalArrangement = Arrangement.spacedBy(16.dp) + ) { + Image( + painter = painterResource(R.drawable.cheese_1), + contentDescription = null, + modifier = Modifier + .size(64.dp) + .clip(CircleShape) + ) + Text( + text = "Cheese", + style = MaterialTheme.typography.headlineSmall + ) + } +} + +@Composable +private fun ExpandedContent() { + Column( + modifier = Modifier.width(IntrinsicSize.Min) + ) { + Image( + painter = painterResource(R.drawable.cheese_1), + contentDescription = null, + modifier = Modifier.size(320.dp, 128.dp), + contentScale = ContentScale.Crop + ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = "Cheese", + style = MaterialTheme.typography.headlineSmall, + modifier = Modifier.padding(horizontal = 16.dp) + ) + Text( + text = "Hello, world", + style = MaterialTheme.typography.titleMedium, + modifier = Modifier.padding(horizontal = 16.dp) + ) + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = stringResource(R.string.lorem_ipsum), + style = MaterialTheme.typography.bodyMedium, + modifier = Modifier.padding(horizontal = 16.dp), + maxLines = 2, + overflow = TextOverflow.Ellipsis + ) + Spacer(modifier = Modifier.height(16.dp)) + Row( + modifier = Modifier.padding(horizontal = 16.dp), + horizontalArrangement = Arrangement.spacedBy(4.dp) + ) { + TextButton(onClick = { /* Do nothing */ }) { + Text(text = "DETAIL") + } + TextButton(onClick = { /* Do nothing */ }) { + Text(text = "ORDER") + } + Spacer(modifier = Modifier.weight(1f)) + IconButton(onClick = { /* Do nothing */ }) { + Icon( + imageVector = Icons.Default.Favorite, + contentDescription = "Favorite" + ) + } + IconButton(onClick = { /* Do nothing */ }) { + Icon( + imageVector = Icons.Default.Share, + contentDescription = "Share" + ) + } + } + Spacer(modifier = Modifier.height(8.dp)) + } +} + +@Preview +@Composable +private fun PreviewDemoCardCollapsed() { + DemoCard(expanded = false) +} + +@Preview +@Composable +private fun PreviewDemoCardExpanded() { + DemoCard(expanded = true) +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedaxis/SharedAxisDemo.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedaxis/SharedAxisDemo.kt new file mode 100644 index 00000000..ceb7b4a6 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedaxis/SharedAxisDemo.kt @@ -0,0 +1,282 @@ +/* + * 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.animations.demo.sharedaxis + +import androidx.annotation.DrawableRes +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.AnimatedVisibilityScope +import androidx.compose.animation.ContentTransform +import androidx.compose.animation.animateColor +import androidx.compose.animation.core.FastOutLinearInEasing +import androidx.compose.animation.core.FiniteAnimationSpec +import androidx.compose.animation.core.LinearOutSlowInEasing +import androidx.compose.animation.core.tween +import androidx.compose.animation.core.updateTransition +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.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +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.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.datasource.LoremIpsum +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.compose.snippets.animations.demo.CheeseImages +import com.example.compose.snippets.animations.demo.CheeseNames +import com.example.compose.snippets.animations.demo.SimpleScaffold + +/** + * The shared axis pattern is used for transitions between UI elements that have a spatial + * or navigational relationship. This demo uses a shared transformation on the Y-axis to + * reinforce the sequential order of elements. + */ +@Composable +fun SharedAxisDemo() { + SimpleScaffold(title = "Layout > Shared axis (Y-axis)") { + val pages = remember { createPages() } + // Indicator column + var id by rememberSaveable { mutableIntStateOf(1) } + Row(modifier = Modifier.padding(end = 16.dp)) { + PageIndicatorsColumn( + pages = pages, + selectedId = id, + onIndicatorClick = { id = it } + ) + + // SharedYAxis animates the content change. + SharedYAxis(targetState = pages.first { it.id == id }) { page -> + PageContent(page = page) + } + } + } +} + +/** + * Animates content change with the vertical shared axis pattern. + * + * See [Shared axis](https://material.io/design/motion/the-motion-system.html#shared-axis) for the + * detail about this motion pattern. + */ +@Composable +private fun > SharedYAxis( + targetState: T, + modifier: Modifier = Modifier, + content: @Composable AnimatedVisibilityScope.(T) -> Unit +) { + val exitDurationMillis = 80 + val enterDurationMillis = 220 + + // This local function creates the AnimationSpec for outgoing elements. + fun exitSpec(): FiniteAnimationSpec = + tween( + durationMillis = exitDurationMillis, + easing = FastOutLinearInEasing + ) + + // This local function creates the AnimationSpec for incoming elements. + fun enterSpec(): FiniteAnimationSpec = + tween( + // The enter animation runs right after the exit animation. + delayMillis = exitDurationMillis, + durationMillis = enterDurationMillis, + easing = LinearOutSlowInEasing + ) + + val slideDistance = with(LocalDensity.current) { 30.dp.roundToPx() } + + AnimatedContent( + targetState = targetState, + transitionSpec = { + // The state type () is Comparable. + // We compare the initial state and the target state to determine whether we are moving + // down or up. + if (initialState < targetState) { // Move down + ContentTransform( + // Outgoing elements fade out and slide up to the top. + initialContentExit = fadeOut(exitSpec()) + + slideOutVertically(exitSpec()) { -slideDistance }, + // Incoming elements fade in and slide up from the bottom. + targetContentEnter = fadeIn(enterSpec()) + + slideInVertically(enterSpec()) { slideDistance } + ) + } else { // Move up + ContentTransform( + // Outgoing elements fade out and slide down to the bottom. + initialContentExit = fadeOut(exitSpec()) + + slideOutVertically(exitSpec()) { slideDistance }, + // Outgoing elements fade in and slide down from the top. + targetContentEnter = fadeIn(enterSpec()) + + slideInVertically(enterSpec()) { -slideDistance } + ) + } + }, + modifier = modifier, + content = content + ) +} + +private class Page( + val id: Int, + @DrawableRes + val image: Int, + val title: String, + val body: String +) : Comparable { + + override fun compareTo(other: Page): Int { + return id.compareTo(other.id) + } +} + +private fun createPages(): List { + val body = LoremIpsum().values.joinToString(separator = " ").replace('\n', ' ') + return (0..4).map { i -> + Page( + id = i + 1, + image = CheeseImages[i % CheeseImages.size], + title = CheeseNames[i * 128], + body = body + ) + } +} + +@Composable +private fun PageIndicatorsColumn( + pages: List, + selectedId: Int, + onIndicatorClick: (index: Int) -> Unit, + modifier: Modifier = Modifier +) { + Column( + modifier = modifier + .verticalScroll(rememberScrollState()) + .padding(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(32.dp), + ) { + for (page in pages) { + PageIndicator( + index = page.id, + selected = selectedId == page.id, + onClick = { onIndicatorClick(page.id) } + ) + } + } +} + +@Composable +private fun PageIndicator( + index: Int, + selected: Boolean, + onClick: () -> Unit +) { + val transition = updateTransition(targetState = selected, label = "indicator") + val backgroundColor by transition.animateColor(label = "background color") { targetSelected -> + if (targetSelected) { + MaterialTheme.colorScheme.primary + } else { + MaterialTheme.colorScheme.surfaceVariant + } + } + val textColor by transition.animateColor(label = "text color") { targetSelected -> + if (targetSelected) { + MaterialTheme.colorScheme.onPrimary + } else { + MaterialTheme.colorScheme.onSurfaceVariant + } + } + IconButton(onClick = onClick) { + Text( + text = index.toString(), + modifier = Modifier + .size(32.dp) + .background(backgroundColor, CircleShape) + .wrapContentSize(), + color = textColor, + fontSize = 20.sp, + fontWeight = FontWeight.Bold + ) + } +} + +@Composable +private fun PageContent( + page: Page, + modifier: Modifier = Modifier +) { + Column( + modifier = modifier + .verticalScroll(rememberScrollState()) + .navigationBarsPadding(), + verticalArrangement = Arrangement.spacedBy(16.dp) + ) { + Image( + painter = painterResource(page.image), + contentDescription = null, + modifier = Modifier + .fillMaxWidth() + .aspectRatio(16f / 9f) + .clip(RoundedCornerShape(16.dp)), + contentScale = ContentScale.Crop + ) + Text( + text = page.title, + style = MaterialTheme.typography.titleLarge + ) + Text( + text = page.body, + textAlign = TextAlign.Justify + ) + } +} + +@Preview(showBackground = true) +@Composable +private fun PreviewSharedAxisDemo() { + SharedAxisDemo() +} diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedtransform/SharedTransformDemo.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedtransform/SharedTransformDemo.kt new file mode 100644 index 00000000..3e913c78 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/demo/sharedtransform/SharedTransformDemo.kt @@ -0,0 +1,261 @@ +/* + * 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.animations.demo.sharedtransform + +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.animateColor +import androidx.compose.animation.core.updateTransition +import androidx.compose.foundation.Image +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.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +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.saveable.rememberSaveable +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.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.datasource.LoremIpsum +import androidx.compose.ui.unit.dp +import androidx.constraintlayout.compose.ConstraintLayout +import com.example.compose.snippets.R +import com.example.compose.snippets.animations.demo.SimpleScaffold +import com.example.compose.snippets.animations.demo.fadethrough.fadeThrough +import com.example.compose.snippets.ui.theme.SnippetsTheme + +/** + * Complex layout changes use a shared transformation to create smooth transitions from + * one layout to the next. Elements are grouped together and transform as a single unit, + * rather than animating independently. This avoids multiple transformations overlapping + * and competing for attention. + */ +@Composable +fun SharedTransformDemo() { + SimpleScaffold(title = "Shared transform") { + DemoCard( + modifier = Modifier + .align(Alignment.Center) + .padding(horizontal = 32.dp) + .widthIn(max = 384.dp) + .fillMaxWidth() + ) + } +} + +@Composable +private fun DemoCard( + modifier: Modifier = Modifier +) { + Surface( + modifier = modifier, + tonalElevation = 2.dp, + shape = RoundedCornerShape(16.dp), + ) { + // The content of this card is laid out by this ConstraintLayout. + ConstraintLayout { + // The card is either expanded or collapsed. + var expanded by rememberSaveable { mutableStateOf(false) } + + // The ConstraintLayout has 4 constrained elements. They animate separately during the + // animation, except for the icon that is shared in both the expanded and the + // collapsed states. + val (content, icon, divider, button) = createRefs() + + // This transition object coordinates different kinds of animations. + val transition = updateTransition(targetState = expanded, label = "card") + + // This is the main content of the card. + // By using the AnimatedContent composable as an extension function of the transition + // object, the animation runs in sync with other animations of the transition. + // The height of this element animates on the state change (SizeTransform), and the + // ConstraintLayout can lay out its children based on the constraints continuously + // during the animation. + transition.AnimatedContent( + // We use the fade-through effect for elements that change between the states. + transitionSpec = fadeThrough(), + modifier = Modifier.constrainAs(content) { + top.linkTo(parent.top, margin = 16.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { targetExpanded -> + CardContent(expanded = targetExpanded) + } + + // The icon is shared between the expanded and collapsed states. + CardIcon( + modifier = Modifier.constrainAs(icon) { + top.linkTo(parent.top, margin = 16.dp) + end.linkTo(parent.end, margin = 16.dp) + } + ) + + // The divider becomes transparent in the collapsed state. + val dividerColor by transition.animateColor(label = "divider color") { targetExpanded -> + if (targetExpanded) { + MaterialTheme.colorScheme.onSurface.copy(alpha = 0.12f) + } else { + Color.Transparent + } + } + HorizontalDivider( + modifier = Modifier.constrainAs(divider) { + top.linkTo(content.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + color = dividerColor + ) + + // The expand/collapse button is shared between the expanded and collapsed states. + TextButton( + onClick = { expanded = !expanded }, + modifier = Modifier.constrainAs(button) { + top.linkTo(divider.bottom, margin = 8.dp) + start.linkTo(parent.start, margin = 8.dp) + // The button is constrained to the bottom of the parent so that it remains + // visible during the animations. + bottom.linkTo(parent.bottom, margin = 8.dp) + } + ) { + // The AnimatedContent extension function can be used for any descendant elements, + // not just direct children. + transition.AnimatedContent(transitionSpec = fadeThrough()) { targetExpanded -> + Text(text = if (targetExpanded) "COLLAPSE" else "EXPAND") + } + } + } + } +} + +private val CheeseImages = listOf( + R.drawable.cheese_1 to "Cheese 1", + R.drawable.cheese_2 to "Cheese 2", + R.drawable.cheese_3 to "Cheese 3", + R.drawable.cheese_4 to "Cheese 4", + R.drawable.cheese_5 to "Cheese 5" +) + +@Composable +private fun CardContent(expanded: Boolean, modifier: Modifier = Modifier) { + Column(modifier = modifier) { + if (expanded) { + ContentTitle(modifier = Modifier.padding(horizontal = 16.dp)) + ContentMaker( + modifier = Modifier.padding(top = 8.dp, start = 16.dp, end = 16.dp, bottom = 16.dp) + ) + ContentImagesRow(images = CheeseImages.subList(0, 2)) + Spacer(modifier = Modifier.height(1.dp)) + ContentImagesRow(images = CheeseImages.subList(2, 5)) + ContentBody(maxLines = 2, modifier = Modifier.padding(16.dp)) + } else { + ContentMaker(modifier = Modifier.padding(horizontal = 16.dp)) + ContentTitle(modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp)) + ContentBody(maxLines = 1, Modifier.padding(start = 16.dp, end = 16.dp, bottom = 16.dp)) + ContentImagesRow(images = CheeseImages) + } + } +} + +@Composable +private fun ContentTitle(modifier: Modifier = Modifier) { + Text( + text = "Cheeses", + modifier = modifier, + style = MaterialTheme.typography.titleLarge + ) +} + +@Composable +private fun ContentMaker(modifier: Modifier = Modifier) { + Text( + text = "Maker: Android Cheese", + modifier = modifier, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.8f) + ) +} + +@Composable +private fun CardIcon(modifier: Modifier = Modifier) { + Image( + painter = painterResource(R.drawable.cheese_1), + contentDescription = null, + modifier = modifier + .size(48.dp) + .clip(CircleShape) + ) +} + +@Composable +private fun ContentImagesRow(images: List>, modifier: Modifier = Modifier) { + Row(modifier = modifier, horizontalArrangement = Arrangement.spacedBy(1.dp)) { + for ((resourceId, contentDescription) in images) { + Image( + painter = painterResource(resourceId), + contentDescription = contentDescription, + contentScale = ContentScale.Crop, + modifier = Modifier + .weight(1f) + .aspectRatio(1f) + ) + } + } +} + +@Composable +private fun ContentBody(maxLines: Int, modifier: Modifier = Modifier) { + Text( + text = LoremIpsum(32).values.joinToString(" ").replace('\n', ' '), + modifier = modifier, + style = MaterialTheme.typography.bodyMedium, + maxLines = maxLines, + overflow = TextOverflow.Ellipsis, + textAlign = TextAlign.Justify, + color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.8f) + ) +} + +@Preview(showBackground = true) +@Composable +private fun PreviewExpandedContent() { + SnippetsTheme { + SharedTransformDemo() + } +} diff --git a/compose/snippets/src/main/res/drawable-nodpi/cheese_1.jpg b/compose/snippets/src/main/res/drawable-nodpi/cheese_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65be51c6b192dd754581f9402bca2b06df57290e GIT binary patch literal 92915 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ℜzxJb@s8F+Jurt- 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≥dHAQGbThO!({^xt& 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�p80X|bJ&pM?3^q;N9 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 X+%g+T$NvDyOh(glZg77L`!E05*!QR| literal 0 HcmV?d00001 diff --git a/compose/snippets/src/main/res/drawable-nodpi/cheese_3.jpg b/compose/snippets/src/main/res/drawable-nodpi/cheese_3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..362ef3874c910ee389ee1195c5419476063be5a4 GIT binary patch literal 185185 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𝔓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%0DK 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�jQ7!$UP~xD#A?8u}PIKsz{TkfjueF6Im$?X+0$O zFOmY2x_=m;5tPSr11dQ4u%jVL`csTxfD(Zgiq$1XOhDVc2MX_`MgIT@l_^qxnoNzN zD9f(_4HAf2pBs9KAng?-GzuyLB&o$6kgt>->$!!*Qp*l1JJPt znC7?;;EkaJ%XUGB6c11c+K3?zC?S`LPz|`D>_4SP7OAg=<8I*zK2nG$p4HrQXl~F} z%c&Au{Hh$wTnaDCdPylM?Oa;90v13j5g(-x6u6sMC^B|TN7iakoAA7_phu)6dk$-n zTENr*5RwFtKfOhT1k%7rtr#+dYuK6J9ca1pjg z4vG+YM3V#$_=8aB7jt)IXU=sZO3F`N`d0|rN`mBQedfYQk~(ktQMxNOjyX$BrK!d4 zQ3VA^9Ypi{+La_eRiUXhf}X8&6Xh+17+-Q=RaZjMl*Vhw6p#l2DfAG4X{D;uoC(TY z+sgFGDN45Ikw(>Rjwb~k+JJ*5PUO$&P(_txp3{`MwSc6iO!7a?3yr6FTQ%VZad)W<}b73OKHanr6X?Sb5GTqZG;*K+UWr3DefnAYj%>fsX<48o<3%&!>F&!wRQR? zxDpjLm@u??&bZPN1du@M?_PsTsJ7W(Io!0|O@ONlq$!scNMDwJEvre62c_nm4cbgr z0Y>_h)m*@iDnKBhB^F#Hph=!RBc*kD3JJcJR=qnEl1MWmOjiiUXnE#}FerqTDL{=} zPZd59SCl(&LXrYy6TBWx4=d?ND|EaP%h%Z3_U*B3=tv+)8%Mu-^SjQO&SiO9+g7Ta z0qJ%3!Vd{_v1seofre$C~2K6!ay2~MHEC6-}Y0e zadMZVEcqblX-JVgZ#C?8=-X7h#<&rDNApOoaHWM5p`|HN+DdEDK@dH!DXSuha73dC zc@S0s>c`0%C}Ob3P=;ksxOhP9py0PLhf+( z(CU<0h5of&(h9k&m`YMo zI>?wmu~YRLe5qs}N@2KCys`wu?m$1CDn|mR=#MFhKYOPs*g7N~BVVGU3%0UBE^{icH;u(Tg)|+T9r88qL7htx+ z)g3hPUUpAVfztHaZ%>jkp4rLoDFFSP>gl%e_*R~ecjZ~_QPyn0SWAELw6-DCkdPu` zy@s1`09~&ktq-YwsN8>Qu173h5E#yFYK7&?7q@F^17djT z6!$QdB2EM22+)?ZDsq(K0WE#zK2b?Q&yD z^?7B%wC%-AY-sHRpOrMQ%2w&nl{VNMkycpXI!dck1~SE(+SJ=klgTl@$BH+T<#U^a zhWjj84T2FMZze?voCP2r)O~qU)EV?~#8Gn;mrmt$i(Xc<0U<0T5@&9oT3cQTpqNRt zMaEFFa0p{ujzIiqA0Vnk)~My?Lbh>h{{ZpQLE1Qx`~HF=EzR%~Q(hM%%u>9t*y-u}-t$D>@|5P9q~hO(r3l{HD%xfw(DESR8$hcm zE$4=JD{2jzmjr|9nWa7E@DsUN`zp^F@WK5nSg}{$Kg&$zeiXTZpwg@{KMZbRfBq8E zm^ytt59?gwJ4tBA-9_H;(14V#)R+(n8_*ZDnnxQ6Hc@Q&Q2o>)yB7+FWbA#ZZh1eI zKwu{(l%CJPOZ$?Ls~;&Ef0$4-o{@;y4HY%QejKfULawcfr|!W0{#6Xpllh8^b453$ zI!}PueY0?j6hw7QPxhlRv4{g)>?GGd4Y0~q6>gNEYyeEh(w1J@pqe!G+KOKIR>L}w z7#arzjpMG-OKjz!t3yu53jtM_{{V*RZAx)0%<>OPTV!*rlpluhsT^~|_Vp~5LQIli zaZZnq`jY2o0fkQD`6<+u5Z?U!x2skhC@OBXS>jn;=9IFQiC4>tmNSSzLA4OO!EPD_ zK3`GCZ`r5-9EHiC*wXnus^23Zg42TgwjU<9PPZArew6pz(8Cs6JHxy=5w*sZj zJ*y3qKMCs&$oSjp0W3U_s05V39`ptW98xA~s=-eVcx#x@mcVIBOl|4g_r(*m?+NEt zNTk^QM8{bJRk<ewrmts;-p{xrY`QYWC)m!-%7eRuyJ;f^5fw=VV?w-Hx3B0)Sf`1lW%KicA$VV z}VluXGHy(!uzHvp>v)@qVF zUx7z1RHPdq77zS?N+@&yoTG8Yl=h$W_kGld4Y)`m1OR8HSQ}73l%b3gfUkfzEYdvI zNly|{u;#dJS;-1b^rKjZ!2PYcPyYapqL4Qc$GD*X01g1;q?nvCR38%fKeM+hQL=qW zj@t_9^f9x|qI(>ADzC;q85*=v@~oVZu^MN3r1)7@5iztfR0k6Hd%IvQ3A7{A#-C9? z)YU>j8BF4Cm2-9AhBfDwo3VKJfK4UxHKUS|3x|a*!2TBVRxkspwsj3g{)5NqRpXbD zu!YgQcv!_g8}VErWlKY{3>iV~z^g1DbWCIJ=|L|%BECkji)WJ^gc>(Fpk+vIa*$j2 zGnwyHl-psKOXdki!l=uujxla1n+x1%0;jlF!p3~Wl$EBz_QZ(=vVUT-cJ4Kul5IIDYty|_WF)9U>oceU78WAx^!=ZhQv0DnZ=dGLRq8Pr>{xg>7| z1W)cN)LyO9JmJb6>8)Eu@lbqk;h#U@A#NK7oJ>pvn!L^W2OK$2e%Cv0+Hv+OtHnGw z&3H*7?+3g_nUWJCv{|c-*#%QEIADSbio1g12-$Y8qp&GE(}tm?2Lcm$v%5*3Dez-( zM-+cqy;=?q1r(-U2`TcH6nEl_mQhh1q5^>@zVlLBYpHm8U??mZnHA0jau`mi)S^u7 zT~siOydz6{5=w{%sIC`TLtYV~3fL40;-HWdIG&e+R+B27wvZ`#Cc@`1gkjaIQG%|< ziN!!9BGi=<2obzQP`Sp}JXl60Dq6K2y9lN`q%8)m8roK4U`SL%^`x-SpqLm)!gQ6V zLZpQAyo#(=-x4yFx9id%=_U`#q@N1F7L_HyTZEM$#7{bfNh-%IP{B$q(x8;-a42$Q zQp<{b5$7d2w{qia3PCAe&_^*#nPK48@8%pDEjy*4CKkbGLe;-~*_uEiQ4w z6|K{WbUQ0Uy0vXGJ?VV=rD`BrE|m7u8pLi8hRczsa|s}ydRYKwmGN(G4iupXP1UK? z662ieCTh%2ssU!}bXEyfW;bdYQih1$CTHneQOXC|cx`Na4th}N60k`C2;=puA;9D; zrwa?pncMFThqZB_fHUP}0Uvfq?YGXN@`{R5hF0lAZH-QoxbH*&@QmPDSNDd#4&oV_ z=Go^h+%1?X8_&=4r^5}KRb4Y(bXR459KIi%!<(>G&7kyw!g=}Cox?~2ep57hf+V+e zy2X(^HTxyA3HvA!u=Mlo`qzlpY3jjWLE5$Ay~SRZSrG_kOHfiHZNGe1n0Ab_E7irW z4j7~hjHKAx%hW*}AG=zce3jW%HLPrdB_RI*!UBrcmbC&oJdb+ydR;&wit$^9kdC@d z_qi|1Nl|WOaUa&UVwt2;^UsQkt?_)awp31qAjhVzvCSS;Qta1-2Y(8=L!hLT!HtDj zA-)Q%Vm$?fF?58bE+xn@)A#LFWO(^jnAZ-+BNmN120 ztt%}k$rH3w0X`6ccvcO@QBvCq@>KxrB9{F{8YMljpDLftd0ivTR1Fin?;k44l3)$3 zm^9qm#j1nEu%_8{)RH|raWlPEI?g>5!J@xtOe?jwPK2piOm3gMRpi%za-7Y&@QHlc zw3I7QDcpP4J920lDTit`))aF7;@Boy3f0h==d~f){9#yb*3v0Nu5XYDDgj5n`&T<$ zJ0(n8VepVA5MZfi&<|MYNRwCywQaj~VD_ACF-vr86oO)8k+APnj^+cgl<4+%I3)|r z*0$i1@IeEoS_8QXwv#!*7_dMFPr3Bn0_w`3KCv|By3g+!*!-!GUc#~+Gls3Dz zpb#hb^r3#Z@vvDpbyWnTFUI9S~&lDAT`ya|b~6}xNSlUBW!(YJ=xm9+Q{V6saI z&=8c7zVj92{{X}VkQb(Qg1RZ%?=o33f>P^$RaWNNuYKLDU4E1iN&$=KOJ>5;=A%!s zuXCW@32+O+ZW;!Xe5i_iLbJ7b1U!%d-=rG$dVP5CyoTYRC#7s)9xd3nAvaCz2J^jb z!7x3Q=bsU1PdLww*j2TwrR(Gf9Bm}i-8)(`mJiu$o@ep*3UzLQe8AuT0P0Eq0IJEG zTH3cOdT7htKq?bAc*kXM!-cD_HYHnr_^cgX=4#p(s?+U(!iib|;+KjKU#-;Jt6E7Q z!Q<&lk9Gu)l@o0(4Lo~MEP|{{7r1Tfg)7P`fG3IXTd?Z6i*mr1ZF50ejh3?OV%@T* z0*nLn`HHk<6>6{H3BXd*fDHpsOqFi~ar2`S04)o&?+1z+GWh{X0#yT=7S6>Vhd&uk zc9=?#N>Y#kCxN|4)VBLvAbXEVd9qswR+TGE?YBx7>cPSv!@sIbID<|E?3Jv0$ff=z zy(hOy{*-0a+#rOWL4mgw4V|SI(0%dnl9!ehD@>4LNv>?P?$>@CjH8;rP(Hma^g5=0 z5k@5h_Lszggrr?I=uk=$Q?~x}w`8JYi&B)Og&0b7kNt%kIDuhv+I*~rn<qGH{50DYoiLe$0}4 z_BFzB$xEPc9jKk|L}5w+c7Z_fLU)Q8H4Np1*6E#COe4cPM;$I3F|p*0ri1E7*-|1c z6sFiuhBgh9tu|}|J16s|H&q=~AY>MO%0O}jvtks(fASD2A0r1!837NXhODf^CQ#T1 zZKI8Luna`FmEEhSC^&nByh3CTzFPgI*REUK3qQ2{?exvG+C*gIFW`&oD% zRZ)s%MHifHR{Gb!6q=O(CpK_1FMjdkd ze{90ivB{M4^Q&=gFuM*pNS9`smd4><2UtQ{XUoHxW8~NyeJe$}xJmZmRXbFTJc&vi z_)WBEs3{3RorzE7PGrp|C}hz-u#lgHn>Lh^gtiRwQ|(M^nsSopT+wOr)8V4l-KNNG z4lA~g>sBLcPhldR`=^9>2W@H-p@yV!2@yT#sjDp!k!HV$Y>Hl-Urf$Q>S1=9DJtsyc0#cgejyDH-ewWvxE#C1oph8 z=fRXYDElKNC;5OKy3!GYI0l(6{SfTsb9QHuVIe*kVU7ZkY|?iC@dSTbtnW~UxAS2fTO6)92^sLW z3{r~KZj|yp>Vv&W7$2I|*u6a|HN`vGcyWcXq?VaTowpSDy+s`iss8}u(s^oRK3bs;Kpvcq61aI{E*A4PI_LW*)hCnWq+RqNb znLpT@B{{Yc3P9Zp?vqukSQ9R* zU)h1}1Ana>cL>jAOqxdnL!~vhcP=)<09~;3^o@^ipETC%o8zTf@bSS>EPD{k%%McC z(4GvDx7MZl_TCCH0lajn>|Ywd7FL9+%>}s0bl=0to(5JC@THc+!Nplyfip4B@A}t^)&Bq!Ug5-K zeErUfUr|SK+=yVF9siV1We03as7Yev8%b@ThB`qPUNT zc@b+?t1LQs=qLButwp>_4Tn+vS37Qq{{W{7tIa+YWILp|foEeR!8;J2Z+g?w@AJ3Z z5BF5&^xm2F4hq#=^WY9lx=ZCY)+hpZ(htj;_j^yPWMggQpZoV-OJC^7TnGl1g!qNv zHUnpL>2BGSpmQKW_OGMpeOzQ{Ab&;k{a2$K8RWI&9q^Y7wnB?`?TPvW-nN;&*`Tu| z^u%M`g{}G1DBEF-7R{r0wFE&?|+_u&?0Z_M%C8w1J03>l0x+e!K%ssSe zCEH-50y(J?c~Am1C4(!!$YuumUO6(z9*_l0+#tL zAcV- zg)N333Dumje4>&N?xDHpX=ULy$u<+aSvvh-6qpYcmkrosCITH3$uGM58NcP+IYO&Ox3qm;0ZceOtb99#wTVch{{8f1- zZQ8Qfi+WGi`2pah{{R7HTS$$`r5Qz9b3g|v{A8tBu$2&?wGF?eEb1(P6_&Wwj3(4F zyLUrGD@i^6>8miC?RKPcYJ%oAgdGJtj-6{?OZjrVHt84wfmLgOrPU>B)}hnsS}YV7 zodYY=>LW^rZ+-gH7dt&8nn`tG8VOlDM-lU`3%M<-@K3>fOEq5E+&gTgA!pMmCPedE zkZFx_rB7F=;4A0lcGJL*hUTppv@X~Y0W&Ea_pMQ-4rt2GY+?TZn16NEj|_YoZpo{4 zCe<(mr5b6vh_OSZVixc?Kk&BC1<2{OWuU8lI{-i%pYdLATelC)Lf_Hqh_4CG`vyY@ zBS1>JnD?(Stk4oEdaWM4y;@)xT3uKrndv^&m^4MbEkUjx6SFyeDAc71Fkq4RR*X$^ zaI*C;4)+qH_^uF{Pz@>|1ns<5gfFg!SDw{pDzC;c9bwX2P~Joh&0YLe3@nC5Zz>6K zm)lCUrIe_SL{trR4EC)@6N$=;VpvL$Otz3l{A@l|oi@6Stw{8N&7cxICdn;aBs>&Q z6c4%j&_lR@dr$uW45Q8OwKYa3Os04>cH-r_K|LosIi7M@yz;YXn-gIKTL z8_Jf<8$j&#t7r3tqL!joboG<8)hV|gUg}rk+B1~Pah+L+N|NG1+D%scYwME+Q_hK< zcA@yDdu1VEPBu2%tQvee*>5Rt+u|Nob%^+e-leT>N!-u1H}O75LHK4@-9+B;HL#+k zTqQf18ouweb>@=!2(o;qwiXuANk@w8jX+$O;%8)vp)1~KDQ>B)cNE2m__o_?b6wI@ zk_-TOntKC)q7_pp4#~o*@vj(IY?PwurIhX``_-u7amW}|<<~S_DyJ0jxh=khChtm; zc>e&Zu?~>ktfy`bZ(XZ*!(WNUE!=4jUIdfKQ3QVYs=EE6M>O75y$<-`@yxB+%6}2o zx9CF*E!8Z5ovX@4u>CnO)$0$b>AXb&`l}8902N(s+}*u&w-6KFPvP~g?IzS}$XFWP z?=}ji^KXtXG~1=MEOZG2n$>GK<=rePcR=xXOI@+gh-^$Oq&&45+)mYIEkvK`Rp*(G zZ7Ax#C$k-uG^mqI_3M=g~4{=$eGxWtprgz`30is8s^YfWqdYfCA6rMwQ93@aTjYceT0t+H1C#`01JAD ze%saPcSlmsJ1_?+0`J&Dx6qYzff~210k~cjDK^U~V>rtRAgR6v#(1v$Xa_2(&{t{Z z(-yQULKfVlozD@p)Vo{(r9a`uzUoh5iC7@((uE`ux!{hKS^K+KGMf(6{=%ABVs<3* z*oY^7YO&v1JgY}zecdOI_iQ+WC8U5inCG={-a!~r?Ulo^X}$bb$8;gq)waWqW?KY=N<_#!*1Q_NM#o7qXgG>Q zVmXHoWvTl^C?k$2Cfr!VWZD?^_dlfoyUsQUDk*gCU_shTPdt7#=`?%8hzB;YwRO zhZYvJ9k>Q(-n|qW=T*4Z?!3hMMqQJSvV>gt$AGr7mfdXwkv*#RpHg0Ot4*eewygz^ z8!&J}94S--CMQj3yH-a_HeDkcKnY6xTfr`ZPQT)f{V*f3sb=FzpMhZ?aGGE78xL_S zAu+K#@AVbT-yPGsL;f8fl9(UyLkzc8l{DXN&sv!`p>|V$!kQb5ruV#6!(2e}i$-`% zjs2--cO8X4f+O@tHR3grl9lXdvE%#IXYM4lo60Em-!!MVFNxR%vUI+*B}OK&b=$0j zQ&*zfcG$y*FDd1IE#=U!;J(OEnIn^4A6uxNLVlPd_AA@z;nPIheHEYn_h9yE4jZze z!bC>jI-z>->Y{&Da6d-o@}$pw@d<@31ufnr9@E#_tH}o7<6xTpXq&lcfFaERH{1L` z*m{SWw2q3JC+M}Mxhf*v^cTgAMZfVEg|Lb9i>T^Jh&5IFPPleUznZi+%^lDQso#lA zHbMo$ppzu1dTF2F+lR?1!+y|~`#`ib{77NO3a?YQN$LBVVA=KL_x#lpzUaCj6l?zg z6Buhq0T+z~M3JZ(zTLNQXuT+bc0NH-{b|wYHSIjIPx1>YZDxv0 z2H`Q^d{8!oIDXWCpK@e>YP%aZ4%|woESfs#5TQ4p5{pukH_iYIfETg)RffZ=IdO6m zsL=+~S_()$CGjKx+jxm7SN_u;-_oz?j;W{GO?}pM&C)pgS`>d2_=ChQ_jdhh18pT| z)irVL)DjKaqxgL|zX}y`p$}{v_eZqos!hRyK+ZWK|w=IA- zf?$zYI^71P=ZisCG}`SnXE<9Il>RTW<)ba3$5~R6HiNMGSC8C1DXD&37qQWLvr8D` zf~_k*jO@CG!7F7ck8Qo;Ys|mV8mF9(_gf>@@U(kE#v$>km)l^hI?*IZ+;;0$BmNys zMYvz=5j)q>01ryC#C|%kwjFV%u5=y0pK&|W;{F{pWhBrKetFOISXYlq)CcmnW{&2^i zaL?E!qvM@SvHS%oBXR`#k~rq7JNR<)EyB@{Ts5ElXZxmq{{UaBmfR&*3)c}7Fgw+V z{{V)qa240;65aemb=RNfi+AI%5`DE4xZwoAAegHz{v5OpAX-G8zHt{;N`qq`8<^Pv zO_y5&BTBja>6(Ax!#bc9cY5kW`LX-|0PR*dhsMTharKnkJ~!GwTGRgk`Fk1d%A~%z zm^!ZsDfq(2o@v&uNl~6AOnX&>=!Uka{{Tf?`p!omasL2y0meLhe;QJh>rRkQ{I>)8 zR{on}5dhE@W~YGsa@iBL;klc{Puka`*s@VTILjBT^!$K6STzgjZzpxMPI7TXDh=>aBr6ZlXO z@|hS7?HU;`B4f1P=@>mOJ+Ua;tcPC|1} zhL+?V#t&@Oi{%IbK+dWBNBE&*z#@}c!UdJB zIe>W=%0Nm`3Xa6j*0r?mCn~n4d~j91V+jcp{6%sPZ+hI*U}bp?-Jzojsk?yuLO`B7 z`_{l`h2}63DjGKfuV2oHDRIKNJRk7-?>b}FO(xi_fT5~EgT(Jw^tygVf}=j7u}kPz z;h*95+YYd>aoZ$?l&5l@Ojh$FB7pZS)=kOY;JXFkSA@->yI`wS1EfI%rCK0608+Ud z!EFF3Zys037S=2_e1WDTanEY5=J>TZF107baAui8R1gsWOpYlJi;(vtW2^HjvleJ; zC|F4Y+nUGJXu-)>VAP)pnY1)zO`Rln6_-AU-G#9hw}{G7=C%?EQc3rYDQ8S=OSO(E zj}lvI)Uyio?I&t*(bg3SCA9{`18Z-PckjI^+HyNfYx1Gbw{D0`K;NCFvgV9~fUoJ} z7w%9DY33zbR@qlw>ndnuCcs*;OgdHi@f&s=GDknZ-@Q|k+1l09$j<>PV>PvCP<+DF zaA#voX>sf;fH0d0qaE=ykpwdXwl}=4;U|^^oHRE$-N-4PoJjSj? zTpCFWtyGhBYkMlO#e8aYdV+3NutX3K9@V1VxR!;FsNKgdO254Ej`i6A#}bjhGc|Mk zI1m9CRNcFg?qQ`Fx$%Dy3($qFDv3U$`48VTzwoBr(yJ!!^OBgZyiCTg0Z*8qH{C`) zU%z_3Gz}dEOzsbMNl}~Z&x&3pAinUPy5oP9IB6T?B%M=Ufg`A92(aWdi{i9-g$JdWhQnMW%YuT*Os|--@q>qGd=T6Db+d_NK}w#nrn1H z-sc1_*S_*sN3ahCF0QQ@`%3O#l*~rdsWfdSxTV24{{T_KXw4rFOkA|Ji)8}`)UE2P z_U>6dE6mh1;?}KZuZKsPd4FeNUSZo|6cOkeDu?r3_^P`hRZo09;tO?Qn>Cm*5J>&; zSN{M4K;+V?KUK>hri-74>_LPdHq~fs2#q_FKs34JR~gUxRDFI4-X+2R0OGi^H`Snx zKfmcx?K6p{^o;6FQ-bx+h8U%jWh=KKLvUg~w7GO9lVaQ`Q7R3J<@`>;!hE+-u72*~ zs5eSLSKGMp0-!evUUArxphy&XEETy1t7X*TLJN$n9D4zCs8|o73XHs$aBzM zi%+hOhb1Ap@z(-%m8e~4bDbo?Ke?>;Kwa6&*@syYuCY%YaMuc&7cDm0cp&r5bb2Y> zf)vZGfOl8=s^b3u#@khD(Qw#I?WD|n>s}2k#;?N5n_U>Zs5SopjaGV!zSx2Zl67xe zI(TFY&CRZ5P$JVZykxdfQe3-hVoU{A#B4Q@OCZV}c}F+n6_Sh_w8y#Lx$d(~P}yTY znLgWiy=>S3K9ZfJ>giRaaTqGhY-p}2`JWhVq8D=94(E@~vUQD>!yN^q9PAw>Pk7s8 zhLx`U30iiIKu_UWr%ve`%ZX2mQpb;R%3y!Ti*TT%Vgdqp(zE!`vq>q#K_Afsn)rqZ zNDq$<1r)c4f}l7qe_Au7mg&|~j=7bJLRXI|XsgS_!Qn(|o++-=$kU6pWtxb9w^A?v z0M;qgh&Z82f90$9?^;p8DI9bB)d_V`^W+F2B)IYQyM-lA;%Run+?cChLP7UQI*86) zgxv3rmSrPd+BFWLMnCGQyGbYdvaAikfChq@Zv1q#gBPg;{{Zd0RQ~{nI{8&5KX&9e zk|}w=h}Uh)X+`SXK;j&yOSWHP)J49Anqfmn#OuvFE4c+mOl$kT`&Bu%hY{=xo$3d< z_N?r=@ke5^(k|~xeWVDlJ-BRg7M?BszwEX2{-cKN{{Z*-E9V6Gk-!{7NnP?ABm*T| zaqnJBQR&%_xP|E=^$bpJ-anGDEdC&J^1@1QnNx&L>e?!g_#Cavg_WZo>j`a=j#rM@ z3fBp|XwKk+vc18rIP^1$u}dpgyG6>0NLS--3aKAx1b|^jrEBRla=80}{%a#qxG)L| zBaQgkhcepBPbGf(qwqDUquV6s_EhHHnj1@7bB~P9-8kz_KDPmq5)V(Edwm|=Lz}W! zlhtmnc_GS-#4~OFAf>O*T6dky5I6q-6}re;Mnc4V)D4vocOJeM8W()(jKPEZ?M;rF za4A!CWP5^?;n>@*q=h}{jmcL7y+58Q5R~9jcV{uS!-<#Hk;;HEwJb;pr2hcR?(&^o z&Gw)v3AoTlNsg6K?9Bm%awm(ns{0kpf%UCI;lh*0sw3-A=<`RUa!5R;n_S8EWrZ7s z01OE;zwh;<;0tMUW2XY7mif|BQf{EmsGX>23@LPkpSo+rbL*&CLT(fwZ7Mqs^aYiI zx><{I6G_iEdXnOA7bN}Cqx&@u(y$B^&&A2vIY}>bjv;W|{i(zW-_(Dl8$(IrMWj1a z;%zsxkKQifw%2&!M+5`46p=9gT3sHY=e0Ap#K>(Y?M{Ilg@0;Wm^yOrs6oL|>`MLD ziir?&-Hk|1ynR0+`QkGbYJR--VYX@$WgFpM6M5Yw8W8jnr7 zAD3#3c9LQzqLmh1a40CaAZ(C!B50iU(k4Xi?H-37ZG|C9bw`u(_ock64QV~5lK5TH z^+JI&x&1zsz=4WDLyNMeI9db904M~NNF?(?B)$S`G}bLB#IW?K1tdfs2E_Z&>?B#OFmrAQ~s zi51gA;Oumg*Kt1Nmg4v=GD<>#-bXap^rYmZzI*(s652(|O3G8d{PFEp33xSFN|B+= z&I*j(ST`y{Q4=LG(yX}QQ<4!>RBikvKBAPVDw&Ane5tXE@~M3i4TRM899v8jkmquG z(}4rDw*rzOl9L-u{b-9Q+K9;p!g04tkQF9kO(F4>WLd&J$WnxeKau8zm`!MNMIs7j zc1Te%&p!18{GpONb)!KokOC5vo#R&j0EKbSNL_6>DMy^LRU4)UUFb-x6(#rIX>&x9 z0z{!Zf=L>7_M#)gu+Pg&t)}6(0)jV)I!@#M{j29McL6}JqD>)lsUC$bK*)ta2@|;5 ziH;_TNiDkv2=X;2Nlu=pRB!Sj>G8sTZH99RDU zg859r1ReOFdbPv~0YQ|O(ORjQ(-&n?s#JH5K2@=&hK>?sIO9sX$AUu&K`H_}Y<;V8 z2K=upxpD9nMRphGfHjo#F}NSNtysyWWm9>FIJPyR3l0H0_Ns5uURBujnZl`YEa-%- z)fK0bMx(j;(jB%F?xm#$v5@m>P)ks;f*_MNkrze-0vJbG=+=SX8EE;V`YG z0_tTZBmg#zzsaYEv<#$%V1e3BhEJ^oA36kls0@Pmgj7gD`zn$~vSfBLKPqFLV+lo= zzbRujiCRfgf|O4KeW?ZcuPPe{w~$gB92Lw#=9pv>wJaw{qAy0~04y#1@CV`j>_K+7 zE3sRff~6F0e|y#a8!Uq1g-=l>3LaNxd?D~zye+F>n*h5&M88xIPUH>8?rUk0o{vj6 zHQM={K_7HR`}NwJ^vS_RC%3MYaUKX;DN0w_8zwj-pL%d$0cHd4C$$~S9tvA|B}%bG zcGELRG1U{*sY&}oLN+o@Rep>NQntw)dP%NY%-DF+)x+rm zOepGs`~4|z+hUMXyB?}a@1+pE%-OQsxYyfWDC2n&X${&V2EbD;?KN<<7`VstbEK8s zx~V(CG~u-Wh z?`oE4(w{LuswtdX7E+S0wLW;CQQDd`tpM7FN=Ir_X^3M%O-0N8WbzLl^;TUtJp|}= zE^YA%)ZbM)qsECZx*$osHSF6L})30l6?>nWFKg2rw zO>4}UyQe|CdI0LGg8-`VpiW8c0T`Af`iq9~;F#PUzglw`1_(e2&7i9gy+kYRZzOU_ zF}(zkvz3G|1k-}Uc*WT%)pKw+jg`-6rwABD(kDzu=P6=u?o>9obgQv5`Bye3o|SHI z{J`NLxWsN6)KdG}&he;;G-peHl{@OWqTFpW++w#%K~i3Hl4f;9NPr9;(j079DXrW^ z_$SVA5+Ls-KU%WLLGZcUtF?iMT*?C9a2`w^1p}aMT1b1YiAqsseU=ym5CWW5}hOSG& zR}NIQ@f#HhdAqCCvojKB>s8|0A~q>I{8hkk1z3*TXS)JbMSXCPLci|R{R_;_BF1Vn2Cuyp`PK^w!EpZ@W7k71Z z>XYbjDDTGA+#25dR=Jy{n>AdOKvL3XByY4*Wq3JgrNN-O!9m0kbifWRN+gbFk7|}l zV#+C42k4mwBML$%jkRt+8a_^-0z|I7CDyo-5}~O?ou__BYFn+nqHDj>5{sMoQb<|) zo=;)grZ)0M_JT5`mUx&=w5i}%$QqDsnm#}USB>-%WZ{=3&{kAqf+i_Ehh9~~8%P9%z1t`4(vYG8x{^2l z05o8dGM6J7(_sm`Sq-5?IF#x1o##>FIrgFYWjpb8fSK>{fE-cOm7;j2S?MS^IOPK0 zFu2-Og)3Bu6Viw2qiHS%k}HhKdm0)mBd-4dtu#a`(jOsjw2CMV<5w$4)}ob?c~{== zNpnYG8(!l{hZ4jTg%Xh}AIeW3S}@fPaIB<&5#@fQ<$S@ z+e*E?stgY3rO6{}DZ1wtKuW@7lgXKbPh?KI2{LK`6qt?6jyvcJ2$@$|tBr0tR7A9C zO)$rn%4J9(`)oP>^+r~Mk1IirEk9(U{{S3btquaEb@r}~Gj`NinFEVmU@EdnXY7$WpHW!hJCPgn#a_NeQhURlVKur| zr2{EEkU5GlD5}mR9HNx@C=J$QsI>|05kpOX4n`BT_gRcno5|t$&rG00Lt(4|< zgtbAaM&K-ty}nc?`%PD<1;c&hI1RuoH8P%oB?HNZh zkfXe)gFN)9F_E7LBP;8t$3LV~EhD=^;A{@iR_3M7 znMjkl+viVXUgBv4lNOvHOR4|@0!JHj{i$wgyp+h9%Oj*U2WRf1QGy9P*Khz)IY8FC zl_2SM61NIK2VtvksGtoVN|_p3ax$9nBBk2gYeFZc+ZtpH0oG0u+B_Ak*`zI34lBw= zfOe6!dQCV6h)a1SbgLY|pb%nGc=oNhSP7!MuHfc^Lsdz5<7v1c$s|dd(E)ka1+jk* zIVH@;nC-3>!gL1!<9mN@H3^ z+fsw<(&o?^Rjy&h(dD>9fOF2()!9bYTG!mejU!t1Is#7d+*248a~KY=s*GP8OKK<1 zAo2%6TtFs>Oa|0(%xJ!qdelg(?G!pnbc3o;{97`MS%*P^$9f6}^j*M#g<8~^3IK5_pr)5wZsdZu0>P66>}f896NJGjBMKXi+FLf;jv%H~ zca!&z?rV%#q{h1YR5oC>Wyf7ov}qG0@=YQ*D5J8{X;rx8m9a{S0uItAsO?qeWgLZS zH;TwrMkv}8mo&E70B}$2)fd6Zv=xys0_jt@>e~*+gpn|6n__cK6m6Iiql#sEIZ0Ok z08eU{HKcT|vHW^X7Z!yCf{;kyNBE^SKPtJHgG5?kRjNvgmYDSbU?1s9z$<|S*a)>S z7U^6lg$UdHQlta5VVsGoK>Hvg%NokN>HTN}3%@EO9dwm5ZltXN0!I@R;|5h{avspP z6XCnUb>^IE-sj*3i@o9S8T!xL`OQ|T!Z400$+P1XV>;(kC-)JBcKjMx! ziO5wOsm%pHvdZCv1QdB`AVlx^(%jPAkgr7N0cp1s!P;Rx`j)sqzrq;dj)P7T|g3rSEQb&bU+#(0pe zhX5!9-Ej#~2uXpq;!O9Ujjgp3&(Q-3uo9w@xdsUvK_2w^0IVdtIUydGe74fC78g3n zD&{E!G!+s&R}c|TtU4p_NF$Cur;2k;=FqzQre)d?R0^l5_Ne9w!cmF9SP3ik1ev7knt39fB)QlrKROH8PMfut1gq;p+L7{Uz%y2i%m6S_^S z4XJ8T(ExM)DMhpt$l@@!@4%mhJXbRtOY5s8l#-Jw2VvSN?9(~TwyKg&c+p)?$v+9K zVRi`f>;r}Yl8wNR%+X5I&?}*Sa6g(up8gzdRc_-#z_zI504l7J*!L?^YKat0Eo{2@ zYjwM&z4k;lB$EPX<=U4NKnuGHvvm);$q7qd067H=+8FC8;+}Nj!zt{XwAvT{0AOz1 zTnjU&+z=@L01QDvE~hxkR(uFk15vjT8~S2s#+rx1SL070Kuov33+uQ8?5G2gw?qE` zRUd}4YRS}-WMC(IZvzyYU4LXskQ3O*KR(sZ()=bxtPMF;hHdap;YxSPwMLkLV~%&K zf+KcTgqp^U^?^Ym<-c>C_h1d$Q#7m4gpt44j@4w2d zNf8dESeEuv3vWF7)=CHf%n*0>r4^rxw=mOpWQld@64Q9ONX|4=q7TN>aJx#}n^$I5B|s-`=eZ}X zG{#0%N6|=9{{XBB1OdGMRV-;IDyu{L2|{j?2@Vc+2e_^gX9ZkgALh*!>k|v2uoaY)i2*#JAXA*#(gmwP_ z9MOcr(R7bfp-KuGii%@T0)Ky{2ur#YQ)`M+fk8|Fc0AGGn+a{nwBGfupjL#V+zx(} zSA@CZ#f0ADDrEVMq^Eu;IVCl&0|<{X8l_r^91+aahhJ-&;9Zc0rKE+zLeBv4A3B46 z70De#2?1IHK+qC;fGN%GXO|Lkjb+rKT0ja{8e$@+kt>+XH{mNUC}<%e0yghJ0Vcw* z7<+2yHJ!@Zd^p>oNs|Mw;a*}uDuVj7qc_J2(!#Ekw$dOMB0!FRf8Mhsg{{YxKoSYA zlj2>{w3MAH6Te@5>WqSRG%E^0IrLdww zndv_|U^mi;o!B@*^8hN94WK9y$)I#h@1)kW1861qD?*U8#1d zYi2W>USnL=xm3@jy>`<`)T636nXM?tA_DU+?5?%^9ONdI{@-xrsdWWuD%;z=dW|bM zFf=TEM47LZ^jqMjUt-;hMHGZ2BtVWnbv6OEE-q(GkA{HZ2K zDUGgS%9$@PgzOv;WDWMJ&vt%OJan0Fvrv)?r9w6w(^^GX!Xh2mP@G#ahZ|V)Q#^CH zsdKypJQ_N|RQ5M;Rjp)%_NGT=qyUAjCh1go?ec@k1<=%piRXG`WH+@gAPj{YcNqIK zE+sA`cY-%G;`IPnvZ=h&nG%w>moHb2WXT;?Q~!m=FvJqkF*$ z7~n9TZG!I@4yem!B2~OqXE&E&T4TWNS2@9vZrb!GK_&^I)4Ie@0|E;(BN0CRBi zE(#Rp<#QAD;+OP;a+>3hvUhI#OAxh6q6GCcnLa{@-D(w>aYX%`xvyFhowwqEFx4jp zn_Bgn^9xKRYEqJwnT_`}r#Fd4SVwA^#4|f@rApM=K_+*Nrjq#q@}67>yHH$D8AuC- z`giAl&Z@t=PUZ_~s-na$#m&@>N*wxXjH1nen8Y;0pb&KLx~KcniCPSlo|0>Tlc=34 zNZxlJK!2@ANPedy_fea-QiKAK6tbWv+ob_z8%6=Fq-t;p(j#u2X-{Q@PnV8TggFTW zDKpb*QyX2bGd;qBnPjZ9cbRckZJBLvG8MmXk*2^2bt?198Tzj1{3!THaO*rZYqtRU zU=(h9*QJ9_18I5L-b1V|-S}mdt*q^B$hT=S1d=+{!5SVzvbH4&X4$aQX#k!0>qKKc zD(-Oy+L`a&X{MCml^EtYu6waXF`!kdryRyq()}cZ6TeTTFNmxt9sCtm-eZm>YbsEg z&mw3jP5wIFvNi~r-g@m_scR2P%rU#pR3`f}rNE?4+;%)~`F@p* z=m9GHdWsoUrag`7Lfc9p9l)is5HV>cVydgWNF_>Jn@HG3@l0+zOAaTpqn8-s0nnEK z)C__-q)C#Q6SLZgU)?6W_$Rm2@#7I*%qT9u) z$ic9dSwd8xBbb6D{How(1)BHg?ws)?Te8Vsq@?gR-g{MDL}2z+%`}cURL*6^EfMB` z;#N-3HtSh`L=$Ch9Z@W=3ah%lORgvatz1A9Y=xj zG`ZY~Pep*FtwBwfJ^uiF(&UKvS72@XiebD$5~2Xu@PEG)wlG~TaU7_G$8ZW}kYfZi!dP$Vfsc<=I{G5AY)Cjn)gN*q#(oK$ZeD#K|d@*AZdQ;BVAgeXi-@(=i_4N9QurIyz7s?yj} zx*&C~pjQg?MnA%at~5Q=ksq z#aa*swITB3Dp`nlTWe`(wJO;uC#c+?l~#0Mc~6PNVN{rgPi42(({}Kg`h97Q1M-x& zIMxvs9vGXK(zRO!9sNXbf4vtB*-`Z#a1+h;LuSg{>S-w;ZeWkjrN9r-F|oPbl~Q8a zcF9j@ODI$r17lg>3&On zz=)#aL9|bdoRw8)9|Wu&wQ#1_NeMdv3gdY1LfaR4OeMft*HiHHfq1Vb-6=skkT?0z zwh&!u2EeeLEMFg`W2`V{x;XrO$YS;x6xg3N2wx}9+a-^d$z9*#? zy6}eR0<_zO0I4bi_wP>pIRc1Dmr!niQ5;Lc*Tm^zMMGjwN`nJJaMTih$}F6LdxyBG zNJD<(f$vFlVHi2I6y&Rm$4W{Z&`&f0r=X{q3pbt|qSXYgr4$j*QS_@Wg{^J&lr;?L zRha%)ws5H-Axj6PF^s==lqB!tbFadS<9K?S3L&}EumfN| zwMavfT(8e44HOk+b!@agrKJT#AI7gm6_0Ao69Q}`Z$3dX6jvfrcqhEnaR8}wh(f1{{T1BkeHu9e;SXvtg zZ*e=+JT&xyq?2iF+gAi5%OFBTK;9>oAR zr@k<9sj=eu6urbbrvl%k@EJa4yRd3kO9!jOxu2Auo5D8jpM()GnEvkIlIChJ1pyJc_f@5>U0a7p*HK&b*;L?2|O`Runz=^IPj*z$> z!UNXeq?CXa)D!y62tO%KJbUt^w@s*NObOmhZ~0Ri&{4WT-wCee#WvcKxKZgF{&d~| z1QJL{NhB8%RV|Yf6vo7m(L$2MC@0hsgp&h(>w`t9`h=PZN>6xGV)*2vT#KyC_)fakb0f>tjUd>s-i;Q%B3elkc3L- zpglf+-jW#C;mBlZE})GnOJa9OCIFqsc<(^in%`@3mdBo1So>Jjq;e-ze=z<2l_8{f zRvJT%A_e0pDhhW{k_7T-OIqVcrOpAT2(PuUr4%%&CO?>-d72@n9BaZvuM~@Q;^nKM zD?nKXfMk2grn`$pA&I~W=q-88VPfS$F3A(=QQEh3Os3LAj;B(q^8&_=MLUrK4@%q9 zxVtOP?hGKCRqhFFZ!!BDa$uK0@3hv|j1uMK=XZ9#fc_A2@M8_b)TWA35|i)0?AN6) z4Q~aC2tz=wk3>dHjQXX_l?a{d!68-j=$8A z+-7g#l&Q!AsWDD#NyR9f3hOF6d6|>A4@;k=JLyo$27&-S6lUu)CUp79Q6BVh01g5} zWcPiPdlJV(=u(#Ab`U+jl+I;6t`5(IP-A%GOMPn(1twrmP5OTNQZCH}Vn8_13bw{G z8#emMaVju<>y7y;y8-QM{&3A`P;p*jL7k_q7aJbc&v-qms{zIh<|IMXQL9w&4PAwR zinN&vKwD9R29;*nQ2``x?@g2d+C>@v0LKcy&M9EF@YD$eiI3lE%=%~ZEdgL(YgKW} z_87czPzS5tz(vt~^5!7}y zMbeLjYxP=>o3lcnxN$*5!O|z6pzl<*65ax_8$ne&xqz2e3e0dv?`o=DN&|C*(R+(H z>Q(FB2oPpRy((we?O2Jq%3wpE#ol|6cIJVE9H#)`gsE3yw87S$;uLuO%^}Sm5rW_n zE6e1iy(w5C01{>@U(zPZK>Mh>_hoBZbtog9y}MG&aGcpm2`}1|kYP#+0!f*l@mv5& zFUC>!&p7?VEuiXAjXd|LEC@`VZFJw^XTnutF4{cxx|U9rsPyl+tt}KdvE^ktN4>;5 zE9eWr&kvihv$IHH0s=q)a5`^V&AOq|OHL_o#$U4k0B^KHiVH*$8*de5kpcpy=8|c` z(f4?;X zbF9!%yTh%mMLYw%?rEjC$WZwJ@T*L~_u1{-AzS_c)n_%mg%Ui16-042i_1fDk`DXH z{3!*tX&Ic9W7o=0scIocXWA((hK^OTEM-$!zcV>%vQnUhfdq+)V@c>Ia5SqY^PATy z(uFK5r+=k1M(VPwJi4t)uqJMAkY0E=PMpkj#7E;QmnArECbI3FT zvkMIndRp_E?i*!pv<#@3PLsL$)mOM(r?XFtDo+zy-19XOW3NiC_gSRCYo!u?&F2&n z0*E3&o<9l_?}TxYbX0#7!^&F=aSjL^%#|8bp47=2J8Gu00<=m(w&T=dmg#Xy1U8`o zr*4*@ol5ytaUnhteG)RJxHerE3D!^wj6gdPMj3fR%NSEZfwOGNmZYq!^P`Mr(?}qF z(^bwTZ)k;w0YCx{)y{GPXxR$C%vkw%%u7nuKKn&dpQP3TU4>C!`InElLbUg}6u&ge@y8QBVWE(e$oCD~07Owq-W!g=tp&(}S_n7M!JysW3tmgror*^UvaF zA7weC-A(C7?zNPz6iPYz_o{KQgM{nl;YRKf;7BALGGLD4tXKtBb+@$Apt1;7paGrs zqG`e=#^-0kPF--AO1R_O>rr%oIE*DNy!uiVCsF5ps2^P@dkirL9vvwuQh6IAWbSkj3=sZ9J6Kc@{*Jo8-kgxYdn?Qhe{V< z-K~?VDoRY5+r1Op?Z8k`S(6d9O{$wn1!Q*P>s16f%COe}6=7wDv3T;7rh?9?iJGoHJcZDn&M9V#=#yQ6N0nYT#_GqC0=liCU6@~=lAXyi(u zF#C5dZj!Z$Om+U0$h4q#l`N$Dg1RsUZJTMZQj|HcAkyX2*M%_5MnO`uX=3_HiV+Zd za}DV zVaz3{&?Bcw-i}BMjiu?_L8R71RSpevbGRhv#iy2-g5C}uvKH3iis623M_-m^G> z{CD#K&l$l7bBkP$&K#NCA) zUI38lRF!G~l0@t`{b^1WL3h^;BjrtOFlOxSQtQQ(6##yJKYCMxTc0aSi=N)8G2?ip zn=;Zou${nzGfQ*WO*JvCAmvv0h0_;ka5fN>fxN0U4!qR?4Vzb-ZL|un@mnORWo?lY z1AdieIGi&}Da16=Y8Xq8m6t&%>BOI{6PN?N>cQmTiT?m(O9+#xLU>S-^{I|lj?NOK ziy2L~HY_%k>Oc+-MDJ59jXfmsw_0W|G}446DqO@8Oi?l*Fy$?qiK32b>9+=ekpvKD zgFzWBakTrwakFVCTZDzBKtiPR@~6zhT!LJ4Hqm&R8ze7GpupJg_)rjP$WR>TUurhx zj_OfLQi<3FAE(x()ZE%Z=XnZ0auCAYI@#lRnLk==P6q%gMj&01ms%@O^ngSOI*#AJ z=|ukk&1l*KjUZhX%dr7O%H zm2!E4C=cqE$%hq%=nDlv4oH*v*K$NayGR^)YC%rwNgE#D=7@Zym$3Gmu3`96K?;qC z{*+Awnn2 z^{Z`yjfImwyx+Ew3&zwnC9tKF)^;CCnAm87lMbv7vQkyz_YQ@Wk~)pg6%B-4Qd9MB zbB&{Hv4;bp4+xVpt7QE<(;pCT=EzoJ)wbxVyB8sBIW44!Aq32tr$hy=$s@ZVQ2D&A zH>xR(3NSz%3F})MYl_a+03Bge_~C>tAcd=PH|D(rF`o+uS^yO8(q9d5XE99SV3ym~ zgg6S1J5PGw+uOv8UQ<@!4m_`-?}j`uSm5}25|b$bBb~kLXH_`xs>BQK{4SqltU%i~ z%!x6v=YQ`>GT|_S7y(u#-eLhJR7UbQs!r_)X{)6hyUYaukgcL4SNEnc{{SRTb9wJ~nM-BDOp_;b5&N27)D6H)k))amlgyd9*HpA6#Yr$oF;&|yyC~y# z0Y|k>RLJ5RWoIoc+ub(nx}s-o{{VkF(~3s0a&n;~F0E`e zhHJM)o`qZls6uqk#C-eE>Ld}_yDIMioiJ;*^5r{aal%2} zbe=`Rh}8i~0!ac-%4%h8rnSi%mw~k@Y9%{#-bEqb3d0Q>O>bfgQHd!Bc@iY{p#gK= zUD|27#bhliDhdJwosUYEG<1?AAk`-EeXC3eqf86sGgGX{41exc4)W)|tNqMn?zKMPkvZFTmRvf(vN|X~aCU~uQnhQx;jTy@A ze}&jXP1~^pOh+6K@lTHxd0g@WziyJ!S#2o-IFKsC9xlqP;7(Opj;TR)#FD0TkN!d-B=j{d zeU%~hZk2zI1ueHqkvnreeW(mTi%90@I)bd5v`5-Yy3_$X%B!P^t_S5uKOrW?ok|;8 zl61)2kJ75h!*;L5C${Zt)^D_S?5red1i?G+?msG9W20%}U@?8F>eAUZ_W>caE)L}O ztq9snQspEolM2PG?W~LhhevK|+nhk7(ya`3?5J*Q&328n=9Pkw2r_pkxvEc;v{KMv zTGNVOH;CN4vZzopBuBjIaqHHdl7I%Oqf$T7jHy!jj_hk)84A;ODF zbOi(w4_|)Ne2YkGP<0zuUI_K8ZKKUXVs{;<`t+-fX{!ZSk)z5lFyhQxw525|8+9;6 zCP$DHL>HS{)0(q7(6xruDcqPlimYb^7-;gK#~gCtk5E@5W7FqR$o5w{fx>*l5{J~C zAu2%}#WRN?X`F>;wEqBeXv!HXC=&z_54Bfw2tNo~K{!?RDSFF9p$JG;;QLSqUuw&# zp);|37IkY-Aiy*E*Aw6&hB8g1E4fSrr6EQ(8}08&r(RZpouk^+)pCTD6{v1`gTbb9 z1Yrx~4i-}r;Gs~W6&wI}`qy$4t2$0NDZMT?sOy0;M>|(%w5EaCLnq8I6o7zaO%Xu% z;*gNqm8D84ff5P*_Mvm>OBx7Q*MVLiJDoFalR>n&z;FnHXMX*?s=SUQ(|TPq14Z~> zPTvf_4;EH9MjbY7h3QFAi6re>>|ok%#ppy5J zY^RIdP+{px0VyExdew%wS_g#Tgk$dBl&9DD(7fW(noq)X#FMVrm8fX~dH$4|7hyP9 z%Bk_U+e#LMokn=+G}};0uTC9xc&KF#6%)U>p?I~zii2j08>>~e+Jk@|H6A|-ta9oI zh_Qq`w#wEVAP_oxRo1qKRa$T=$+NS%eCTZ})4?z|se775D-AeM?Bn74myIsvccHrAkQ2SD_)tDy_S}c|m?qazypos>%uJSz+VZrB&nC z*Qr~JTW%{$y! znqH8eoA3MDs*N!w%DVkSToh8~=?}QD77#Zgc$#ZrX$V6o;V`X&w{#E)1jszZ(>S&-A5gB`pP?R%MI>c97fODfE!Ewz)o?DgX+JFa1f8JCcv%Nm5n@l$04U`{_jt zw}o3%7oO8)rTSYXqOB$%@6A3)$+8k*eL9H3D)RS8lBFaQu<7{HB8Y*N+NlSGS-AxV zL0AWJkas(C`qh@2O5{UPD!x({l_V?ExD)%{xq}G~m<)vS&N3F+K_Y*pQXo%WPqAZMMR}zE+J1Oc5Y=sILVG)B%Kz zZ!1xAk+BkJlH7cihTl5t#w)CsIy;LbQ&s zXv?b!Y+>@e+GHbAmb6KLPU3;i0Q*q=l3TlA=`dntK*VkPiX#62l*cp$9(kt#KuVLR zfG2u?5nZZpjFXg=Efm0*CU>rDN`|zz0VtHANM^PZed3zQoZP#mnl`ovc9u7QX;z{T=B5Ils7#-y(&Jr=me3Z4L;zQZm_{`d8xHDl+5mWcBew(LFL*; zrZ%y`;3;K;gUcx@R~km~0;@b5rz>&W-9x2N=Q5<;DMMHXX&fKIwl?Pqr5f8~udu2d zVGdk0N>CO6=z029^ezXb=QlymC0+jj4%t!L+-19!+N_YVw*4#8>0_qZULtu#mbWE$ z+reBL>{d2`BSN&v-(&KpO8Yp%d}EJ}*6m=9uHArAK_g)Tf%oAT8g-Pi=KbXuL07pH zl73W&=DSQ+xU-Ekun(vwar@$!(uvo2RnwR5t<8GNWSzZ*S%v1(T;FvsB);yyD6L?1 z?NIj~f+n%236~l!u*!?R5aD4`*|$90Um?^bs#c>x4 zSU`@{bchyepOt}Uv(q{Wmfp+KI6$+K~i}zt>e9P zg2k?D_?1-OUHPv%R6>mK4>3w>!8Vw}2)`*9y4gljk;I+o`5x4~Sy}%8b6k)#tA0;f zTc7235(R{v>-Uuk3Ij=z3aEMcMfDsSn_jt5ldfQD*-bt}if+Yxn{t<*qTbtFLItV0Eq zGCqN6Ur4_VDn*_XhXd#^03d95{3}7F*T>4F##R?uJU_<~ZDnmLNH7lE8gRlI4m7P7 z^D7HUR;1|Dywe&A=L-ZX>lw#cSWyc>Cvm5*)~q`E3q8PtO0>oCVB0EIxJexkA39r| znnpC%6+ww(GT|vu1D@Od#Y-FpQym-Xf-ebi%h!D;UwJYIwOVN8+X*Jl3LZYvSZ)ZE zM+1TNp%1gg8y-QzqOrVPyEhf(xuOoiJwLS*q-ez?8#xLh?l^AQ(SqXhXQhG<_NOb&^eG(KW8_o*53x^CI43pBT zy{#F$}wDm@uT{I61h|4fT?gQkQ~3l!8)V7%>JQ zgIV%U$2`OjxOP4-rFs}#M<6lR?zICM#a+04VJald5jzo3Iz!P(tgjN4l`TmM`EyKf z-E)8@?Mo~%!qUF{$F%pObAv)y0GmB2EBN|ew$yYbQ4t*e6qgfrR*+}{+7)$;U#)UT z1yV^Q{#23yDzu=K(_?s_F#DZCdv&RMRK#rMJ*xC2DG5>(L4XF;z*$B~Xt0sLh$TP* z2$K`uxUqAjAv9b&tNuEM(kE}+P`j5wac?1IH6_J)q!$2#`248B3bUP*v@SwYM2V6+ zQx&7d*a0rFW$Txjwn74wwL(XK?MRi>EhI9qdR?mc7w}0%%r_Ccvr3#%1QMUSJ%3t_ zE}Z^x*M(bJ=VJO_OYkVULvju<@5;y%TawgtFrb(r3V)w{lqLhFM>}um%j4F*8 zRR$*W_piE^qBs*#M0ANtFiUjdwxP#K00}Dh=ljxMEexhc%QT~Tn?2hwR>BmOM#THl zpp-b;WUQqEV-#}`Pzpi_JC9-SS_uls!P>RAU^@1cu0C`R>2nX+P#!5}3s$a{+g@3d zG1U9jSj{^s zJA4)8>1`_0zr9nDp;?4l<`#Rzk^c7bThz1yM3@7f^p-x45SaLja+s|%axB6aCS<`p zRkIj(X-*9RBE)f#h$~xQo#1tYO=h19m`H9D{uyRPlaIK9p%MU(-ql`rQ1>Q77kYa(0tUUu|5;h?2X|5cF+UPh3U&5_0_ZeN|w(bNJ z>e!yM)~YZYT_FV8mOqkgu|}4yVnQ|%?^Z04L@93)-twyKXC|?OJhxj(NZ{?w4GLB5 zz~xo>h31gkqCs^Uc_C%7E759kuid!hUyrI^)rho}0 zt(CQz zej1f1B}$Gx_TrT^VWbqTJmk8_TJM-KD7tl(I206QYUFR%@v4MdtS!*T5n!mean&d( zJ0y+w+||Z7bg}gyxPYM;y;dNuGXGC-2&rxiryHX0ATna9e07wk8L+d8P3c zlyW!|fTlL~C5F=AN{Jlz->plVLeTMWAe9!y?*c-S@=ABu5I;Iqp9xaCtq=I%Qr1hn?G6off zNb3YA+uL_-#v}yztkrFz4#U;>ILTQoJMMqbyN?L$fGbE0YSHZwp(jWX57G5O@a1sF<&*&?G z@`RUm?dQ-)}#t513a%G&=9ltk~iW%I_#9t z4Ol2CDIlLQB03S?q1KS=DD^A`)P(>K8>oX77JFSzuX2uEq5)AUAd)6&<2hAjh>WJh zsal9pOrF5;Os60YB;gzsktgn}gFE!2Xg7tBhd%2@*!bet!!2>~Vk(620!S zR+_?)*erwu>IFb=sz@d~j=NMx7&!8-K8YjH#+K4Ma5k;yx4P(dS&_fsB>)G6ZkIMtQsPL4%sH`>O^PZQ zw8oHn$Wc69YWqTf(j*8-+J3(}yQPS`3m;j0uCSc2=RpWgkf|D?XL=X5jTK`|S_O`k zQJoYUdBTll2Yz@prJ?}ztm>bI3B$1T;uipw9Vrp>AG2PcOAsysmxtdc4Q;N7d^P0@ zWG>LQ*;zw^Zx25zo;E%$lW6YU5F6JcTSWXgeod~wGc*B7Q z`PMlf{*TJM#_PLj^wKsma^>%~tpu{Pk_r2(H^pxWkA%)HM`HN`QorCQoRtbi7;kL&C7C99uH2$6P`m zluYUF1taR;NQ6d{JJ-rvAnQ!Tke-9v<|thH?GstyR~ds4U?pin^pYkgsj4#f?N^|W zh$T^Y&OG6`TVZmkgYEl@NO5se0HUFHIFpY0TqRQpfhH+{pD8bROsiM~Dh{a;zgk(Y zf+2vDIOGMW$Q>fMW3(@DB{r?{l^I!7_3crFS?<;g`^X4CF~toFT-SUelC(mg2=5gI zNq>Zu%_mSh#{;z+Sz^$*=E_LtrAjI=Ai(Wh(oPbjbBZV|@hJ)90krQ?#}-gDnzFYy z;g1Df_APGmnLcc7{}jK;TL4VNV9iJp{ky2@7uoPw?VseIdZiE&FK(>~<( zt1oyMYKYWLGt`5aoE5_UG1-hB(Q1w(iI^<5wJCNk-M^}Nb1N6 z)5%^OW^C<_;TdBnW&B$-W;^GTZ)ag;Zl|BQbw&bGgn~(vQe)#~cNaL=Uqb#CfAsNq zlZ|+1l=GjB9xmbj8s^K3#%?h@v15mQwfs8`);!&JAz>eC(Ig}VAtz-h#d+<|)KO`& zeZY5J{>y)B+M6?rTn+d)K%b7SEb({!9R3Y3FB9^19fA0<;=WMI#gty+R=BIS_X6pJ zu7Cb$B|b@TB|wrPJc+Ltv3mYF_W`7wfLu8X#y?-W^;?&rbrI-JswnwUqeS5Totpb9 zhy7NtzXUS>0DxJ!9vY#C?Q4?8B_g9N_ zs1S6_K%n|%L!5jiRv~htR0xSPMn(3zCY!RCx%@Or$p@M3Lf-JK7UI)8_dAd`6nsil zj-;HtvIqth+Jq37$ei@B*gA}CN9XdR$d z*(<5|b@DK~7T8Q7K{NBMIGQO}by~~U4qu@~B`OLWjp@y=C`G2WEl|tKQj!)vaUH9i zF=#{l9@Bnm#S2z1BHX0}q=2E;v!!i{D#RpSR=YcgUt)J^an-oAPZJ%e840Axa^*C% zX;uxQKnfcY2Oa9uY~+j}kXc6KIg#soHydea3W7v+sd2Mj5J$viYbI!7_ZGy1%36XV z56);JvT~f~+j~;nxY4p@1g1>EovPp&Rb1-HSGH2jtlHcqy@8RzFi&Ht{CYg`2Z zAbb8*ETHRE9sw2;wj70DScPlVAcaWlT3ksPRbn6NDf1*?$T#jSZKYrxQp$xv3 zge>8w}5|fRHeoW*3kf4?h9S~LA*_}oeZreHY98X zJ52G$ysp&7V+6HQ_SuDMD+$&JG0#eIZdOEmi>(&**}PdUCb$eGWGm6>k1Q(p6hf_CE-0iYS3|{2E-ndL ztv>-}DzkkrGb+)mOae`F*?9qWk+v+T#wN5ST0js!uzOcW4Gg8udjU0}<(&!9Gw-=I zWOS;D97O<~t?kn5WlK>Dfj_fVWY4rK5VhBoSC-lq;z`s$mx_=vK`pHuk0g=Q>R8ZD zs66(jG5E5AM&}txoI=u~RDy(#+lpm^mevw_Spd1{gCs=HTI2G9VQ!>S?G)P1t@e{W z0I39cP-6jPtTqHDPeboQ8)>dI5r1jbrCN_Ox#o|8OP$E4)-*Y8lLW^Em>-2L?`Z8_ zg`UttkKzt3rxb&-drdR~R($R)a%@Y%$WSt>A}CU<=}A2&MxF(tf`rKePqhb?cpq(2 zLbVjAq=FL=CW*AGXP|(WN?a&Xr1QUe7c`6nEaiDi9ABgjlsV^`fYbY~mCo{;-yC`f z97sOZBoW$KeX|LfeuF#gI`38^aH=Uo+n*?v6-KaBWO2sy-tZ6yA1k9amwt85vVA5v zNss%lo>&0V_V7#$nKTrt)#U_fGGlJid)0TnzhT%i2^)Ku9N%xE}ui=9Tp^ zp4U27FwsEsRFkDiSyYfZ&q{|nye76vISA58R+8v!K!Xv#(xL1YITg~7O%wpKkUema zdFFf7hRg||me~3p6k{6nI!>abZL~^%4z%4Nb@r=kCJe$i4pB$|EEfraI@fA47l?SBo0)FQCt>LFm{ZK^RmIO;Dd?1rPkpKWvh{=;R^A^er#NHg zzE_w2A9`<5xoX@P+z;B%>bp6DV@Pi^V2|K8Pu}5;ygbL&k{fLBeLM}nO8noT-zL{? z5o#FXW4_Nz^#pqZbb2SlD>%H5AM&ctiVSYWyxVbyT3?)10V#Pdfwu7?eXHJjUvdrJ zr_yq($opk2!MAVrF|-Q*`@QiqOS=KA%10H zDM1MmHXwmY`qkR8G)1DyiX1_fu9V_bka*i|{{XFNX=N@rSB;BBZo znEDuHYlNU4v(`J;HSXvpzTRkbtDJK+N|F}hPTfhFpc6QGM8{C2Sz?&#-bpE1O2q#F zH!(x?Ei6PiSy7ZYw_i(zY7?{{#)Xb`QAaE}NihsfEi&U|r3#RrXzxre%2`zgV#Wg1 z1zO5aGZjtdjfHPc4e=_Lzq(Vm3sD<`CPwp1VWOOHQUthk6^JCyPAR}<)nlIt8}9`Z z);HDOrodg=Z*k(Xl9N2}W`WM|yNRUUq0b#cJYv#XdG3(g+-avvB;fucmf-Rs<^f^yQ|j}w;&M%f7km}*d-uX zK`;Oc3SXA-CXkeAc$W_9O#UZoYvje0fgg|-Ge%+}&C-`usDm*({c9Ujs^O8^+0ki9 z%`F!32L9sq^}{PsQ98fx@T@bbaepGVS)|7z6Bbrrw|0QzV1jukVP1zrCzXk)WxC4S zyt#=rXKKj~Y9s(b-gf+JR#^`lD>O%7xF|P>xw)Hb8?`Ca0S9t9tZhv6DPPe*4i__g zNX@FhyKzWxl$8=3!Xp1dMXZn=5;<*ln1(5BYVWCosYWl12(P$$|e!|DAcE2I+#kUqkN59`|c zDfLrYDy;sumCc`v&-Bv5z9KO^3mazQ!p{%4bUS{?VfSBpASkrj3Q(Obr-AA-(ktkD zcAr-ssA@!(-z_$8^c@A}bz0pU;V?}fVu8S;_w(QExijPbOYjp7$oT$2@UtmoTP!Z+ z`%E<7Gle8$Nm~XI;3S`i&|0SQWY=M~5Bh(f z%H}S9_-W7hMpec0h7D@0$Aenp7j}zc-L)$5rWuL4agYv%Op&Tj-7{X&Ez&mtZv}X{ zv`=Hp4`RQs$I8)*_w=pEI~gHU$gKcYOoqGdG>e5K07_$%Qd?%y1IuugA!%6zm3I-v zaA^scIO$1jii>llKQ7yIOMW_685^q$*UuCp6t7<-n&mGXe5j+&g)EebKHu870u>iL z5`^2N=>+N?^vVc13rd@HKzV?e8;XY#xuT7werlGT$phujN?E(LX~xBs((i6`G zmN<)yDpsJWiQ0xa4VMqmRGwC}Q0;v~_#J>F3&Jh`0EQb@kVxZJ)u92!+N#%sm33kl zi}OGVFgD_};U==HO4=%Ag~JvedXWk#llW8b)mqFAm!q2DPE5J}^uPcXZVZ8w*{ z++1y)TERZ8=`uH#RhBymMg5JgA8O;JApmjmqzn|INh+tm#!$67gt|gNAV)uiS|X8U zL@v{Fc%-2v!hyfYP&|Xuj*3v$7RhQwtN-$E(vHI%mk zMiQ(y6HSs7@|;U>tx@#tM(KrN3|e#GD%(8gRbGO?xej!Q+Ono0=L=RS$UIyrQ@1t_ zywcoCR%c}M$)Saq%Cjtt;%QR&y}OKFsV|{wI^qG|DbuttSX5wboOYg4{{Yw<7X&3B zK_-$VJ@l+i2o29_Bbq!@xlSDQs}49<0XrRlgY~4$_B`P-HwHHfwD8i<;@H#ocjP)0 zqq4XE0Ha+Td_|<{XJg1)eS+k>Yqy%v0!dc@K>TT+h!m>*KXru}@gpa-g>V813Gww#kIg`>yX&q5wwyjgzfSQ z(1KFIPF3o2DlXLX?Z2oHR80O$|5 zEId(f4Z-}E6jHr1uDeliUQi)NLf3;YLQqh33p3KlG zPl;Y6Fsn7&vh<{+fM<%#+%-gk*7Usw+W}{5pE;WoUG3|xm8(vp{M+sMR&JagG)mIe z>BF)Dj+Lh1xPqyUN!*y~1#Cpx6tGJ{G)hxq^VZ;%HKhsqcZ!Evu@H9~q_vz(v3!-O zBbkChiWW#Oh)tVMj#ZUp;(5`dg$DI-h>^$6kuW_c!tyaoTQiP2Zd9TiCB8YN=_4W5 zRej1)K!pRaUZv_Q`u43t3dV`_Q|Ug0>eI}a8`2)z!o0~EN_4}qA?7yT?VW_r281w? zMN8)vJSm%)yGXWxQe`9(t>fiXri|7Cvkc&sU*mVPA_+Hd#@K~IwCKhDgp|k= z)E+5sW#w6Hlx(CgT^AIuD5!z$xu|0(DzeMS*eJw809Plu+L#53DjM2AdhJ9&^nteB zf5i(U4e4~RKt<6GB}ZexBc&UL5}5O8Wy_&Wl6M{ZP&SWB#GsboCP4BOuz<0@N&G3a zKvf)QA{OWbz)pZWaZ=Wru$0#er0Z>np&&M(TmVMz+wSFmsMHG_}SbO-X37LR> zsf_NGZCw$B)Pqcy4R&<%iO9ZS18B&sY_CG2I08vQn1laOS z^(3C$_oHYQmgeTiNf{}U04gVuOy^h#MP64y@F-jrI_ieRh~u}`yhQ8(Pz&2=bkUaw z9+cS%&^(s)3Fnv_^fjK|S8HJL7SYo4ie8{~D1b)8j(T>emBG1o5+4Y01S5XYsYnJ0 zf@UM-G@|3-Xa&j5^#+#rAi40LZ)M-J)E9?6b2fw zRC5_}0u?Dy*b~#5w+jX2s#=EF_b*{?AzDaS)4a!j?@N`S62gN?6M0qPLNlsFIpva> zGr!KQZO>t&AIN@FsW^7jmYb5w>fD9)p zw4*l#B?)w>$x+}EPV--uJzb;SeN8B2P2meo1J)PYJsGCZ>@odqOSwu$NB!w-Zc6xc z#WJo}YXN;t-(qhaN)4ohqkiX;w>9*wpV7|JX%JpurU)fwHO1Kq|8T z05lsXl?zA!bucSRC;X~Tb&e`0iTH|?AwWD}gRndby%wUvfe#T%n#}pv&1vN{y(SgO z-YO=PaX>x_*Bo;eamA@cN+wAj^U#W`YRu&ECq(lLUn98Vuo z)>Gz{0V8?u{wYW0$y2iQIe5 zG0$9B3Wj2sx{91{%m;5&_4lMWQNdjtLzNX%V)&5OLR@hKZOtjewQ;N$Y7YI$)Uq^! zN#CdVrnDuw!J`PVaFBzfkpr0P{b-ImOKDB+K9wpEHG{Mh*S$_sh_gW?am0;+wI(+M ztwTx|iZq*?awHQb4#57kFSHyon}a01d@K-vmi5J8Y*@TfM3zc@nkVI&nn zq5#@vP<+4v91&ANa&W@h`$gruNg9Hd02KlC(o2hcuHgJ1Wmg=t!xWZONE;A18-7)- z2=)S$K{+3F+ANh~t4l^hh$vJIyVS<7Q4mD5}=)8V1w;VY4C)R+Ja+Oz@=(f^^?rh@w5&&P$P(` zE(uVOcO!xIscV7)E{HY%3Ho7>2u)dwFfG>9JkXwG z&ei3$uPr2uuUVypRu;bF_SY9~CFHX6jhQ;Mk_h%aq*WNT0082(L?x{$Er*$C^KXL<}qwZtRm+UX3GD4$@)T(%a$*XYp zNjjo`b@UnVN&f)T(eZWhHQ{y#;mQjb#sZ92*Oe`_o4Z{Wk>Yr;>0F97mKf_@pToK09`YZ#U` z{j+UeV|R;DTd%xRycHNqB!na-BZ|u2_cj_aU{a>dGoJG42kr6y0DncW*v4vI%5E&t ztx72(5FnBLtH?Wc%aQw+|^XXfG#7STO0NY95 zuJwcH4Rj5itdc%CPBa}F1VU~lC79{GoxxMIcg4_i23 zwB#L;yO5F9M4I>dt>#S|{mtUj^4hzg4@|3XnN~TJr#@j`A)A&qi9#oOLkkHf?M0@^bs=6Xg+P+0(6yJGz z7E}z8)3rH}e56Y^BAC?binO3<=W1wZXjMysISz5LO24ghTWf%{v9z6&sAp3FD8#t$-;~Y26kkqQrUw)vWo>IzLKbb zkaskf8y?cFh+TP9dU30qQsKf$Lo>$w_s=V8?VjSM;A9Qf- z50l){gxllqgMKRHJSD8znrzM+XRLY@RmP}*q5vn@Z`O(}OD1n7xF69>x;_s2ZVOo3 z@lBj2*d;e1VL|~42mFe^JuKz%J~@ZYk5hddM^sBkIoaqu_c58rD`#-pWk`_+e~bM zN3O0NeQ>p?6Z%m$IyMkZDLs{&V3P!-q%|p(CAGjDqpooS2})*t`h98u zDX-L5NV|2HNII1~ZYYo0B+F~pt8Umf5T;c)3Lgo6F*&CCv9`y{1$|veg zQbyC}Nl`kwZBGL7t2RKDl1fjgYK_HlG^NAHMEQj)DndvgZVvN7L}d#kD1U2|0DhbE z+Msu7gxJCo7FD@T^GVyMY~}EE*0znk^QUZ&vLpXq5Hz2c<4b#oWi^rx%EH`IQdHUU;BzDC`}V18hm;aD@%Ech>}B`s`Spr{o7UaB7d>J zn2i44s_);y_l7ISu=_l>gXOG0E%i8> zSxd|p4q^e*c%nB^{UhmLp1+II$mfTQ{{UQezOno>Xo^lfE?;?p%SRe*K3lDmu^Z|A z?Owb1LF*@LA^aSM%RjPz@k`R*Mp3L`u>Su5RSU(`=a%Z!74IDg`PbZu9DrX5)Idot za@P#)h`!UMAwdb^L{GQrR^pb&ZZzwNPo**Ub~Rnn z@iYSGJSzF?i;I$0OZm)>G6*ZDC@hfY05QZ8?l%M#hclNK3?q0K(O!o(L z7uL3~O6j$1nWPz2Y|w%_6&hH@I$h2nQV;m*5G3yW+f#Jz8GvIsCDCU^XH z8`sb@x~59oX0cALzXe2d3#nxvbyFjg6=#-cD&QMcW!30OAt^}{-lml0M(=J` z@|O?@Fb2YYRi7h0)>9&BD#7sk;alP#$2(VV{4em6H|D%44;yzclE7xwrvQ=^^MxrJ z8Q9ilvt1JivrBJJpppLom;M&&<jyPGgyu@p8PD!4=pX~v{SF#x`il7Nm39J zNZv?M6V|G`c_04(NOJxE0Oea|&Oxb9AKU)`YiqJk`Wj?x4&8tK(D7$BV>pW2LfUT( zwMCcn;!?ToPFk;EB^p- z#*%LzaYiKTUfn+E5G25?sUng>9po#gQrPXc{FcGH@X_HT7;>zUk#g;p92)`DTiCMF z5`n-TpGe=NQfAvZ3voYmaqgAVMW2;aU-((@vyv>AYjNRzLw4CNsr9ssF`I`9z%a6> z0RWEuJ60Cu>Wv1Gqw2c@<0WlqHZ5MDlMteRZ|u2M@qyy5T~CG?)5H7|CuPeY4aKv@ z?#|lERf!cD3t31CQ-Ht`5gb?N?c?~vtDkU>O`~vZAc1$2p6v8j-90`0E7J`#wG*_u zVlVWe&>tV&aRVy<0Hv42kHzjK{{WW!I^}%7Y2n4nf*rWUu?1Q+f~+ASO**#$D^WXu zi6>V8SL%;X>Za8~Cw&lnim%)K*XLd7tkKTs^(3{x;8sXIQ1}DoclY3v{RX}eJO}Xq z01U*wDl&dw_?q$F<>7O5ryqSd9tx0BQEtNkr_La!*6V}SsDO~3ePNy`KrG9@-FXLY z6Fx^eGsV6v3qO3_eY~%r$Fqf&6^B@1wpd-R5rWz>-K$pCjRYZ2x$HrvCs{Qr_n><>H=UmRV_JfRdSCJoc{zKImnW+9-T4PY#2O zbmM7;^Blx48FJBpeAfvsX;gm>WdK@%XPo1gvVH>QDVVPt!>kghE@_godH^?3+kwp^cHK0(7)<)N@M!X` zZM$BhS1;4kx0Ajtaa-bdK49J==a2X739GbWXtr+I3b<`4TZJ?CfarQjugPD;KT_%U z9mGwiz5oH775aP7TLjuI8HQ@-WYAi=&C2c6r!5x!t=c_EaSPI>)&Bq>dHgFw(;BHG zALW{N%D=oq@AZodUHn@L#BD9zw8!xrYY})9-J$kKOJ2cJbq;z8)7<89dt4q~Pj)&# zZ;KyM>toOSjdaoIlB7Ch9>zGOkShvfD$nq`$YNQq z3}hr0^@6U`G@VP23RYu20{VpbO2AWNfnfSuFc6uM`O~6}!vHEx6zg3=vAIJQ7U>Hq zGra!*Zq<4dn<^hfS~lMhNMD#pCML8R`wE%(Q4GzCht>Z8$gL^bB<<~0`B_q2DwDQP z#apvUdBT#Ceq)Ni5EOn=%$@?1;+e+Y+TGU_w$MN{i5?mWDj5+Z0#=83#htFPE4AC( zKB81&vZbEF^l@p=8Y*$%)uNhdmtF-f5GF+WW11+c@T*G7HdX75U8xO*n05+*jsE~j z(qmj&vg9O^sf_8J+`urG!>^RU{*_u;Ks}({peX+6WsSqrGXv!-}UXXj$!AOUr6~DN;nFK?A?auC_2+ zcC!rC*;9-irmPxKb4o%}1jPO|UsFI@v!`)6D_cBj#qDgFx^+rQNc5y1#=O3wVCPs~ zmrVyY*;*@zW;UO=SvL~Y#*zHScmldIN&73ZMjGBhOYkeCU0Z}9C<;`F22A#?2AT^3 zOt_VJ_+yt8)+C$92k{A>D&%rlrz&4g-9c>))w`=gWkpTE+qcZt4zkOwdL28svkP7P zYsVP3!cm6VG^?yZ^#&VlAQdfY*Z>DvJW^%>tR}F6Cb{ne!7J$F;Sb@z2Jo-p*D6}! zxoNC3GG1Aw`=^x1^9zaqsPELCO?=bTx@lyHxxR9}uF0&4liZX;P8Cz*x5E9Wh!`d$ z-eI=8#V(Xpq&T9j&kzpZ;=Wy?ZofnRYaZjCuKxg{`h@$2i&oF3S^z$9DQWsY(=Wlc zvgQ_XEWG;hSCy&7B<|GjxjRPD9`*Ho2dSkoi6kE5{TI*mdn|HJ;~jAW;cFL*e*qXK z0=w)xCMyxQaZUdK1+gRzj>!XKymMO5^48FqhGVg=AQW&nHkyZ0rlkLV^mq%<=W7x1^~f zrsZs2M8jKZ%?g9CB%a@o?|NfN;!3FlL!`A)_?dEq-9Mpw!AKoNW!W#!OLtL0mI~MO zytf=FB#|a}trnWX!V(u?gj2E<5~UqHbHy8ED!-JS&;o~8qYSjEs_>m~<>+xHLF*^` zR~F)tLU@}g;}UhZt>6K$nxWK2f@zF)nBGzwSW1%+H$BBMr6jl%Hddd!Q#?lfDoZ@6X$fFywINbZUJlf} z+BUJI*-THAw(NmBh@O&5kU1oC{wPCDsbi>6S#{8@k`!n172H5vUy3O< zf;S;repLxH4`}ApSx%r1siJF9gF?{{+$rS{zftCivCvC=gqx&~LX-?n#%g&fUP&o4 z8x7*7lFWZ4IX9r72??GjdIBr7&`}F-Vxo8cwKd@{f=m*38y=_Hq`Hy$M>XLcp zgo8>O7`sjgbtM8OJJ95(xx%o3hk4biI&apw&7`5)Jujq#GrbQF0UJmiq;4fTiQP$^ z<9c9i1d>22D1w*)J*dFOQ3nEmxY7pX5x4{Jt^*X7Kp^EeEC8T()9qZ=*OZqu4=bZh zyxB?uWlD(OVk_s2_Y3KLHOvDIK=VeY7pY@;_a7nn)mry-kFPjG7YQXQ)T0CqiQGq1 z-f5hh+qzRMO)Ukc(8`dlYt;i(5=r$Qz21Uz0tJveEpZO^v|r>w(RX@oKxOU z?0$d!RsDhB_-}=Fk6{+#%P-+zsX+)5q9dKRn)iA+VbE#+01Utw(c`YynAW;&e4mIm z_kOA@_A6#G?l9uqT3SL1z<3>Q6>+~$m0@bNEpC;>{{ZbnjZ5q+Kcx;)5zVZ-Ut0Ni4qBprOX%W7@nQ z@iS`w04x#N{{VHn=$*{Ea>swAa;1z3iyXwIUpVNpalx!M0VO>^74e@)YUJ8?2I^Yu z9>>`DUw7UMH!Tn0$QC;LAC&>ln1B0i&CQ_m15>FQpc0eqU$i!z)tabTG)C=ySKjvN zG}AgK46Q%$5tXOTDAWfN$oba$PF4%yrjq5Y*GX5}oLh<-r1Q!B{{VWw9K;WCR2>!m ziCHO2Bs$_Fc_yH^J0TC#CD>JNX!43yLDVN;0D<$VBgs}A!qBzf7q>SziwXrun2;iW zdsIDuoUUszWh7P>8)0%25$Q4gC}fg{Nepcslw$p)G*Ss5#-kl;iDg=4Si*qfmyi^I zwQW59{{T8ZK#U-Gb#|-k=Tzw-UUEpnoj~61SI^IOaBlg@RO|Aat7iLHtA9WIBhi zj_rP<^d_C67XJWM$o~KlaEp&R29uD_-gUL#w&N&$lexbOj7Zy zkFwn*%Ox@`9OR|NI1&>bXNvpo!|J&;E#&CjGhG}XH+dg*`L}!YygF~mD^28NXY{4I zUK;-Zqn>lbFRgAoUhz8y%hq~=&>;=Z@8<4uWs~#@0XYm7gx*4p>3S{nMxZHH9!PF>G%W zZt3?WYH`D?6C3Z>=~i2zV{P)D)p<3pcd{Wv?5X_u;_eBAHEzZVlw2hMr%@VElRH93 zJXeeL2dy;PX4HP=yR>?0dCBH0`>jp!1IC5BfnHhO+^8jFDIp5bokNu@4b*s!)$)H) z{{R#Nw6BEVnxa47<$WJx^gF)0WoW?v0J!*C4W0Al&Bn3zhZL29nANlz{NufPr=AJF z?7r!=?2Hs?Y3_YEb}SQXh}x>{qP<}WR3ygYV!Q*jpgWyo?b7---yDEkX1`Ujo(KG0 zufjZ#&xZJ(UwMqHVwdi0f7@;4%Zry*R-*YPN!%nyZOwk0^dIrY9X{U84z-1%F-Sgp;=2>+c?h^{jigpX&WLG!EU0{lDCJUmEqtq9NKO zY;#UIJHQryz1P8AMaHaggM(SQf0}SsZr5yqb85g+w7bfJ6n^v)Mxz^atNZ?;fM!5P z+qL3$$|i#j4}bUjD0Rx(wz0H}^L=@%%1QwVOKIw*D3S82IydR1V@P$lc=-KRjGXzN zEugC`bHqyw8F!4_K1gmt{E`$MBZLAvd)JuX{dJ++iD`AXcp3hye{J;6qg2r9q4&b5 zF|UcdBMf!c(U;u0KuJDYu0WN>+K3!+u&*co0P~NLA{{Y5{{V0w?7bs@hT+5AH6O6? z{ML+kpW=RQ&#tMgXA^PD6u4Y&**=z8o{328Hj}-4i_|-&@w~_xt$i>X0ALUK__DsC zvTd3jy_cqMy0Uzgt+=iWbBW!e-o;5#FrQMO6CBl8JsmUT4TRt7w_^1SOt(v8^a>A) z<$Oa9x4Ulg(bYKgHrw80CVD^|*R_LXmrW65jW&8Vs=IxPSp%au9z3XHIb#&S)p`62 zE30==rEbDCr9^$-R~#Dj8(!5UAcp`!^0RgOq;pYif8DSSU<+w7_3;qKdFnULT4 zX|qMTomv?P{{Z9*zpXZ8MMNurqypu6^de2Jst< zOkcvh(RYaDD=UkJ?vZfqnu=1iPLigFeMC)t18&~mEj+Yy9v8}Y-%SWj-zNO_x&Hv- zZbL_hnW6j!-y3f;*(E7ccg@9*u_1j(ob}Xk{~4e$u$MGfQwm6yUdYNS_*>Pt&;d{ z!v-auEXu^7C;_(fKa~dnTmfA3O#TK(L+#xfX@RHw4b{R^-4*t96x4=4S(_TdR5JD_i{|4`N3~dgtXIE;5Lwvu<2Twc!(V=jYgvGf|Gx~q1Mz~Ado-h z5Ng}x!lM*?-Ah$Gc*g>;$BR1r!W9}!bcw7TM1;D*UXx1zXs{NWcvF!sF}%TXb#|30 zI?T@pdSnrjEUNl|S_<6Tyb+AOX>Je$Femr@t8tDX3Rx2d)r57vHm8{>FDFiuzZGe+ zn!=^@{>memGjcGiXPjH=N&wVk)<(8KO)Z_i27}4jT*UGB#)MwqKWT39(n;G?^shf) zzNvb4LIW%ecv|I`vlZ>_;7f~jX;BA%>04TM0I>B^7Okww&Mht4uge}$JA?XFfC9=c zTQ`?6wc+hD^ywO>b2Cr{S+pRyoGJc2;{FSQVLG0j7^FX@G@1 z{{T*}0`WhLUmqCFn35K94qduU$y^eLt`cMo#1NiH_Z34?F>oxq{SzgPu*c5r$EEfh zj2hDp!mTj&n`m0H%3DAH2m@-y+$U&ZX;ri&-6~5mS|2&YrrEbrNr@lgzI8sLpTrAZ z+d@Yinkt{n7;0E`wIj<(Ak2-EOLnJ;@P#QX`q>hfZ|spJ|w@= zTRYii+q_f4YY@&~Er?{YtqD*&k^cY?cJ%ubUr^C+j4TD>&)IzQSG0mM?{d@opMkF( zGQ;;`>jO>2vkBC-D3q0}q7suNsKkL<`aNuVfpL@jie775r7(Z?JHPw-D&Vzog4(%j zb8hvO(`2D&T1r%t)0nAZ-LNJ>N{1n*LM$_E-2k7Y#e zSL`<8pn#be1R=PvNg7E#&2b~74`8%Rz||=xb^v}=#8}GftQ1+?g-8GzT_NT0mNvAl z1f4}fh*c*r0*C}^5T#7?+NO|Lv@qb{0u2sNXp5}@=Om{|KaEc`hXZISSxg>gCVTv- z!3tRBoFOgK>M}s-A}T0du929+ZgF7g-|(jceX8Vqu7!E()#=isCS>p{<>VV*Opb6x zfU=iD+tRp9m^0p)$bs^VKc8TugTVi@tkx!U!^7qWaXcQxqM<6)xEpP zv1u+Xgn#lVAP6LOgGK8w87tlmWSn_kTV*`WF}M1vlHG=}8#~<7jWKfT4XmM=kQS82 z`<}7Ae8w5$Fr8$rB--}UpQJ{bH)QwnEmU}l@3VF|n}?cS8G)Ap(6hUzr=)bOCcaHf z-%>$LC#(Meg{d1O(=ap}clQ0&hiio5xb8WI;I_}F?4bcLpSqNFpMGoBX*AE&YFg54 ze_*`+rbyw8$bVneW8$AGVamw(eX{{BF5LkndjT9(Z{maud@U{L1y9i$myKC2>C1?D z*1MQL30KuPFLq46lR}=LG-Twej=Db(&Pt$TXW2kTBs}=oLhG(YRa66@1 z$s3S5SLn!y>@SBn5EicEYb;zWiAWo598=?Na z+GNkmwH&8_uz|&m%4E#m82E?-s=UiMjjAN4QqWR04n)S(4A)1-+*OF8adof~KSc+_ z`~>kQ9&lV?nQIWZOciPfCsc0+sA{*E8J9eNHDvA6$bGCo$wjf>4)dM|cHRwpm$4SH z2S6xkO&v?@W1yx(x-sXAXr(_%EJysts_QcNXP@mZ64RM?5^dF!3G$VyN4I)5>l*vw zjoN3ipt(k}ufz9?ekEd;I9^%GxXsha`{Xo08^lNy*7B}i6=}mmxcU194)IICKNEZ{ z#@)d)URcF2%s?tMmedM}jyuvDsAIY)AEtG3du#PnmM@a?b%+bQz_DZnjbN4tk<)0W zwsy49G?&Uh%F-=C-NUgYx*A=L+Fd7P`D&linkH!&DFZH|gLj7F70KwU=)WC zQdB#^u4}>QriK>fHmzfLfw$vCg~Sw)tb#z?^Yf{+wcz0r1a0rdL2`mZ$Z|;3VDnLH zf)=!ygCdDa!c`=V#>4ATVNK$ebpZfwCyM3OoG!b6qW$h4W$~GlAH{5i<{m&wj+ree zsA*Ju>uY3j4{#p~D|KOTU>_^=?7}VDzVQ8&*`+E$w-5l>h^6j+_=pMc9xop&mmWFz zJ7tKRM-WIzxKSlQ*XDm%`aU__=YgAFW%Q@1T>}F`<@R>)6A;EPU1JZjcIDM75)z$7 zMtT4w*TrW39X@G(oDC%YmcGxS_1EFs&QbvRz*kR)U+E=_=j^?OW?b)^?(%!LE|&%z zi$CHej+)lE2wB|37#zW`rR_h!b~ZLis+NiEqvQ2HesPbLfw+Gir4l+lEO%Wv{{Y9w z!szdU-|4yV*Wo4J4~t>>D+kQ^wWRujn}g*=I^%Xg{jjVY2PD{GjUn5VFuQ_8x^{us1HA87w3~Zdmwz=!Q@Fjx zhhGWe^3gV^xJ|P*?WIRTRJV6nBXS~QIF7Wf3nSugDj=9bcCRU?AQ{n z;GfreY&vXPf|+F_Bg%^Shn_N?RLj>l8Kvd|3Dni0U#j6lp#z_;)UDTBrPD%RsUQ!F z?G}eeH1hG&zQ6G{6u3I^T-xY3_lJ?Aq+A!hWc~YV_yXINAVNuKa573@V>dR z`akLWpOf;nZx!)&@nuN7xcg87M5~JUrtj(@CDFC?&9`PPBjHtfpFA~+q-uF76ZciL zd)LeNt=3l>JuiQ?Xd1!oR8C{X9dYH7;8MWU3F{q=eB)Om+)pg8b)bv}Sm{)lfm`mR ziBb1FeQ8>G4Tc4&?E=c%e}|ujrROYS-y6@?*H#!CF0{6+R+5!sDf`4I@|O7DlRYc- zC-A5EPbR8Ctlb(}7$TZRUFSao`>%+95&r;*tkOnw`+Yh>4ZE=4{r>=E*mhpQa4P|X z<;*U_FJR2J8e-PnAt-NP3LRMrI$00u6_2M-in$>C|bgUo`?!7jTbko4#!Y;q=RUwV##=qO_ zF0V5U`&SPjxUE|yw5MVsWWlT*SE86>4t&HCKa$*s)GjYAV+A+k&%)JQqd9<}ma&(qJ1LUTt)0TU+lzy_5nT(UCs7uSmBbU|rfhQ|UfMZxhFxNJ@2LSL)hWVBm@uB7j`h2(^z_h< z22xL(D!!N0QOG&AFfXhlFdU_aS^bpW+9%9R0Ovp$zmpSiXmA#zQCKCNTG7 zB=jr(^tH=6czJ8$8gYxeEVlA4o=IDQ#VPkkxp2S)ZmqaA=QZ)U&N6Ai1pfa3@V!>q zD`IP6oPyEUKz}8pd9%X{oW++hKM8Y2Rl&0ZcS=FBybJ?-WQ3@xUQ^L11b_@ofk(D_ znpjWKBi()WNB)rS9+ie~{{SR9n_2ijAEkIr9sqx(U50MB@uMHjxMpF^xfcq`PTygU z+g>Kt;@cCL2vQ;)19AZ71oK})(eDn`X%3jVdfuBmm5-4L@7NE)#)LVn*;tr^IEtIBrW*<-V+fjAn_Go zTBlzK0mCITM1{_!yFUjQQm^x^yWs&^T}+Q|{{WxmT@bha$x^?fzN@?qv_n`Ol0*Zf zX;JxftKeP=tU>a&DGs4GAv%%-!Q9hCVw9ef)!pMwS(g0GF~;VVCNQLN>&n^>hHr(8 z1H^nY6Y&egdsJTK*EQSOSg%qPxPo7i9-ct@)g4~1>5po&7;$iGf7xxLUKr#&pM_lD zStBmnVAxxPIP-0-L@8+y7OnSGZ8h^9>sdCYn`a+&?lvgd54q#NxAgrL8-#o)cwK|v z=DhiaczKp>vkoeS+uuHhfLq8{QV!ESYa>OX)WpX~4d2~*J!b0!ykmL5=|}GT0?KxH zJ*!w=U&Cx4wqB;%MY>c!{vvlg*0!H?)-dueKc|JCEP7Y_Lwj0@oPHIvW+jc>;ut`I^+i*Cy?b@p|$HV7|*&52$`Rp;w zXA69krsmZrO!nTr9-DY(pmay-y!qST3+lo7`z;6YUc%+a-L<+)jVTK$T1bLDsG8Ht zyeGWSvC^(`g~$5^#-yO`t-;#0G{Ue}KB3l46>r~TAMT7LPb?>HXWRa&?f}A5$pZW+ z-Tq<2Z5sPHaipjMWPV>NQ>CDQ66}?)ektZBuJDV&XjTbH9-h%ydZ{gXZL${7T#wH9 zRx5j&9(BO@N0>+_f(=xLGOcR$E(eGhR^Cd>%&<`Vo?B)h4y1hkm9eK~3o8p)Tz$b_ zmf3>G31xxiHz4c*=B8J97)yzu`&<;|j}aJq4*{e>3FDfFN-EQ%(-ywZNIwq$01vsp z<5$OgGr`<1GpjAxx)pJAa1*U*Yg7>0XWx^s=DhUW-tMrqr=BQd`i}(tg8PB^7Wf>= z-vxdU+4y;vo;a1xqV3(|iqz%9sxqZ1Q4)Q+0au+Lj17_NFC>4HHu^!*1d%=+5DZ1@b8~#xD6{?@ZSgcehv7JAb;1mg-yZembvnTJae=vBmrJA|{Yl-01hn{f#BsZPNz6fn zAU+{}fw+ygB0=AgSGIAji!UfQZB~|Q09|~pbolfBmUw1+a^zsRQMCk+R*Be>OzPyB ztw!%N@-22k%{mP^Zz5@P7sgNYKh1b1SH$xM8JX{uh@}c~4J83gqz~m$=kTpawa;xn zg?w7gnkXc9(`X@af5l&d-yZxWE4{|Djou@M%z4(RE7RLjc@w>AX!pH5!ojcAW9t1q zGaXF#ev4W$3^NwO0#l0NScQQ zWgtA=B@H{JMC+5@xyK8e`I6I!64^;n;PL%xvzcXSN2z6P*xgqN!W^q5V%-L?i3WU2_*IQ zt`7wRs`9)@2_w*{#C4loTD`r699IurN!r^onQh<5((p_a^ifDfTu))2;cIq0SiH-k>FIQ zFa;H$b(Oy*iLObf;v&=ETNNjoR^6=1;`6;x7* zA2yz?uT=6voRpw+`Hyd{CGmi0lre(Bv5YAO-L(}fK-l+B&)U0BBbwsYq147W6KOsL za;7d?eJXG*9-$*}M&h+JT8BfZWPs5G5&YIH4{sn|SLr?AMq^_z{4n@SnBBQk&RpOY zZW&&%N|;F|c{Q>8OFv3?x!s@lS$iRH)IK__lq^#o!)>q>TLSIVvb_y!*-DW@n?T4=LPa=pGT#xJ}=@| z7`7F3sV=8*M|$xdpw#_sIWJz1Xorlg>@G_9i(}+suDByXBynGw_b0SZ$HM#0)n7~s z&uXxL5KWd5jM+-Xz1tp6Oy>KnsU~pvUCJ01 zA7_fEHy;r9{g}a8~87(w^5_}5J zA$UcJ+GosyjBOaDs%2qFLy36=dXfT%UWcW4asL4E0RfxnJ(m-(O7{)^0#0HtYwA(f zfApO5=5xS4Byihy9?lPByZKvh+d9{ll7Hj~oN3>2W@MfBLAlU-5q3jKIz-n5^vc9nG_047&OOS~n+S+kPsp)BHi! z=*etY!f=DjAn_*{S_WE#>?V5W145*kLJI?YQIiYeH}0o~h6n zqZGW`{{V&2{a>hjs&5|7H`(_dXBo_l+T-pt;$1+wXe=a-(@EQZi2Bw$>K2C~)_)81 zd^nJE_gDR|iGBrR*ZE8)MLl%ve+*>xOPO$_OnB*DjS`hyL6(c&c^@TKy`OSUR zDSv~dx_|PhkF_qrneiC5LwhSb2k|t&c>r|rtEO3~Z#gE(m6~X)+ z4~RR6Ym__0Uk$z&{CRsV40kBEl3uiIFzW0ZLQwh#1z-Db^{tJs_>&XnFPQPLf1iy1 z0O??FpTfDD5D|`CeldTqcV8=>e-U2+S$5gnQx)(#9XQpaEvf$iu)7JkQc^uyQ^KQ| z8~p3tdUw{JiI9%kJm>p&U(I~?d-P1O#vIm=eh>Wgxi^YfUEx=^HaD!To2Hgfw5x3- zSJ9%CuWu&gFQ3f=m}%Xn>ECcgHCOwr>gqQgsuYm2Nd(WQ`c$r73Ow=ksHMontj|MS zr=`~~^l-bnvG};kFEMN{8g)U3QbhVngh$q|=pH@HK0>RkZW`|Lzfl~B+i1x6VpN?2 z?8%hJ8w$Cot|SFn?mX6}<}3(!g`98lorBhvY_>JsT{sVyZi)6DrJji!_lo(Jvu%E= zQqVwWl7HBFUb{uD`b`d__8t`f0K@+P19IL}x;JL3HyfV=YjQ)>=wmZ;g@)d+_b&1wLnsmRvT^tL;(V1@+Wg%furh< zBzgE)E|5o-6*Xfn+S)ST@tL<+8cmJcPR}3xtZd>iMW+cua@g~538G^z4ni9bAI7eSe`6U4T_@txY_RXs2|Y z@`hZu#B&ZG{^FFJJqrqS1NXq(CVkG;?>~qBlWwD2!>Jy?Z2sOqb?3cFznFBd`bXSw zKj-#cB*fB1FN&uM^^U&#~)g3T(51+F40yyK-{bJiaSKUT$(%$oIjeOw$2dPuA{7I3`m+F471)k{U$pqW3}9=T}VIdJ{?r8UV)M}z6R}udJe`-;(69%484cX2w z`FXOHTv)S+WsCeZ%ue{=i&-ib$nsTmM&746DfSyyk? zuQ9BLdwG{{t};#t&89Vn;jf!u$_nnTT>?vHiB3r(=-AB`6T_VUv};q z@BaWH#DYiYKJ>H)Dtu1(-jv-{`ipauNcC!PlG-mcvqBfack?_JZBNkNM$DQ zyg^xDI1@4I0EvyO-|Vpf!b$V;f8757W%A9+XO~_{s;>k7Pu+3l#i%J;$mlE3G~s#Y zitQ&PsZqQhkwr?m8N%wv$mvbe$7H!x)DQ>-eI)p9Q)Py;q-ZHf zGI%w7HnZh(pG^d-LA*%oQ<8M=(hWgzT*6LQM?M_>8?wG=%PGb@TEKA|ORK-)Sn64Y zG@uF;P(JMY)fu$_n&n^FaFB;wdHzeHE#YawFxxD-gV|bH*xIly(5A#TQUnP6E6r{* zIG!z6H2iOwD!z5bZIY)3ggOF{;37fyuQd0vF=Vem4?7+eb%){wBdB#|0G z{*{kD>h{K1-z!=zJ-M%NRqHsaEgEnIzVqrng{XQ5<5aXd&u0_)mX@L>yxF9R%~uXw zxp3>w+@VdK2ugNQ<^ipZJ6_}NI8~;97SIX*0L7fUWtu!Bv#`Z;MYdg2O)b*O2uk?l znT|KFZ$8>4(S|+TMRq%0dqcViHHKCS)@urx$xI-kB zxR%u#L5)OoA3FL&2pC=zz-W>b6EtU`X=0$+P*f2k_q8>efZP>bv5?<#*SGvix^nl+ z7Y&ej6C}{M^6e@>D%yjIW>)X)T^9<8N!m6aTFBH`zlF88xRFaybG_}VZymTxL`tM- z=p$qK(lpZ8va~gL z&x~Q8Zt+6u$trg3NGVzZ_fiJ?Ao_lBUVBv|+U`w1vd-1+az5a08UFwub=q5-6sZaz z7Q#e8JXUmoJM$z*BU+)CjWmK(t+wBK#FiG_m8QuKDOWePwvOH`DF{2BoK`{8#P{Sc zL8q0)mvo^yg9Wv^4zkp#2bk;grE4~}I}GVr)9XtQA=p(b*(U)_`%AoGr8W-Xaz$oo z_E;MrFBTTJ_}-<=A*VlN@-FSN%bsopZdz~o^bLsb2d#RxYgwkm0+utQe8#3J+Xu{T z=9_!#3~jd-rKIT9wAQwRc5b5CFjaM%d4bJ*UJ$a^g}7!G`?pACryJF+1v^BJrmX1p zc;j(%iaS|YJF>lw6La&No~LRX{{j@np7l`ji&6_Y;5qQTVeL0`{jM#OqHLI z=}mkQHarZf(N81a$;N`IFuw_$&Fv-Z#vgf+x?0jS&v@)Ayjm};E!`~-@lg>XKGi|u z*TZ*&_@hg*$1p4*?V#&QK_{feRMhArjAx*)?fZ<6pAjs1jex3cbHN52AJJ&U8_1cnehL1o=Uc{a^oH?IE@GFCAuj|H)1Ki` z`qti`TMW2q$XI&4qG)}@TYi7_+Nsp&gSZ=Zs}BHlsK)vQB3$b#1QAVdNoOm`3jo0< zuEV7Zh#6eaPfIG+V4cTGB?O--GRlIc06awPT!e%KxdC4(t|4%6M3qX+1I*V@N^!D+ zrR}&QZH#P7POZ$JdNmCzMhDD}Yk-;22i^tR^T6Pl%HBds zlCuM}Y4`b6O+#q%D50AiX-Kg*&~1W>Vn+V}zrvE)O<@k9zz&m646RB5N?M87r`~G8 zaV`hS$BBjCnSO*{>D`Z<@$f6~@qF{iy16-e-IAa{2`C<1eEk*Z{{V^lCu$^(;{DA8 ze;~26FEQ%mCkt|N?}j$FucqzyS9an_Dg+Xi{{X#w?`ZU!PrgHS{FcVI)Glb^&~CYx&9GTKm`AOwN=^{-Dn(COJs6aZdv&XQxv>Z{Eeu!XI(wj41g1jTu2clMW1 z3ujBTjy$bI7lmBr9IKDrKV;)*0I8y}_mTuwgY<(@p^^M+;V5c<4?6=->bXDSyJf5Q z+fqnUR-ggr>-bmY{r><)?tF(qed}P>@n8-MUGXH9wC|Wkf;f%D)()ki(NXZdo|bYP z2uAovoAO3h8Hw!ehuU4@wydodDq3UAX>%jq59?n+^tZ2umt>bkD7TCY?2p&%QawfJ zZ^rI%Yofj$SzGdGo%Jr(yJPsPXm$56_4z?0pH9>7UZ-!< zx`#Ax)3h5jpbul%g~qVEm$XC?JCpOTK^~E#K2wNc7J>fkuz;fCiQvsM@ZTz{Wep?% zvd$*siW-!lIM|avPu~DcU$motuDTdBgu z%aBvK2Vyy*ugI)gsr>}=tu4=ut%N`*n_b)EcKEr`9wp@{^w?Q&CGpKAw$}8zx zZ>k-rgPR-+f&Huge#Ly7dGu_WS-6qyKO@im_*#YWRq(Bed_3d0V^&y-Gag>OW6!p` zXi8K#ApZdD41ztUt$HoLb^4AhlC62|%WL{gYnnU$>rV($Mv@M$qqS`Uu>P4r3LQRG zDRho$4mhNtw3R530zi_ZG$p`fqYO1`=@b14ejl?YH{z=EmF7~$S9ynCskYj3-A$>- zf)cRV)wnREpJ1SPsnhGD4d%ie4gUa7gc^-3h1?yAuj~H+e|7osZv0DO3FS6S4NHv+feSx-&!VS^j+|Iv5&5o0kthKa!tdejnN4X}7ax z-4@Lw)#NsfC{J>(swd}FhKa@0@8#he^_DQE?_S&C>qV9sWQXoS0mUT{ln%gkHDZ0j zINT$QS^j}iWM$sx94A~En}SyB#lfh_)v+hA9R*m>2e=Ya^)72o1oYxkfE@v{=m$*y z04S|bplbZ8oQXVq6&=K#b*3&ZE-z9-1gBQX3h6!Stl{CjoaFeLIRFBPTHL8?Rv~|U z3X%$xRACLC{{Z5HPAv10*hKaac(hWY{9W-W%ZoK(SUuX=!&AGiYSLakzE$D9W$J*~ zj8HzS%Je%1(aGV`Wd8tV&OZ<{lj=84F7a=)nI&4JtNhpIPf+@S@;T0Pt$nLz*~3U^ zZ563mk2M>o)}=T>?$f zdQ4p?RpuzCR3YM{Fd*^oSbCjUzC`Ejwlwex%1GVlQi?$eSyXfQ)lm1%Cl-rW8qOn; zPS&ayHw+;o?H3A!hSDcUo=@dpN%ZHW9jK9|!#@Kn&F>rNiZe&AD{*`p@WqSE`y4|W zVb{=w$zceT80f0~gXq6N!4Pb^hKn9Ne(Uq!sy$lwhervk^J`!+T)COqy~qCm*szx! zQMnAEhSQ~9SrP~xMS6{9hfv;5fwoEMc`ZJ&64o|n`0V_sb{T_sg!VCX%a{$tlC6xo zT_1G+0P7r@@_K!{ah7ArgmM1>xLUL7^kOhW!L=^NTE58nWL(|gcSvsKMNK95Lc)(y zvB({VUF&~Ur#f9JX=$_7s+xBVM7GxqV9>AqEhx;`rLHk^aLx7LdlGTL8fCGwT<|)4 z>*UXlDbEQXavTBhzJsH5&_*87>>ZQm_gcG*uIA$vU6UbBT$L#r5zr3j>0d0>>E(W- z=?~3*KjnQRO{k5q{X^9S0K~B?#t`EvSweT%a($>})#_tuZQ)*u2nh~OnOgarMJz7z z>AO_6@k}dy0tc)7SF-e@{=9!uM^zP#y)%KP3$UaqEMpj}%v(6swUSg)UvO}qr|_?3 z3}0GKEi@OMl4A^Gm-12s<;zsI@V0g2TP;OJQM$SfyG43^F4oB7!KLS9+#X$LB@mWc z^H>40)u<;*%3!N*K&y~`U@O|I%J%?CHhvOO<}Kv9j76((q^T|HZZwbiN9@&+lWlTC zoZ28Z{!^FxKih3E#5|U+Un(jqO9N3)LbdWIu&r32`m7cO{{U5*{Yhh;M1k>t*-4nd ztT6jm1Bf`TE372|f|f1O*&y@1YR9MI+U)-TWtFJb5=VjkN|NA~7kE|?j9y^)bByDy zS-SH})vZrI1c)1TffcW(h_W-s4p}I^CiAYb1>k!*8|IKWh_k( zeUlr$u|tVs;b>BIp=$&a>JU0^Yv>z3y|08vK%ABHe^l&7{=67-ap$F^Ul4x?xaWf2 z7vw(|fAeg;obVjMe{pUG9try#dXQGGC19P02EDGAQ)D&341BMe>S4>AEK&3KT76*3 zt}iXx5K5K@=U1F?v%Z-oo7(S}!FE?_%L&6=OGO0f>BuzQJdSL5?Ivam&ui&t;bY-H zH~7VAWs2XX=PhKNimzQqsqi{94?jAz?MDGawMp*`G<#ig%ij&Y3uMe655pPB*j_NU z792M>hz>g9=kF4KO2F1`Tuqad*hGiTTDM-saMqhgmdh=|LO?=5fH(u&+OenHxes;~ zm~^CID1IZ4vg_+xmr1f{02SQ*JJv*+wz%cg0@Z^@jAd0B^EcbN<2DuuWlhIVynV^9 zF}?0BBr-0R?%$wr9N%O6C~NmlItmz-$^ukKlOE=)LmSDUJ6Ew@^#RWrhXTmh3)!DH z-`nAMD+DD823G2iM4)a?^|`lf&VRZ7){e=*NRwK?@1+xgY)pb{`YLTuFayeu<&nqIr(^Zb zx@m)+-o7nc-F*wUM*(nmyT|>)tFyjJ%a}doo?p!wPc>Pp=EZjiy#R)gV38-F+P;ey zsiq_jHcI)9=jqcFZk2}s)p=aH7np_CW4Xg{_HM3M=cx@LC@Lx%x&ge!d$^?qq0a2D z9jMZAKE;38W!ulNEsRFq?$+!lO3>;`RGqjfJBsO}4#DYmk5ECPwf_J-<@BcMD|rE60^BB1yd1nXBSbx9-%ffE&|$JQLOj6{`Y*;*x6Z7I}xr?%YE<#S0* zjv@t>zTXPo6y~26yj92>BDz-&7%8oB0GDB* zeu8-q0CO#5tha)eMX_Slv=o!Rz;o|jM{<}KVC7*z(U%`7-x1JJrMFDR`b}iW{wI~K zC>SotP>a7QDRrln^*t(~nXV(vY%ya!#FL%XT(cs zV5tfK^n=Z4$vZXwi9bQsy+)H(#`_Ay)afLDy}c&I3(QI72HIVI+9nD$?hz%Vq;X9t<=PK6wCgmJZ+&g%iHK|EEmWLlItu~Cv>tUnvud`oG z;v0p}e~5p9FARKUYZCJ?))uv)V@`k*#BD;|3)t>J;4ALl2xdb0p7^8x07+}SlYffc zrjB#EgBz*x#ou`A?z``0CtWnd-}I*RL19rB6<1L!f@q^NQDSS0Q2YH?Je z&1D?e1cR_0Xlj!h)U+uHMxG<|sI_IF0hE>HYC8iJ*b1zbcuCSX?0Zd3p+n|I^ATLy zT-NyuCO70B2K6Ph7Yt=*Q3FW;h!qqU9IW|(6#_&bYG5Le-f4I#F|mO_6gtssSngw_ z*8@n4zE;m$S}nKC>D+C-2N%A~oIXAI{t5QUy5 zzZCN$oN_Rg^uTSD`)6*p7o`hy$KE5Ybj~gm5r76lalCO$v?xlDr4l&U$7-zG!c2wk zX=qKjQ=VGdaUcjgM>F-S&v{|Z5~;-zp?$BmU-V7!9``r=8{ilN%WY5K7@h7CmcpbI zhdk669BlP^?^wP~M%|^${t{J<{uVfPofPF+o!QV{u0rxX*^ z*PWA8=rqD1*zfgO@&~xX8}DB=-1RfdC)12t^*UBW*7JIG z!ZN*{6=bWt!{s}4wFLy2+P$9B>DaWcK5H#`|)dMAoRZNu#c$_7j(6I z6iSY?z);}G+v#68)M_q66FOf;+nU}SiOQ(+wgGR5Sqq!S?k(-prMDK;Yf5^Q&rmzn zEl!b+b6r2RwgEo_<$B$paxoIvjh@HFtvc~bEkBgARn`}TVoqipA;!hct=d~q4>Wy< z2W~3%=dq0@q0qGRXrdeeq7Fd|>Ascq5Z37%EREpsNN}-&Kc;&Mr+UvGzGyjU!|7}T ztI~JhU@7`dC?fcu)|0nAb3~Yb@=aKt8;DrjHtWr-gFQC}o*TsH3Sif^Pily`+s=}b zgorXh>sK1)gyJ3r1BA}{Ty4N~tr55##afNvg$_OuY`CCESzHl5$LUT#Wm0w*9+Snj z%H$123E%)W6t|kn&zDRH!hLZGP)m)rt>S)knTL>7Had?NDJBn+^A0}tj3WfaF$HNV zPn61+#^-_BO-veDBqxX@eu}1}bc!SIcnRME@Y_6QoWOFfJnzsN3oVrri93@WV%M4E0NdN|3T8JXYSvsB2%z=7PlD zTFE0VZ)wBCteciGG*~H17}0FP*tl1ijVG#7etj#{YWIN!ejVpMuMp2q$1p6^vi=I! z-x2-}d_Bgnn_+{v)?LQkPO&4kPzpKHfbA6*GZ(qSf7;)|0r>rrBKWc`aOUyAc zxjwgkWN<4}O9^uY;D1t)EPy)u{{UqDZ*6QL46@rv=?UZOS}{NgpcO~U@`3jDnt8@j zlDCo!LD+oFU5vH2NiS(4{3OnVf0LFe)#t?f!D5FilP<->8aE!NN?d~mi zZElmY86*`ru7D2pM|9N33k;H)0a(&$oh!ITw68vR?Qr`y46qxvwgA9Fx&7^5Bi}uB zgA`Ru-R&Nl4z77CLv#NCjrh(e_mK0dWt~MR5d_bA`3C8@N2m^S&U_57qV1bU&>%EY z*38wOu5K+wudh%$sDCwlH++^?$#IWp@V=|GX+Ru~RV|HX1*tAAL;{ic_Z{obiG$uE zIJM|u((wh&3bnh&%EFYTsa=x;(^*^Qh_T#SR<_#SLq1at&OF7lPhDT!i*_3YOIo%{ zQ`T$C$ES3%2$_;_y$hpcZMRZB!uiZ#vM}_J!qSoz{{S#}HTCaFdQ`_J9zO4zUN3mw zy{63%g|&VT-UlS@#eTK)AEhGG)7(ILUkUYg{{Sq2hL3NR zztBcIK;+47yjzFOWAz{Y&z4R0k*c@AfQJ%w&0J zwT0T7~JDV|MycTX&HY7Ejooonh3h4DrsV{NpQV|b$YRn)Z8a5w|UE z504AY&m@AuCe(?moFdNgn`}|5YZNIVVGDq_!8?SGwdpi}Kt7%TAAdih!_=9GwhKSo z^-6OdWKHHG^@d)vwZpL1z#3A0Y8*+L($(u4Tw4ois-}(u8v~|yCm-aIJB#5sO{2KJ zJo;@grW5K~hU2iG?M!B}1~9&JO$c8MuXu_PZYgJmxVA;j_}#Nt7|s=Qadsxr9&$m^ zJM2u>hQS`6Qzi&E(6y7i$EnkTD1bZfwR2`HE&RWkFK`uDF^S!>;#7uh-bs`wPw@{! z#?|Va&!+Og-j)j;9Fd7!>c1r`R$98cc}aCxdR1Lf& zZ5GmKe^k%nK78=w!yK)Q*xh)alkKy`#gm_4WfuX}ht!fA0VDqaV;?&0&sP?nH*Zt;LxnADK1z_Gug+Z*8BS z`d8hd*9QAz!0tI8E*32x7H*BGt=g4((N0AUBvkbdaVyTdwVNZ zvTuqF;Y@t5O#=rpWykMyf`(z$1|#$$e>9 zw_$}?TVeQ49?lzvw4W`8Sw@thAaDTUvUR$LSF{yM7&C4;P&`L8B^NHT<7!HQ(v%U& zpYL8eZNa}#wBW7QX^mJavd44s@b%nS`F7!M7%C!4J%wUx_mbOS?5(XPgh&Igr3AXn zF1q5B?5jxzOp#e{bBDRhS{SLg!cTd5Y~!}qmu0I9ISRSDQeYq+fKwX)bAykxc_~eQ z5LhyN3stsk@n^%lChG0HFEnFVdYbj2_VDp?n}R==N|czM^?Yx8UY1k!B(OdKHl{tF zT{|c=58tKEtp5Oiiui|`Z*vAcj$(M7y4{8l`3Y*#6CQ?=N>XEU$@i}V>TgtPH#77i z_Ch=lKmP!d`Ub)2_;gIuJ0(|%fph>Hx{==Hw8Mt^{;Ne-%7z}r=a>=K^QAf z{9m`Z3Cj6v4RYw>h+2Nur1D9LDktk-R@ZEC$s1y8vO8W2N9rkIk<&a1Jt>|W@Y~_P zgwNkOiQ%Zb#am!H(@0LQHAHPSqoMTPmql-^(xa^PHmg}w>IFt|EQZE#xw>;QTH#1> zcEyW!7jBRkL7opY?=%jCz1-@kWB!E3>SKw5Hk@95{{Y=l*?-|f!Y=|>h~|8s;aYQ6 zX?f!FS5I37g*c=9qi_>3>?$=IjLdHm2_yLxXy}`&Ai3>heh2%l2Jw^O8^>=DGj?vq zvi4eUAJ3Nq?e`cJi(op-1duc~Vn~6aCny0{x08yxQ+*I(#lkfP3G+!aDhIQxS&tZ-s|Sxpz)bk} z`d@rlWL%4m_=%Z3BE_)WzlK}}E|jebcXJxh*dQzOS3C4G{72Yd%`={UnEZisGZ9!yVNxW16^*Ev zW|LqSg#^F543(})jf~bby2du`YDXR5D&pf3UETJ|OK6fJuo_IWSm|y48LW#U(BBsK z2rQuajvfajpO;GBU|}44RhnMRkwFUEBdzo;>$yu{Y&ef<)Y9w@c(-(`>UXd`tnEOt zteu0dwB_9`C^vby;a53}!&_Un)aDZ9)uYBFw&su0v3Czi$4BT` zKVr2s9-@0)QVw6$S^gd6tDHLzZr>4cPdWyWR%FL>UboYmQ{jX*OrN^*8_u<|%1bZ~ zaF^fsdg8H>iY4VG0%T80wI;|+{{U9fquwJCeJWChT(h!9g{3X+18FDaTame}6tY~` zI9N-qyrqM3KtgBlb*nKymRgehV5)<~9OiIF(zY5~w>EYd$5O^CioL!)B&gKgxyf2XnPxzi@e@RJNkiLf>f0uQ7X!-;6rHvpm(Jq68*n ze9cQ9_X`TkCW)sa(Kb0pG^svi);V&NardPD6!@7ZM5NESL;nDZurO?~d2M9rRnfXp z<6KA|I=)YAQrHJJwQEK~4#uZ8Gj+hcr0w;=fc0Cn>%;x~jj z%fpOP`qLM~F8;{ch)cl+Be}1j>2=MOpqv%*{ljdU7naqJ_Ekw(DuN0AwRDT^W^=*; zP!d8&H3WR1HQEA{0gd9M1qP8pazFsY*DfUtM<5#HTz(g&ButO3buJCU0#5M}T!PWW zh)D_~sjg2a2#+!eJeri73oCFGkO_+9PI6DEcM;a4gaHp&0PhtgxLtOH+k`}kG$`0W zN<6?o0%yHKBJ@M6JDIKtWx*6z0!))f!w5Rc32<$uK&}nS?o<(pJ8TH=TFtMX6gE-2Ro+I!h~cTD2)$`DrNx1!)^9zHaA- zEx2Xp$Y$8%>7Q4WP$6@!yIzvd$55YkEplk*J*_ zb`qWepe+FX(pjhh_T*RyBq#t=$p`#W%!kiO^GwV*1Z<_WY*DC>x~r_q8kvBjrqv;t6o29 z*VQ-w08Tz?#&I0c;~qu4#928?*_%vZt91`hxp1wukY|FFCvNdyPT3mSwt^+k(|$j3 zXYJoh%=(?cHaP+J6JNLK{{Xf1yLQ`G;o{0mR;dPejaA{LjkCPC-~~almeu5_J=Nug z6b;H7XcYedIRO52Ez`0Kk)TquW*1txA1rfoe>CH<7bj;e-96*wF9o(4&a6h$t%UKzYPyovMM%chwO{R=j4|@^QYU@oY zg(U1%0FP?3tziOM7f^?y3Mx_-00LN6$pKqOP z>^tOf!szt^$mpDsJ}>OHPL@Z=9>*N_U0=$naV*S-tVN}*wYx3E0F=g`@4aa2HOwgk!mW*5Lpq*~bt>OmW8*XffAK?I7#q0^Qg`vdH!gwQ&34ZUrMqNaZHCbecyN z7d))pf2dwaYj9Hz4U@6FXApA_!ElU66mY9Z46>ziW1ypgO01q zPtVc#MkBG%_G_<5CZ{2h%TTDxw_P_`5VNl+W@BYLg= zH71}sEgLxBSnKWjEU)mmqT?o|)<=JT{i*N6)>Af^&Lx|1Tvr6b@kYr7&n*V)f4q>W z;PN-zSJOQQv}$9G^6F&*@%LUE*ITZf@rDKxJNqkF6}H1a+;6Yiv%bG+!lav(gsaU4 zWU5B<+O?md)3(52Bj*O!oQrap0Nzvrf_RDWxA5oUjzYN1nWHJ)W&C9d@|wNFgKg?6 z8>wmGTY_Nm-+ErZ(z{5~9Y+$vZ?Er3x*uF_(P{({Ka)p;{>$gbIAy#SE8`iD2(Wnh z7FTYt%f&iW>Jp*>(s(>=UII9w`d=0Oe*XZv`+Qo-q-#s^PyO(#2U4A zbj(;Ox0hQUn8xNW8Z-Ahmt^`=4`;ax6wb=gq7OT}EFf~nLyc+%-iP z>w!+;sCW`S@K5%ki_=?dXAQMy{{WC{$o%OZG2qXKn7y-&f43zLlyaRre|n*-^q$u^ zg~oOZF-|~7r|y*#XpILV!vfkJ0vKk2gt~;0lEJG1-AL66GQEH*?Ub7@rPK( zmP*i8q34f-e-ki_QRHBV7xq00fdqa7ab8o@Kf%pJ-qxIdRqVEJ;+~W@l$a`?#J(B) zU2TV-cPyKWcF74!w@Zh-5&GAZgZM+O+nVR;+hqCw0A=eB@h@-G7KgsSMH~MB!u(0f zp{KD7qkhh=6qL*lkgYANY27rA0nr;iS8MlOyHek5pWh}yRi#*MbVou=JHt8>= zN>{BTph|iZwS9}ydj_=X8>`hkwXGH}zvRAc>J8&a*p8b_-flR@{P|CwAm*EFQy5d0 z*H>=a{m_-UsH!Vxf882p?2xebt+n4z-UX=ry}m7sKHbg5(6(rRhT1BL5d&(${2r@P zc@s_eTFsgW8^jAgDel__LpOrWmz%hI(iU|}RH@_TM;6Q(F9DPO>2mAZS;&eC!tp~V zp{$~9?XIoezag-@mGE^C3Q#)=^&XtQm#+nUKx>@zfD zxK0MU^x+7NUpQ0Dg?)+V8)xqg zqO2Cfo|cr^(xjfpf_W9}eLBbMT4W=S9|y|wTkMU}kjA?Cd@DBF1i4D?F;}gaZH-_6 z*dZwQuS*`>TJrY_3l;jn;3K^M09CJe-f6VQJVr(BvnfNC-ok$QwQOk z2NG|ruVUX%X`p}NM_^ZY{$DF)ejoFPftd#h#B;uP%XTWxR;?R+HH|vL)I=4L(Dj=7 zpQAM!R*z5ky+93+c=P)&ocg;*y6YwyZ8M3CGUJ*mb39wGtm_a;p-eS!GDnqXWvtj@u2{L%E zZ?)~uar)2peZTHM-F%PKTdaC=A=5ZM?>V5poiZ+3%N`WvJin3hP7!H<L0qH_g1fOcb)^Bp%F=}ZvagpyC zOxR8mtFv{FW}HD^XKgZ;5wezJtya=)PMOD3sdfUhHmm8hMF7e2s%+sZzt z-(_;M9`M&WUEvMlzy32;r|yEeCv#s6*ZNyl_=JM1!uqz8)EZ{WV>f@I*Sy5mCxg6O z{xC+tWQpIbeCxyNbkjoaE?$>UJW}+o4*`5PdpO==*w!$Mp@y`{Q)CD(FQ6ZR{mp#? z(7Oxgx##@9-}GK@)tk@Z+Sp<_KiO`tgq{>;D|}R9Saq__9MrACp$Sj}iHiEh&9%uB z$&aAEb-M0RxrMJeD)YoL{uzKN%+-#Idn7GVmeQy$C~;fgONsi96tbg~ynPt+_f^&A z9L8Y9ZSxjAboH(qtSQ2^{q%Gl0mm}fR7tguI;~8redfP0z zl!pB!B?$ij*RJ&GHpec_q@H%?Q&z{3k$`c@!tT<7#=eIM#k{=+){3=;40!l8djbPPf&Xb z@SC3T^tFHtf4cfE)wYA6bE}v>50Cw=#`tCN`RwtR-@x;JF@@sUuEq7+TzP8&Wg~;9 zec}&l(9-S_Jd#`N9#@v#cKG3VF<1wsv)G}+ZjzC6ZXRHb(oBKdZYxqqVB^i*EOtHM z(tF5Ra|F7^Tf}Ve`*k?lQiLsSB}z&L`ckNn2WlR1S00i^g%~G%NQz$Z(6VM9tT9!17ElnsP%DQ&S^5*Ny zVGfN)a60^}5xQwPQ*SHLK4!7JoK>Zk^1^JJ7dHq|bKj7ASJAdDgt5Hj?Riblb?5DA z!ja+^EuoUs1Z@c&yVt6gZVjNZ6^EaYeUe$ZFgly&rmw@;8?jqxy8g%Oy&bx1LDz zHb{-8pOULMwWflKVr*)37FrH2eMUB_`lv<#R-kwtp*-V_Sm;S;I0s&o_#4HlyPt2c zwVO8D++rB2l7`m#Ov-?rMDJJ{*)8<8^uSOqHEKbYygXI&9%a%r$k;~$deyBSh41WA ztF6@rnqn3$lAFWszl7Ur_98~ra$USM`&CG_CbNXsbAjBr(gRGi70ky1x;RJ_iSw{I zcrbALGL@its_p^Wp4w=j6B_X2j*?-L&OX6;=8)8by2PKQ0gbYXAu+nK8>xzw&VLQK z7COs}T-sU!xs@nMKT68gY*Dz_3tLa>IRL>nxzpq4`fB8i?}y(lyb{jkE3v=vfDqGg$aATbVzqM%X+UWri%x?-e zJ+>*@B#RFI>yWqhmsoYnwwH{#ZE%GYsSW~_B#wkvpa#W-;^m3VcNZq*IFqp^deo%? zhJzurHrwZvcN?ITZmtzCD0YqQ0M&6vQ~psidYB$INcFygK4Ay?)tMOLFT%r)TxER^{{Zy<_=kt(KZ#8FfL;lE6wB?Y zh42(vd=&`!I1kdj@1&#$Z`48LmY>>)D>u|oz3_<}&_CUMs=tp5ObN@2klO*t(hnxQ z?yg3`1-)WM&QBZ#ty|65mNkyvsjEdTn@~6%YryV1r1Jj&l?EEUmffa~Ci8!3CKrJ> z_8Vnl4uG(tq7N$HiqhM57KmD3-)gq6b3asu3@dX3w!-q3UVjzETL$5Bv8!n8E8ggI zvFWt`0Okyp=CzZ*Q6OtqCO#r@D|~k{;y0`SmejIDb>F3afAz$_{y}l_zPagG%NhfY zf1=b&wVxC4d3w8OB0G(eU zSnh`1gZnR1buAfFi!TSWz3v>GWt^v&KiW>(&9bx;)Po;d^tye5XEaD7AQk5|KBR~| z#mo{u6~mH#7W`DsxnCU3SRPuq{{Usfn)9Ap$_OriVEJi3e}3Jo(?RJ?U(x(cdjSKy z=j^=Buhv?2%-uOYW!wR$0vcPaS)?mS zBh*ReIjXu%_gY-o;e;`cBItiq`8K^N2kOjRLfV|$m2iyfmtDl{Z{NJWcZSxIlFG>F zJ9}5V-Teor)kb6<;(mND1)%jzx>-XApg#9uHF$5~wY}2u95w3$e)?EQB`^bP0wk#M zUV~ut%ngjPuB-mq%k>|rT;~D}57j7ZAl>2EiW;(Mwh|uxDI_TA;GfQ{#kaUWgjj9m zWzD#W8D!>_lZRyHtnP2Hdq#2($yPimt`%?KQ_4lV87m9~ z@47^f%D$1Z`nyXY6wcSpci&CxV!M>9ZwSd=1>N4+U0h@g3i!69s50w+!&dVO9Y?S= z^zFM{rFjl51pF_YYjpai9xai}cJlX*DZwz*TVZYCcqS8Uk1p2A%H1t8*zA-f00;K3 zQy%vSZ$WuEHm8SCKg}V(@y*Ad{{V8i#%>buPU#1aXsS=%VsE*`B5u_yu-=pp6!BjF z02N!0wTav{ayRo7u0>Lx)QukIm2xeq-MggT&xyFw87R8Mow!^`1!g{RNIt4B6nkAJ z%+cMaj2FclrxY#Ux-B!RR=r!1+nRhk?2jJfg;s5;&C5c0#Qa)KnKqUe4_qUl3M5Tb z)Owk*jxBYmgKRGr{3s>%c6R+=Xu5GIUod(7?^tsBoSw?P2HXI;G>QKJ%iCBfQr4n7 z9gS6+e39K0ZQJuh2rAAC2rZ!X1A0l_9&%ATMa9%|k*hYXDJm=5ja-0eUAWNqCw>K| zpqg(pua=!^ajCtT_$Z$^0c#^Qn zTWaQ98-3`l26}?dQr)t&oP{*Qyid0*A-CU2bO|Owtyn!k+oDw&c4|J}lgnB5&1g|y zl;RKatFO@3w0rDs6ym8rYjx03OvRZp?l8((yRpOEN_h0g(nSc}VkI|Ew@44PkX0p^ zvd&P&tnL^>zQR`}Kp6&|HnKOfiFGX)A2bfW)|GgHmeZE;3wz6J)>ITgZ8NfY{?*~P zh&Vh*!)1HDt5RiQV}&NXDch%(w*#f;Ols2sAV*4Oo9iCQB&O<{7#Irq@Z%&V?RbVi zjomiR9Lp+v^wgokMS8uLXM0PgnBWUuPk7x9Ba5^D07|HQLGfi6+U@KuKwEaMDJ^?} zw@$Tzyn3Cp5Xk&3?WbUKM>2mhnP+S42M_Rv1YRF?WowRHp)TEAIR(`yjngNf9V^yu zaz_@3IfMrgGJfmMZShF`bA!RAngDhE6a&Ic7TU$9@a%b5McWvH6>!Q%oklvYe(HFo z`g3cIkd{aR<&pBVJw>i`jt-8;3?A$D`>1b-n7XiwmR`yDgIIl|YtS1&No4MJ1D(%W z$=+rVJN$^Cmb@^Zo zN*xZW^~YxAA18JFO2BsN1fUMoYYfUwCmyl0xj zb6J|5F~)GUVAKyGHreHeFIF^~+{ZXb2j~~r;Ti}QNIC0z)60q@e$LojF zkAwwSVGS-4%1Hap#?u`-es%SaOYAeo;i}cU-}dqU0JZW@S^CBq8g!d@_Fi0bXY9K| z%Xn53XK99EmdUlWVIc_xa|7DFuBTqn^1fWyiL-sAIOb)swz4T$0m5U_Ir-LRyL5|( z60Sp}aW~;Wt+AIHaNfL@on|)f56ZG4dxO5A$XYMb^TP^mzr?OF6)N7{MVn=ltwx&d zL#6hPku`!mk(A|t<;7mwgGtwRyDd?v)-{8#clJ&gIum&5 zMXKWsac~lX08kxFRp|8Nl{8?g#zHcCPo5}eoRxuO3}-Cj8HC&7WwNAOvI?A0BW;IC z>qEP1podE4J-{D?TW*eb&eyS+`8_UiSz?zslS)m>F7B}4qoDy%K%Jyl%b6qG+6UUb z)1wT1Hi1!WZztH}g)NpA+pAcFjr57&`&KryXO3gvm3vFCd`>PITc6>6UbR)dh7oUM z&7G@g0uTg*^_u#Q)1_ltB8*TA!tN5d$mt|DO0@h@@fO!4<@`4)PnEUVTfrQA6uiRU$J|l0VPQd~9lf@%Z>QT{_i}l_@Vv~M!y3{f z87ps4tTO?%NO8tehSCO}E6~X!V`}rD7aXl^@n7N_E#-S#%VPB1X*y7YCVoP^M)|(| zBVl??uVa#0aOrUu#%~ty^G+#>-36`7msFt96DS`#_%EpUsV9(|!u$87_PC&k3Zdn5 za?8gb5k4F|bjrD>2ff6u@P{8CZ()K@+ERH+r{-haR^OvNSm4>!yA{{XbL{X^+p zKH;NzV?c9yC&KzN@Wf*2Df-U!oF@-Gt7aqGz_R;V32h+s;gH3Xf;Eno(^)Lw{A9|rIiTz^GI|- z*(%c>LT)#SY-<23-fNo1gvPg)6BX^zzjPsP1fams4KwQFismph;bpr!W)Mql04H*G z{OSyJfJ#ZPDa|QTnUDw^iK`4@0}8W=%dY_TS4}w z#|w{2Oq6hvqbT8)K-}CkfPKYtcENmzKXwBg|+GX`#s5@|? zrOd}cLdab6WkA)2dsv^AlV;MIVIf3pPinLn8PHXQ7g;N z3>62>*9@hFTNS0WDCtTED)*(&8R)2ir2B`3p`JPT1A^zgHvP<2#>^xkT6MQNw*3ue zJ_6Cp;cw~p2mVlOFOh$b-+=^Sxsv|?Fy+fdVeh1=lA=6 zCFnOjwk<<`pcFu?f5PFmV9U6kS;XJM@kWam2s}q3y-Oa~3k$)`r!kr-r62(te|jXO zVK66SwRNL&Yb6n@Q8Fq)qzIy(#FJfim&YhSboHaZgkP!{R;{+6D3JM{4MOBff$Pl> zc~C+zFgt1Xpi-~z9`g@v;jj!8p5{RnEKaJl7l^`tv3{w ze#peEM&QqSUP53tu{yWl_o%;x2PijYH+9=(~`-W0WOBjn zjO&h^@BQgtPu`)zrx znim+s9hDbKRcfn?m6R1JI#Q9o$B)*tblMWqO|5Ap4jcvk=s6{qaZGLW-nJKP(blCM zfINZuSE%&d59aTvFcnSF{9^^BGI-OU7-+GEwIa}Mw<QZ&8USfA3!e^>nS8N)4s;U5-8t7iQMEJ941nf{6}C^{GZD-43! zvM{MvEO7f5UbV+<+QhIo9EX&YOP2fYw4UHj^_l6NPtce}s3Fl3FXU(b+V$G@nV2Ml z+VC-ce#9-(#WLrCz7E)7*ZDUq;n?Ob^C)oL-hUg^Kr)1#hdl**4_f-iNwVr427(|+ z#h$|Qo|xG+yQ@UH$C@{Rf9#--_}iK>JG7$F*BM|Dp|ST9*Z?>c^4R|Xh#U5@dWq(* z_FqVk(A#t|{{WcLVP9SpXN=v8W;-mkn^khwR3k#t(?FmD1RqRnV{#_Gor51#I2M8)nf6dCyQ& zd~@4ownHiSWopHx@7iu{?C^vjhDji=Ovu~3SE|u%MX?bk z0A4q6-rQaY{nItZ0c(Z4*s->}wYInlSDd**ogly3Qx6r-iT8Qi0iq)G$={C6wa5%3|E~++a zTN&=vyPvZ_v&OCwtSMnJHVbR z>zf|-1IO8X=X%+Tnr&TJFN@ExP_ptso&kyZ8Rou=7pvUEd0#HpYz=YgS=K%*y5+EW zx7VptFs==0!Rn{K-Eh2Pq(z6z+jJsftvo!q`2@xN#A|w zzs88mimu%g-Y^i3Z+-ie{grAg&Ye_l*Zo2`p*j-G$=X$MnN|Q#oOSUfUzH|#n#|ha zrVapwmNP1m<&wQ!yPu_4i%{Gfv=eDhN2KVy%(mJu6>|c4ioR#2+O7C)?bn%oNYOK@a^73QYg!8z$}#kLSA9H_$ckCZ_3 z;C2SQ{;PMRK!vLg+UE~)IjrvE9;CWR{{Zx+iap-)J6!FY5s^tvzle+TwYcFZ227rm z_;*kbYPzcWfz7 z+5=8PX}j?m#k2@~qIVm9HGP|@Xy+kHcGqTr!mV=-D9$$2JE7HuY^mVWj-|4m@U3as z_zngW-e16N9kylV+!h*2WlETnUgK}j4k680`<~zn$Ro8ado;2<{36=@+q9Oyh?EjQ zK<^d2?O+4x--VSHk;bGUYci~`++Q?ZTVd(CVTHY=9%rPE<_{I~Xm;r5)wnjmweK6O zbXs8N)z^eSiDc!=Tt6w`crIlaoz1ns{{WK1KXrxa{$+nMy{gyo3`ZPHjwkZsI{yH2 zsd^dnnPiqo{jNQp&*|_Mqh;*finnyNzkPI-8Eh+A9-hSZubAxnlIkEW!XS*0+GMgx81xxY6mp2;M!QhWm(y0#Dw8D_=Xp3!?)}y0U=t5 z2l4l>S)uhKTH_TGDS6F)%3RSY!Bz%Kw?=x#ShjK0S+=JVl`SJs1pE7QTbmx8y2qaY zEUnW}{VaAeN~3&C%#PvSBjQ;@1GN7DcDJ=Ewo}UBtNvc#SCZeiGR?r~;%^`^mFRYD zyXt7$sgoA7iFjLs+Thr3EVp0#d%6O>K9Q)IB7LgPqtZ}D*3D$NuG9L8SIAZ(jvE&aCg%{NY|R|XQ40)K{?+L86d&m79M>thcQgtg2Wi?`&Hwm2O}zrwN9aol{?G+A6eZwhPeJAYPBg!E;9t3AaS>OtvxQ#4-}$juPe2m1Rn>vUm{_ccZqoR7|qUUyl+zi;jl%T3D~3_2@zjT^xvlA(>Lo8Z$Hs| zx7Hr1n^feIzqz?h-Q$R12kct*QonyXs9@x1E5=?SUU{gJ8a_GSklvJ z5~cgcLCsu}AjX36gituhcmkU3b5>uxwEH#1yOz>HCBRY>?N8I{A*v}8!y{i{rMO~j zad)p0o3xBAzd-?T7xMnp%{UJv1MN$Z?`0awmtZKj)~kFp6rl>zfSx}Z*VDJaROfL& znO43w;?~$+KZD>8;TE@Rd9O0%VL!!Jx3|u)_vf*)wmBPiwYF&A!O{m%7#|<1r4xf# z-`^>AIBKxwVl*XHfOIT#y^Wx>e-k4|yxMxhaAxh+^C@YSyiV#Obc%4&h{xqYCZXS) zoGDIP&i1)>?*7@wTn?0!>j)%+?0BPtb`dmg^?pJE2^x$|YVI4PT6Xi0&{TAK2`6_31KEhr-m%6YKM z?Wv@ffl9h>`PSysvU6`E46(prjKs=J{1@03(yyO7DH{SKoha1 z#_~-Nhk*l;P+ZH1x&dXP4^m0uu07P+tfGN{yDC1*CEG%$6(_6;7BmrMG4j#COb;R1 zSV~Ndz&$Fn;3M*@jFq>Piq)4A@KVt`&iyE3VgCS9jYO@g9VshqA;1>mNcQMHm7vH0 zS^Vn>Po@G=g9mPTr!)X)ptRj|yK7ZzSP4rg2Z-jlA^@ntt8tGYc2FAhFc50fk(y16&FkDa=;LX>}TS=u;D zk0P{n&!fev=XtgtWCW-Z4%1rBVCvRA8%fiKwv{A=B}1iFbV-eUeyUY!%3QWf4Fooj zHz0FPVepps8?*)6G|C9sQMb;G&91@&@}t;=(^gEpS_o5wM<7r+z-6jCR9+>BKXZzC zj-));kN^|CQ96v-T3<*8g$T^4yTsah#fvbOh>2Fjnogh8Oq5Qamukt6Z6Na{dMzgPM~iR@_~!WZ@DA%J=8N1z53w#WtxML}lLMje zSK-zO^po?Ms%$N^NRF&{CjagVMbaZR9T+K?aH}y&wWaRPaz-gcb)u z6%K7F2jv(y-=zvJK71lvJD8F^=-Llx4Im|89)hH{%8o%C3SvwF+JdP_2(q9K#MHI6 zpq1d~5eA9P3$0_!owX5B!{JCPCC$W|?g|O{Md}BG6h_bod@Kd_sZt!WRYFaiC@w|n z0((){$^dB?7dwgvG}>cag*~~hr64RR&G`h>f%1f(gaWDQ28{u7-OsbWwu7SCOK)PM z_;X(_jNk0Osr8Or0t;zSM$IFVdE@sqw=iEM43W|vLj?m;Ql#og5<7AAqiHVfIny{E zsT@+WQ=$kaAkRG_x#6xQp%Y;B)(QQNj1Zn1_)*+BmQKjgXtZ{eSU zSr{72G7xUrECUDW~huGgb~@atOr3*-!{ z2jly8zMH%~`)+`g zFoqk_l2onYv>?+1AtUmIj>mx*BoxJ%GcBeOgNM#QwD6P>|_l?9dCkQ(|rfBqT zd&A%R1*RS#=23BGm)_dxwUZGce)H4iUpd{kHi*OB`GWS_c8=sUFjl7K>!&j_Prkz| zUWwFTdV1HD){(A&zA$VrN1|upB@KBLR=8psm~q8A7TWaz9mRZ?bcR3(t6xRh+}CBf zNo^ckszF&+qs4hYra5JLm$jj`6tn`CTT)6&R%8DFQS3!+eE`N_)vRGDbBzpzU1wEV z;aENE@7uT;QYI2iy0UrSrDwhDiKM?5@#L>Vw?ihRfDT9W2+sj-nei7BYs0)}6~1Eq z#ick?uW9n)30f4QW<-r34fn5i>CZ`NJwkq)pTcq0FhKA3`zrhP?WoyL*JF7_{;I(T z$J)Mabi)GpQowR^0ArZ-rNizZI;S)f9boOSud;1F!fh6Tl_SCX;4hbMKg8`;u>Sy( z(g*HVz~#RRaBR7TVV8D{TDfNEKWBSb9&~f3`&Yiu>`>{NK8tF`KI`Y2&HeK|-%;5e zf4THws+4{J4Lm#O3cXNN4#UT z=>0wE$7}Z|Ncs^p_x{US@x0rKV|PztN?MY)7E1LVzb^Y%=G_Ls@gt}5PHldbn^O}Z z5i`K>nk{kFp;DAO`=V1I?fL%quY043qaa!Pbi4+=rNDw|PH^0A`NB0J0WtX2{)0|m zl0Wb6yndoMgJ>Hn)WLDm%T2Q4mJEVrTvpQ>){YHcYG@o?$yjzdi6|jKOFR?51Nu|p zi-|Xto2ZPHD^6!iZHIx}d-L_HGD_C_sZx_l<4Qw?W>s8aqVSyuf2C+?B_IOHL3 z6&^nK73YSmmstx;=`l^TYnh;-xbs41f&|S;);QoLvrj^tGLxe=uTQCDf<*eFo2T3! z!^HH3`Vr6wD$LF(5{F4C=1qDHHsJ2sQeUHJ$>}t!F}|l3RQ#p{8LP7HC8o*BNQI{@ zP8QhfrQoL@TF1|Ny`$HV@gORuw?NX~C0eudHm_rlU~M z#`IT<*6Cx286I*MLc9<7e!;L-7l>vCSh`c`PoVVn74}V=V`Nd2Ajw}b-n~ls$PB;< zKaHLg_+OJAYd5=>lXA;xD+oa;3ESI|HA`K#=;M>>NIG4$ZaT?q~QE4e5aR@9xnkz-|$}3 z3BVe}SAP4qPN!3CsS&7k=BYE#?Sdfk>m+<9yVh=!f2P*pB)Mn8`-U61%vU&*cEPiu zh6d_&alg_i^j?xIy+JfSK2Yvnr)$5-V{D$!fU|dsTjAJsx)ja2-ejo<%RtnrKg>rp zVtH7|z-w|9T{th2+~c27 zdf(YB