diff --git a/.idea/runConfigurations/Generate_Baseline_Profile.xml b/.idea/runConfigurations/Generate_Baseline_Profile.xml
new file mode 100644
index 000000000..574863222
--- /dev/null
+++ b/.idea/runConfigurations/Generate_Baseline_Profile.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
diff --git a/baselineprofile/.gitignore b/baselineprofile/.gitignore
new file mode 100644
index 000000000..796b96d1c
--- /dev/null
+++ b/baselineprofile/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/baselineprofile/build.gradle.kts b/baselineprofile/build.gradle.kts
new file mode 100644
index 000000000..c980d79a7
--- /dev/null
+++ b/baselineprofile/build.gradle.kts
@@ -0,0 +1,63 @@
+@file:Suppress("UnstableApiUsage")
+
+import com.android.build.api.dsl.ManagedVirtualDevice
+
+plugins {
+ kotlin("android")
+ id("com.android.test")
+ id("androidx.baselineprofile")
+ id("org.jmailen.kotlinter")
+}
+
+android {
+ namespace = "kiwi.orbit.compose.baselineprofile"
+ compileSdk = libs.versions.compileSdk.get().toInt()
+
+ defaultConfig {
+ minSdk = 28 // required by the BaselineProfileRule
+ targetSdk = libs.versions.targetSdk.get().toInt()
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+
+ lint {
+ abortOnError = true
+ warningsAsErrors = true
+ }
+
+ targetProjectPath = ":catalog"
+
+ testOptions {
+ animationsDisabled = true
+
+ managedDevices.devices {
+ create("pixel6Api33") {
+ device = "Pixel 6"
+ apiLevel = 34
+ systemImageSource = "google"
+ }
+ }
+ }
+}
+
+kotlinter {
+ reporters = arrayOf("json")
+}
+
+baselineProfile {
+ managedDevices += "pixel6Api33"
+ useConnectedDevices = false
+}
+
+dependencies {
+ implementation(projects.catalog.semantics)
+
+ implementation(libs.androidx.benchmark.macro)
+ implementation(libs.androidx.test.runner)
+ implementation(libs.androidx.test.uiAutomator)
+}
diff --git a/baselineprofile/src/main/kotlin/kiwi/orbit/baselineprofile/BaselineProfileGenerator.kt b/baselineprofile/src/main/kotlin/kiwi/orbit/baselineprofile/BaselineProfileGenerator.kt
new file mode 100644
index 000000000..7285d4c95
--- /dev/null
+++ b/baselineprofile/src/main/kotlin/kiwi/orbit/baselineprofile/BaselineProfileGenerator.kt
@@ -0,0 +1,153 @@
+package kiwi.orbit.baselineprofile
+
+import androidx.benchmark.macro.MacrobenchmarkScope
+import androidx.benchmark.macro.junit4.BaselineProfileRule
+import androidx.test.filters.LargeTest
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiScrollable
+import androidx.test.uiautomator.UiSelector
+import androidx.test.uiautomator.Until
+import kiwi.orbit.compose.catalog.semantics.AlertScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.ButtonScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.DialogScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.MainScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.PillButtonScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.SelectFieldScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.ToastScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.TopAppBarScreenSemantics
+import org.junit.Rule
+import org.junit.Test
+
+/**
+ * This test class generates a basic startup baseline profile for the target package.
+ *
+ * We recommend you start with this but add important user flows to the profile to improve their performance.
+ * Refer to the [baseline profile documentation](https://d.android.com/topic/performance/baselineprofiles)
+ * for more information.
+ *
+ * You can run the generator with the Generate Baseline Profile run configuration,
+ * or directly with `generateBaselineProfile` Gradle task:
+ * ```
+ * ./gradlew :catalog:generateReleaseBaselineProfile -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
+ * ```
+ * The run configuration runs the Gradle task and applies filtering to run only the generators.
+ *
+ * Check [documentation](https://d.android.com/topic/performance/benchmarking/macrobenchmark-instrumentation-args)
+ * for more information about available instrumentation arguments.
+ *
+ * After you run the generator, you can verify the improvements running the [StartupBenchmarks] benchmark.
+ **/
+@LargeTest
+internal class BaselineProfileGenerator {
+
+ private companion object {
+ const val TIMEOUT = 5000L
+ }
+
+ @get:Rule
+ val rule = BaselineProfileRule()
+
+ @Test
+ fun generate() {
+ rule.collect(
+ packageName = "kiwi.orbit.compose.catalog",
+ maxIterations = 5,
+ stableIterations = 2,
+ ) {
+ pressHome()
+ startActivityAndWait()
+
+ profileSubScreen(MainScreenSemantics.ColorsItemTag)
+ profileSubScreen(MainScreenSemantics.IconsItemTag)
+ profileSubScreen(MainScreenSemantics.IllustrationsItemTag)
+ profileSubScreen(MainScreenSemantics.TypographyItemTag)
+
+ profileSubScreen(MainScreenSemantics.AlertItemTag) {
+ device.findObject(By.res(AlertScreenSemantics.NormalTabTag)).click()
+ device.findObject(By.res(AlertScreenSemantics.SuppressedTabTag)).click()
+ device.findObject(By.res(AlertScreenSemantics.InlineTabTag)).click()
+ }
+ profileSubScreen(MainScreenSemantics.BadgeItemTag)
+ profileSubScreen(MainScreenSemantics.BadgeListItemTag)
+ profileSubScreen(MainScreenSemantics.ButtonItemTag) {
+ device.findObject(By.res(ButtonScreenSemantics.ButtonTabTag)).click()
+ device.findObject(By.res(ButtonScreenSemantics.ButtonLinkTabTag)).click()
+ }
+ profileSubScreen(MainScreenSemantics.CardItemTag)
+ profileSubScreen(MainScreenSemantics.CheckboxItemTag)
+ profileSubScreen(MainScreenSemantics.ChoiceTileItemTag)
+ profileSubScreen(MainScreenSemantics.CollapseItemTag)
+ profileSubScreen(MainScreenSemantics.DialogItemTag) {
+ device.findObject(By.res(DialogScreenSemantics.OrbitDialogButtonTag))
+ .clickAndWait(Until.newWindow(), TIMEOUT)
+ device.pressBack()
+ device.findObject(By.res(DialogScreenSemantics.M3DialogButtonTag))
+ .clickAndWait(Until.newWindow(), TIMEOUT)
+ device.pressBack()
+ device.findObject(By.res(DialogScreenSemantics.M3TimePickerButtonTag))
+ .clickAndWait(Until.newWindow(), TIMEOUT)
+ device.pressBack()
+ device.findObject(By.res(DialogScreenSemantics.M3DatePickerButtonTag))
+ .clickAndWait(Until.newWindow(), TIMEOUT)
+ device.pressBack()
+ }
+ profileSubScreen(MainScreenSemantics.EmptyStateItemTag)
+ profileSubScreen(MainScreenSemantics.KeyValueItemTag)
+ profileSubScreen(MainScreenSemantics.ListItemTag)
+ profileSubScreen(MainScreenSemantics.ListChoiceItemTag)
+ profileSubScreen(MainScreenSemantics.LoadingItemTag)
+ profileSubScreen(MainScreenSemantics.PillButtonItemTag) {
+ device.findObject(By.res(PillButtonScreenSemantics.ShowWithIconButtonTag)).click()
+ }
+ profileSubScreen(MainScreenSemantics.ProgressIndicatorItemTag)
+ profileSubScreen(MainScreenSemantics.RadioItemTag)
+ profileSubScreen(MainScreenSemantics.SeatItemTag)
+ profileSubScreen(MainScreenSemantics.SegmentedSwitchItemTag)
+ profileSubScreen(MainScreenSemantics.SelectFieldItemTag) {
+ device.findObject(By.res(SelectFieldScreenSemantics.CountrySelectFieldTag)).click() // open
+ device.findObject(By.res(SelectFieldScreenSemantics.CountrySelectFieldTag)).click() // close
+ Thread.sleep(1000L) // back navigation is blocked until the popup is fully closed
+ }
+ profileSubScreen(MainScreenSemantics.SliderItemTag)
+ profileSubScreen(MainScreenSemantics.StepperItemTag)
+ profileSubScreen(MainScreenSemantics.SurfaceCardItemTag)
+ profileSubScreen(MainScreenSemantics.SwitchItemTag)
+ profileSubScreen(MainScreenSemantics.TabsItemTag)
+ profileSubScreen(MainScreenSemantics.TagItemTag)
+ profileSubScreen(MainScreenSemantics.TextFieldItemTag)
+ profileSubScreen(MainScreenSemantics.TileItemTag)
+ profileSubScreen(MainScreenSemantics.TileGroupItemTag)
+ profileSubScreen(MainScreenSemantics.TimelineItemTag)
+ profileSubScreen(MainScreenSemantics.ToastItemTag) {
+ device.findObject(By.res(ToastScreenSemantics.ToastSignedInButtonTag)).click()
+ }
+ profileSubScreen(MainScreenSemantics.TopAppBarItemTag) {
+ device.findObject(By.res(TopAppBarScreenSemantics.NormalSimpleButtonTag)).click()
+ device.wait(Until.hasObject(By.res(TopAppBarScreenSemantics.NormalSimpleScreenTag)), TIMEOUT)
+ device.pressBack()
+ device.wait(Until.hasObject(By.res(SubScreenSemantics.Tag)), TIMEOUT)
+ device.findObject(By.res(TopAppBarScreenSemantics.LargeSimpleButtonTag)).click()
+ device.wait(Until.hasObject(By.res(TopAppBarScreenSemantics.LargeSimpleScreenTag)), TIMEOUT)
+ device.pressBack()
+ }
+ }
+ }
+
+ private fun MacrobenchmarkScope.profileSubScreen(
+ mainScreenItemTag: String,
+ profileContent: MacrobenchmarkScope.() -> Unit = {},
+ ) {
+ val mainScreenScrollable = UiScrollable(UiSelector().scrollable(true))
+ mainScreenScrollable.scrollIntoView(UiSelector().resourceId(mainScreenItemTag))
+ device.wait(Until.hasObject(By.res(mainScreenItemTag)), TIMEOUT)
+
+ device.findObject(By.res(mainScreenItemTag)).click()
+ device.wait(Until.hasObject(By.res(SubScreenSemantics.Tag)), TIMEOUT)
+
+ profileContent()
+
+ device.pressBack()
+ device.wait(Until.hasObject(By.res(MainScreenSemantics.Tag)), TIMEOUT)
+ }
+}
diff --git a/baselineprofile/src/main/kotlin/kiwi/orbit/baselineprofile/StartupBenchmarks.kt b/baselineprofile/src/main/kotlin/kiwi/orbit/baselineprofile/StartupBenchmarks.kt
new file mode 100644
index 000000000..32152e6a2
--- /dev/null
+++ b/baselineprofile/src/main/kotlin/kiwi/orbit/baselineprofile/StartupBenchmarks.kt
@@ -0,0 +1,59 @@
+package kiwi.orbit.baselineprofile
+
+import androidx.benchmark.macro.BaselineProfileMode
+import androidx.benchmark.macro.CompilationMode
+import androidx.benchmark.macro.StartupMode
+import androidx.benchmark.macro.StartupTimingMetric
+import androidx.benchmark.macro.junit4.MacrobenchmarkRule
+import androidx.test.filters.LargeTest
+import org.junit.Rule
+import org.junit.Test
+
+/**
+ * This test class benchmarks the speed of app startup.
+ * Run this benchmark to verify how effective a Baseline Profile is.
+ * It does this by comparing [CompilationMode.None], which represents the app with no Baseline
+ * Profiles optimizations, and [CompilationMode.Partial], which uses Baseline Profiles.
+ *
+ * Run this benchmark to see startup measurements and captured system traces for verifying
+ * the effectiveness of your Baseline Profiles. You can run it directly from Android
+ * Studio as an instrumentation test, or run all benchmarks with this Gradle task:
+ * ```
+ * ./gradlew :baselineprofile:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=Macrobenchmark
+ * ```
+ *
+ * You should run the benchmarks on a physical device, not an Android emulator, because the
+ * emulator doesn't represent real world performance and shares system resources with its host.
+ *
+ * For more information, see the [Macrobenchmark documentation](https://d.android.com/macrobenchmark#create-macrobenchmark)
+ * and the [instrumentation arguments documentation](https://d.android.com/topic/performance/benchmarking/macrobenchmark-instrumentation-args).
+ **/
+@LargeTest
+internal class StartupBenchmarks {
+
+ @get:Rule
+ val rule = MacrobenchmarkRule()
+
+ @Test
+ fun startupCompilationNone() {
+ benchmark(CompilationMode.None())
+ }
+
+ @Test
+ fun startupCompilationBaselineProfiles() {
+ benchmark(CompilationMode.Partial(BaselineProfileMode.Require))
+ }
+
+ private fun benchmark(compilationMode: CompilationMode) {
+ rule.measureRepeated(
+ packageName = "kiwi.orbit.compose.catalog",
+ metrics = listOf(StartupTimingMetric()),
+ compilationMode = compilationMode,
+ startupMode = StartupMode.COLD,
+ iterations = 10,
+ setupBlock = { pressHome() },
+ ) {
+ startActivityAndWait()
+ }
+ }
+}
diff --git a/build.gradle.kts b/build.gradle.kts
index 07c65ebb6..ce05debb0 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -14,6 +14,8 @@ plugins {
kotlin("multiplatform") version "1.9.10" apply false
kotlin("plugin.serialization") version "1.9.10" apply false
id("com.android.library") version "8.1.1" apply false
+ id("com.android.test") version "8.1.1" apply false
+ id("androidx.baselineprofile") version "1.2.0-beta01" apply false
id("app.cash.paparazzi") version "1.3.1" apply false
id("com.google.firebase.appdistribution") version "4.0.0" apply false
id("com.vanniktech.maven.publish.base") version "0.25.3" apply false
diff --git a/catalog/build.gradle.kts b/catalog/build.gradle.kts
index 6ac8470aa..c726ccca5 100644
--- a/catalog/build.gradle.kts
+++ b/catalog/build.gradle.kts
@@ -7,6 +7,7 @@ plugins {
kotlin("android")
kotlin("plugin.serialization")
id("com.android.application")
+ id("androidx.baselineprofile")
id("org.jmailen.kotlinter")
id("com.google.firebase.appdistribution")
kotlin("plugin.parcelize")
@@ -127,6 +128,7 @@ dependencies {
implementation(projects.ui)
implementation(projects.icons)
implementation(projects.illustrations)
+ implementation(projects.catalog.semantics)
implementation(libs.androidx.core)
implementation(libs.androidx.activityCompose)
@@ -152,6 +154,8 @@ dependencies {
implementation(libs.accompanist.systemController)
implementation(libs.kiwi.navigationComposeTyped)
+ baselineProfile(projects.baselineprofile)
+
coreLibraryDesugaring(libs.android.desugarJdk)
debugImplementation(libs.compose.tooling)
@@ -159,5 +163,5 @@ dependencies {
debugImplementation(libs.androidx.customViewPoolingContainer)
lintChecks(libs.slack.composeLintChecks)
- lintChecks(project(":lint"))
+ lintChecks(projects.lint)
}
diff --git a/catalog/semantics/.gitignore b/catalog/semantics/.gitignore
new file mode 100644
index 000000000..796b96d1c
--- /dev/null
+++ b/catalog/semantics/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/catalog/semantics/build.gradle.kts b/catalog/semantics/build.gradle.kts
new file mode 100644
index 000000000..c517862b6
--- /dev/null
+++ b/catalog/semantics/build.gradle.kts
@@ -0,0 +1,28 @@
+plugins {
+ kotlin("android")
+ id("com.android.library")
+ id("org.jmailen.kotlinter")
+}
+
+android {
+ namespace = "kiwi.orbit.compose.catalog.semantics"
+ compileSdk = libs.versions.compileSdk.get().toInt()
+
+ defaultConfig {
+ minSdk = libs.versions.minSdk.get().toInt()
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+
+ lint {
+ abortOnError = true
+ warningsAsErrors = true
+ }
+}
+
+kotlinter {
+ reporters = arrayOf("json")
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/AlertScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/AlertScreenSemantics.kt
new file mode 100644
index 000000000..67a710f80
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/AlertScreenSemantics.kt
@@ -0,0 +1,7 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object AlertScreenSemantics {
+ const val NormalTabTag = "alert_screen_normal_tab_tag"
+ const val SuppressedTabTag = "alert_screen_suppressed_tab_tag"
+ const val InlineTabTag = "alert_screen_inline_tab_tag"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/ButtonScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/ButtonScreenSemantics.kt
new file mode 100644
index 000000000..ae565c7e6
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/ButtonScreenSemantics.kt
@@ -0,0 +1,6 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object ButtonScreenSemantics {
+ const val ButtonTabTag = "button_screen_button_tab_tag"
+ const val ButtonLinkTabTag = "button_screen_button_link_tab_tag"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/DialogScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/DialogScreenSemantics.kt
new file mode 100644
index 000000000..a4f7a7910
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/DialogScreenSemantics.kt
@@ -0,0 +1,8 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object DialogScreenSemantics {
+ const val OrbitDialogButtonTag = "dialog_screen_orbit_dialog_button_tag"
+ const val M3DialogButtonTag = "dialog_screen_m3_dialog_button_tag"
+ const val M3TimePickerButtonTag = "dialog_screen_m3_time_picker_button_tag"
+ const val M3DatePickerButtonTag = "dialog_screen_m3_date_picker_button_tag"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/MainScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/MainScreenSemantics.kt
new file mode 100644
index 000000000..6f80430a5
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/MainScreenSemantics.kt
@@ -0,0 +1,43 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object MainScreenSemantics {
+ const val Tag = "main_screen"
+
+ const val ColorsItemTag = "main_screen_colors_item_item"
+ const val IconsItemTag = "main_screen_icons_item"
+ const val IllustrationsItemTag = "main_screen_illustrations_item"
+ const val TypographyItemTag = "main_screen_typography_item"
+
+ const val AlertItemTag = "main_screen_alert_item"
+ const val BadgeItemTag = "main_screen_badge_item"
+ const val BadgeListItemTag = "main_screen_badge_list_item"
+ const val ButtonItemTag = "main_screen_button_item"
+ const val CardItemTag = "main_screen_card_item"
+ const val CheckboxItemTag = "main_screen_checkbox_item"
+ const val ChoiceTileItemTag = "main_screen_choice_tile_item"
+ const val CollapseItemTag = "main_screen_collapse_item"
+ const val DialogItemTag = "main_screen_dialog_item"
+ const val EmptyStateItemTag = "main_screen_empty_state_item"
+ const val KeyValueItemTag = "main_screen_key_value_item"
+ const val ListItemTag = "main_screen_list_item"
+ const val ListChoiceItemTag = "main_screen_list_choice_item"
+ const val LoadingItemTag = "main_screen_loading_item"
+ const val PillButtonItemTag = "main_screen_pill_button_item"
+ const val ProgressIndicatorItemTag = "main_screen_progress_indicator_item"
+ const val RadioItemTag = "main_screen_radio_item"
+ const val SeatItemTag = "main_screen_seat_item"
+ const val SegmentedSwitchItemTag = "main_screen_segmented_switch_item"
+ const val SelectFieldItemTag = "main_screen_select_field_item"
+ const val SliderItemTag = "main_screen_slider_item"
+ const val StepperItemTag = "main_screen_stepper_item"
+ const val SurfaceCardItemTag = "main_screen_surface_card_item"
+ const val SwitchItemTag = "main_screen_switch_item"
+ const val TabsItemTag = "main_screen_tabs_item"
+ const val TagItemTag = "main_screen_tag_item"
+ const val TextFieldItemTag = "main_screen_text_field_item"
+ const val TileItemTag = "main_screen_tile_item"
+ const val TileGroupItemTag = "main_screen_tile_group_item"
+ const val TimelineItemTag = "main_screen_timeline_item"
+ const val ToastItemTag = "main_screen_toast_item"
+ const val TopAppBarItemTag = "main_screen_top_app_bar_item"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/PillButtonScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/PillButtonScreenSemantics.kt
new file mode 100644
index 000000000..3b34451a9
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/PillButtonScreenSemantics.kt
@@ -0,0 +1,5 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object PillButtonScreenSemantics {
+ const val ShowWithIconButtonTag = "pill_button_screen_show_with_icon_button_tag"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/SelectFieldScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/SelectFieldScreenSemantics.kt
new file mode 100644
index 000000000..ff6bca254
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/SelectFieldScreenSemantics.kt
@@ -0,0 +1,5 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object SelectFieldScreenSemantics {
+ const val CountrySelectFieldTag = "select_field_screen_country_select_field_tag"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/SubScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/SubScreenSemantics.kt
new file mode 100644
index 000000000..8390fe9df
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/SubScreenSemantics.kt
@@ -0,0 +1,5 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object SubScreenSemantics {
+ const val Tag = "sub_screen"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/ToastScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/ToastScreenSemantics.kt
new file mode 100644
index 000000000..dc5dda5be
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/ToastScreenSemantics.kt
@@ -0,0 +1,5 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object ToastScreenSemantics {
+ const val ToastSignedInButtonTag = "toast_screen_toast_signed_in_button_tag"
+}
diff --git a/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/TopAppBarScreenSemantics.kt b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/TopAppBarScreenSemantics.kt
new file mode 100644
index 000000000..55283a63e
--- /dev/null
+++ b/catalog/semantics/src/main/kotlin/kiwi/orbit/compose/catalog/semantics/TopAppBarScreenSemantics.kt
@@ -0,0 +1,8 @@
+package kiwi.orbit.compose.catalog.semantics
+
+object TopAppBarScreenSemantics {
+ const val NormalSimpleButtonTag = "top_app_bar_screen_normal_simple_button_tag"
+ const val LargeSimpleButtonTag = "top_app_bar_screen_large_simple_button_tag"
+ const val NormalSimpleScreenTag = "top_app_bar_screen_normal_simple_screen_tag"
+ const val LargeSimpleScreenTag = "top_app_bar_screen_large_simple_screen_tag"
+}
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/CatalogApplication.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/CatalogApplication.kt
index 1bd32fa9d..30cf8c701 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/CatalogApplication.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/CatalogApplication.kt
@@ -16,8 +16,12 @@ 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.ExperimentalComposeUiApi
+import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.semantics.semantics
+import androidx.compose.ui.semantics.testTagsAsResourceId
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.dp
import androidx.navigation.compose.NavHost
@@ -93,7 +97,7 @@ fun CatalogApplication() {
}
}
-@OptIn(ExperimentalSerializationApi::class)
+@OptIn(ExperimentalSerializationApi::class, ExperimentalComposeUiApi::class)
@Composable
private fun NavGraph(
onToggleTheme: () -> Unit,
@@ -104,6 +108,7 @@ private fun NavGraph(
NavHost(
navController = navController,
startDestination = createRoutePattern(),
+ modifier = Modifier.semantics { testTagsAsResourceId = true },
enterTransition = { SharedXAxisEnterTransition(density) },
exitTransition = { SharedXAxisExitTransition(density) },
popEnterTransition = { SharedXAxisPopEnterTransition(density) },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/AlertScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/AlertScreen.kt
index 950ee314d..fd314e1aa 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/AlertScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/AlertScreen.kt
@@ -18,6 +18,7 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontWeight
@@ -26,6 +27,8 @@ import androidx.compose.ui.text.withStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.AlertScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.AlertCritical
@@ -52,6 +55,7 @@ internal fun AlertScreen(onNavigateUp: () -> Unit) {
val state = rememberPagerState(0) { 3 }
val scope = rememberCoroutineScope()
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Alert") },
@@ -61,16 +65,19 @@ internal fun AlertScreen(onNavigateUp: () -> Unit) {
Tab(
selected = state.currentPage == 0,
onClick = { scope.launch { state.animateScrollToPage(0) } },
+ modifier = Modifier.testTag(AlertScreenSemantics.NormalTabTag),
text = { Text("Normal") },
)
Tab(
selected = state.currentPage == 1,
onClick = { scope.launch { state.animateScrollToPage(1) } },
+ modifier = Modifier.testTag(AlertScreenSemantics.SuppressedTabTag),
text = { Text("Suppressed") },
)
Tab(
selected = state.currentPage == 2,
onClick = { scope.launch { state.animateScrollToPage(2) } },
+ modifier = Modifier.testTag(AlertScreenSemantics.InlineTabTag),
text = { Text("Inline") },
)
}
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeListScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeListScreen.kt
index 91ea4f2fa..93859e00b 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeListScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeListScreen.kt
@@ -10,8 +10,10 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.BadgeList
@@ -30,6 +32,7 @@ import kiwi.orbit.compose.ui.foundation.ContentEmphasis
@Composable
internal fun BadgeListScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("BadgeList") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeScreen.kt
index 054780577..ba4d1dbf4 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/BadgeScreen.kt
@@ -16,8 +16,10 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.BadgeBundleBasic
@@ -55,6 +57,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun BadgeScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Badge") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ButtonScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ButtonScreen.kt
index 1649f445a..2b798f3fb 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ButtonScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ButtonScreen.kt
@@ -25,11 +25,14 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
+import kiwi.orbit.compose.catalog.semantics.ButtonScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.ButtonBundleBasic
@@ -63,6 +66,7 @@ internal fun ButtonScreen(onNavigateUp: () -> Unit) {
val state = rememberPagerState(0) { 2 }
val scope = rememberCoroutineScope()
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Buttons") },
@@ -72,11 +76,13 @@ internal fun ButtonScreen(onNavigateUp: () -> Unit) {
Tab(
selected = state.currentPage == 0,
onClick = { scope.launch { state.animateScrollToPage(0) } },
+ modifier = Modifier.testTag(ButtonScreenSemantics.ButtonTabTag),
text = { Text("Button") },
)
Tab(
selected = state.currentPage == 1,
onClick = { scope.launch { state.animateScrollToPage(1) } },
+ modifier = Modifier.testTag(ButtonScreenSemantics.ButtonLinkTabTag),
text = { Text("ButtonLink") },
)
}
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CardScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CardScreen.kt
index 61e4cc4bb..c044fbe10 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CardScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CardScreen.kt
@@ -10,10 +10,12 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
import kiwi.orbit.compose.catalog.components.CustomPlaceholder
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.ButtonTextLinkPrimary
@@ -29,6 +31,7 @@ internal fun CardScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Card") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CheckboxScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CheckboxScreen.kt
index 835613eb6..b756f696f 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CheckboxScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CheckboxScreen.kt
@@ -17,8 +17,10 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Checkbox
import kiwi.orbit.compose.ui.controls.CheckboxField
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -28,6 +30,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun CheckboxScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Checkbox Button") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ChoiceTileScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ChoiceTileScreen.kt
index e7cfd12f0..7d8ba2806 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ChoiceTileScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ChoiceTileScreen.kt
@@ -24,9 +24,11 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.components.CustomPlaceholder
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.controls.BadgeInfoSubtle
import kiwi.orbit.compose.ui.controls.ChoiceTile
@@ -39,6 +41,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun ChoiceTileScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("ChoiceTile") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CollapseScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CollapseScreen.kt
index f05f168b8..466125429 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CollapseScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/CollapseScreen.kt
@@ -13,8 +13,10 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Collapse
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Text
@@ -23,6 +25,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun CollapseScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Collapse") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ColorsScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ColorsScreen.kt
index 937524988..d6110c2f7 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ColorsScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ColorsScreen.kt
@@ -20,8 +20,10 @@ import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.takeOrElse
import androidx.compose.ui.graphics.toArgb
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Surface
@@ -35,6 +37,7 @@ import kiwi.orbit.compose.ui.foundation.contentColorFor
@Composable
internal fun ColorsScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Colors") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/DialogsScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/DialogsScreen.kt
index 49e18402e..a1b6c398e 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/DialogsScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/DialogsScreen.kt
@@ -15,12 +15,15 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import com.kiwi.navigationcompose.typed.DialogResultEffect
import com.kiwi.navigationcompose.typed.createRoutePattern
import com.kiwi.navigationcompose.typed.navigate
import kiwi.orbit.compose.catalog.Destinations
+import kiwi.orbit.compose.catalog.semantics.DialogScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.ButtonSecondary
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Separator
@@ -51,6 +54,7 @@ internal fun DialogsScreen(
}
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Dialogs") },
@@ -90,11 +94,27 @@ private fun DialogsScreenInner(
verticalArrangement = Arrangement.spacedBy(8.dp),
horizontalAlignment = Alignment.CenterHorizontally,
) {
- ButtonSecondary(onClick = onShowOrbitDialog) { Text("Show Orbit Dialog") }
+ ButtonSecondary(
+ onClick = onShowOrbitDialog,
+ modifier = Modifier.testTag(DialogScreenSemantics.OrbitDialogButtonTag),
+ content = { Text("Show Orbit Dialog") },
+ )
Separator(Modifier.padding(vertical = 16.dp))
- ButtonSecondary(onClick = onShowMaterialDialog) { Text("Show M3 Dialog") }
- ButtonSecondary(onClick = onShowMaterialTimePicker) { Text("Show M3 TimePicker") }
- ButtonSecondary(onClick = onShowMaterialDatePicker) { Text("Show M3 DatePicker") }
+ ButtonSecondary(
+ onClick = onShowMaterialDialog,
+ modifier = Modifier.testTag(DialogScreenSemantics.M3DialogButtonTag),
+ content = { Text("Show M3 Dialog") },
+ )
+ ButtonSecondary(
+ onClick = onShowMaterialTimePicker,
+ modifier = Modifier.testTag(DialogScreenSemantics.M3TimePickerButtonTag),
+ content = { Text("Show M3 TimePicker") },
+ )
+ ButtonSecondary(
+ onClick = onShowMaterialDatePicker,
+ modifier = Modifier.testTag(DialogScreenSemantics.M3DatePickerButtonTag),
+ content = { Text("Show M3 DatePicker") },
+ )
Text("Picked Time: $time")
Text("Picked Date: $date")
}
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/EmptyStateScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/EmptyStateScreen.kt
index fb3760c55..c35a09bc2 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/EmptyStateScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/EmptyStateScreen.kt
@@ -9,8 +9,10 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.illustrations.Illustrations
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.ButtonPrimary
@@ -24,6 +26,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun EmptyStateScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("EmptyState") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IconsScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IconsScreen.kt
index c87e0559a..3eb4e64f9 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IconsScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IconsScreen.kt
@@ -14,9 +14,11 @@ import androidx.compose.runtime.currentComposer
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.ColoredIcons
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
@@ -31,6 +33,7 @@ import kotlin.reflect.full.memberProperties
@Composable
internal fun IconsScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Icons") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IllustrationsScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IllustrationsScreen.kt
index ebdc48f6e..29cae3dd2 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IllustrationsScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/IllustrationsScreen.kt
@@ -12,8 +12,10 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.currentComposer
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.illustrations.Illustrations
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -26,6 +28,7 @@ import kotlin.reflect.full.memberProperties
@Composable
internal fun IllustrationsScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Illustrations") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/KeyValueScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/KeyValueScreen.kt
index 9fd25e760..ed725e69c 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/KeyValueScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/KeyValueScreen.kt
@@ -11,8 +11,10 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.KeyValue
import kiwi.orbit.compose.ui.controls.KeyValueLarge
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -22,6 +24,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun KeyValueScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("KeyValue") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LinearProgressIndicatorScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LinearProgressIndicatorScreen.kt
index 677fb954d..a2fcb115a 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LinearProgressIndicatorScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LinearProgressIndicatorScreen.kt
@@ -17,9 +17,11 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.ButtonSecondary
import kiwi.orbit.compose.ui.controls.LinearIndeterminateProgressIndicator
import kiwi.orbit.compose.ui.controls.LinearProgressIndicator
@@ -30,6 +32,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun LinearProgressIndicatorScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Linear Progress Indicator") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListChoiceScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListChoiceScreen.kt
index 4c8421cc3..ad0e9224f 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListChoiceScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListChoiceScreen.kt
@@ -17,9 +17,11 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.controls.BadgeCircleInfoSubtle
import kiwi.orbit.compose.ui.controls.ButtonPrimarySubtle
@@ -35,6 +37,7 @@ internal fun ListChoiceScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("ListChoice") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListScreen.kt
index d524e6bbd..085cd5bfb 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ListScreen.kt
@@ -9,9 +9,11 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Icon
@@ -27,6 +29,7 @@ internal fun ListScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("List") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LoadingScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LoadingScreen.kt
index 9c7e272b7..c16622c7e 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LoadingScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/LoadingScreen.kt
@@ -15,8 +15,10 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.CircularProgressIndicator
import kiwi.orbit.compose.ui.controls.InlineLoading
@@ -30,6 +32,7 @@ internal fun LoadingScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Loading") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/MainScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/MainScreen.kt
index b115d78cd..776b668aa 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/MainScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/MainScreen.kt
@@ -1,5 +1,6 @@
package kiwi.orbit.compose.catalog.screens
+import androidx.activity.compose.ReportDrawn
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
@@ -40,6 +41,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.kiwi.navigationcompose.typed.Destination
@@ -57,10 +59,12 @@ import kiwi.orbit.compose.ui.utils.plus
import kotlinx.serialization.ExperimentalSerializationApi
import androidx.compose.material.icons.Icons.Outlined as OMIcons
import androidx.compose.material.icons.Icons.Rounded as MIcons
+import kiwi.orbit.compose.catalog.semantics.MainScreenSemantics as Semantics
private data class MenuItem(
val title: String,
val icon: Any,
+ val testTag: String,
val onClick: () -> Unit,
)
@@ -70,51 +74,60 @@ internal fun MainScreen(
onNavigate: (Destination) -> Unit,
onToggleTheme: () -> Unit,
) {
- fun MenuItem(title: String, icon: Any, onNavigate: () -> Destination): MenuItem =
- MenuItem(title, icon, onClick = { onNavigate(onNavigate()) })
+ fun MenuItem(title: String, icon: Any, testTag: String, onNavigate: () -> Destination): MenuItem =
+ MenuItem(title, icon, testTag, onClick = { onNavigate(onNavigate()) })
val foundation = listOf(
- MenuItem("Colors", MIcons.Palette) { Destinations.Colors },
- MenuItem("Icons", Icons.Airplane) { Destinations.Icons },
- MenuItem("Illustrations", Icons.Gallery) { Destinations.Illustrations },
- MenuItem("Typography", MIcons.FormatSize) { Destinations.Typography },
+ MenuItem("Colors", MIcons.Palette, Semantics.ColorsItemTag) { Destinations.Colors },
+ MenuItem("Icons", Icons.Airplane, Semantics.IconsItemTag) { Destinations.Icons },
+ MenuItem("Illustrations", Icons.Gallery, Semantics.IllustrationsItemTag) {
+ Destinations.Illustrations
+ },
+ MenuItem("Typography", MIcons.FormatSize, Semantics.TypographyItemTag) { Destinations.Typography },
)
val controls = listOf(
- MenuItem("Alert", Icons.Alert) { Destinations.Alert },
- MenuItem("Badge", Icons.Deals) { Destinations.Badge },
- MenuItem("BadgeList", Icons.List) { Destinations.BadgeList },
- MenuItem("Button", MIcons.SmartButton) { Destinations.Button },
- MenuItem("Card", MIcons.Rectangle) { Destinations.Card },
- MenuItem("Checkbox", MIcons.CheckBox) { Destinations.Checkbox },
- MenuItem("Choice Tile", MIcons.Ballot) { Destinations.ChoiceTile },
- MenuItem("Collapse", Icons.ChevronDown) { Destinations.Collapse },
- MenuItem("Dialog", Icons.Chat) { Destinations.Dialog },
- MenuItem("EmptyState", MIcons.SignalWifiOff) { Destinations.EmptyState },
- MenuItem("KeyValue", MIcons.DragHandle) { Destinations.KeyValue },
- MenuItem("List", MIcons.DensitySmall) { Destinations.List },
- MenuItem("ListChoice", Icons.MenuHamburger) { Destinations.ListChoice },
- MenuItem("Loading", Icons.MenuMeatballs) { Destinations.Loading },
- MenuItem("PillButton", MIcons.EditAttributes) { Destinations.PillButton },
- MenuItem("Progress Indicator", OMIcons.ToggleOff) { Destinations.LinearProgressIndicator },
- MenuItem("Radio", Icons.CircleFilled) { Destinations.Radio },
- MenuItem("Seat", Icons.Seat) { Destinations.Seat },
- MenuItem("Segmented Switch", MIcons.ToggleOn) { Destinations.SegmentedSwitch },
- MenuItem("Select Field", MIcons.MenuOpen) { Destinations.SelectField },
- MenuItem("Slider", MIcons.LinearScale) { Destinations.Slider },
- MenuItem("Stepper", Icons.PlusCircle) { Destinations.Stepper },
- MenuItem("SurfaceCard", MIcons.Article) { Destinations.SurfaceCard },
- MenuItem("Switch", MIcons.ToggleOn) { Destinations.Switch },
- MenuItem("Tabs", MIcons.Tab) { Destinations.Tabs },
- MenuItem("Tag", MIcons.LabelImportant) { Destinations.Tag },
- MenuItem("Text Field", MIcons.Keyboard) { Destinations.TextField },
- MenuItem("Tile", MIcons.Crop169) { Destinations.Tile },
- MenuItem("TileGroup", MIcons.ListAlt) { Destinations.TileGroup },
- MenuItem("Timeline", Icons.RouteTwoStops) { Destinations.Timeline },
- MenuItem("Toast", MIcons.Announcement) { Destinations.Toast },
- MenuItem("TopAppBar", MIcons.WebAsset) { Destinations.TopAppBar },
+ MenuItem("Alert", Icons.Alert, Semantics.AlertItemTag) { Destinations.Alert },
+ MenuItem("Badge", Icons.Deals, Semantics.BadgeItemTag) { Destinations.Badge },
+ MenuItem("BadgeList", Icons.List, Semantics.BadgeListItemTag) { Destinations.BadgeList },
+ MenuItem("Button", MIcons.SmartButton, Semantics.ButtonItemTag) { Destinations.Button },
+ MenuItem("Card", MIcons.Rectangle, Semantics.CardItemTag) { Destinations.Card },
+ MenuItem("Checkbox", MIcons.CheckBox, Semantics.CheckboxItemTag) { Destinations.Checkbox },
+ MenuItem("Choice Tile", MIcons.Ballot, Semantics.ChoiceTileItemTag) { Destinations.ChoiceTile },
+ MenuItem("Collapse", Icons.ChevronDown, Semantics.CollapseItemTag) { Destinations.Collapse },
+ MenuItem("Dialog", Icons.Chat, Semantics.DialogItemTag) { Destinations.Dialog },
+ MenuItem("EmptyState", MIcons.SignalWifiOff, Semantics.EmptyStateItemTag) { Destinations.EmptyState },
+ MenuItem("KeyValue", MIcons.DragHandle, Semantics.KeyValueItemTag) { Destinations.KeyValue },
+ MenuItem("List", MIcons.DensitySmall, Semantics.ListItemTag) { Destinations.List },
+ MenuItem("ListChoice", Icons.MenuHamburger, Semantics.ListChoiceItemTag) { Destinations.ListChoice },
+ MenuItem("Loading", Icons.MenuMeatballs, Semantics.LoadingItemTag) { Destinations.Loading },
+ MenuItem("PillButton", MIcons.EditAttributes, Semantics.PillButtonItemTag) {
+ Destinations.PillButton
+ },
+ MenuItem("Progress Indicator", OMIcons.ToggleOff, Semantics.ProgressIndicatorItemTag) {
+ Destinations.LinearProgressIndicator
+ },
+ MenuItem("Radio", Icons.CircleFilled, Semantics.RadioItemTag) { Destinations.Radio },
+ MenuItem("Seat", Icons.Seat, Semantics.SeatItemTag) { Destinations.Seat },
+ MenuItem("Segmented Switch", MIcons.ToggleOn, Semantics.SegmentedSwitchItemTag) {
+ Destinations.SegmentedSwitch
+ },
+ MenuItem("Select Field", MIcons.MenuOpen, Semantics.SelectFieldItemTag) { Destinations.SelectField },
+ MenuItem("Slider", MIcons.LinearScale, Semantics.SliderItemTag) { Destinations.Slider },
+ MenuItem("Stepper", Icons.PlusCircle, Semantics.StepperItemTag) { Destinations.Stepper },
+ MenuItem("SurfaceCard", MIcons.Article, Semantics.SurfaceCardItemTag) { Destinations.SurfaceCard },
+ MenuItem("Switch", MIcons.ToggleOn, Semantics.SwitchItemTag) { Destinations.Switch },
+ MenuItem("Tabs", MIcons.Tab, Semantics.TabsItemTag) { Destinations.Tabs },
+ MenuItem("Tag", MIcons.LabelImportant, Semantics.TagItemTag) { Destinations.Tag },
+ MenuItem("Text Field", MIcons.Keyboard, Semantics.TextFieldItemTag) { Destinations.TextField },
+ MenuItem("Tile", MIcons.Crop169, Semantics.TileItemTag) { Destinations.Tile },
+ MenuItem("TileGroup", MIcons.ListAlt, Semantics.TileGroupItemTag) { Destinations.TileGroup },
+ MenuItem("Timeline", Icons.RouteTwoStops, Semantics.TimelineItemTag) { Destinations.Timeline },
+ MenuItem("Toast", MIcons.Announcement, Semantics.ToastItemTag) { Destinations.Toast },
+ MenuItem("TopAppBar", MIcons.WebAsset, Semantics.TopAppBarItemTag) { Destinations.TopAppBar },
)
Scaffold(
+ modifier = Modifier.testTag(Semantics.Tag),
topBar = {
TopAppBarLarge(
title = { Text("Orbit Compose Catalog") },
@@ -137,6 +150,8 @@ internal fun MainScreen(
cardItems("Controls", controls)
}
}
+
+ ReportDrawn()
}
private fun LazyGridScope.cardItems(
@@ -156,7 +171,9 @@ private fun LazyGridScope.cardItems(
@Composable
private fun Item(menuItem: MenuItem) {
SurfaceCard(
- modifier = Modifier.fillMaxWidth(),
+ modifier = Modifier
+ .testTag(menuItem.testTag)
+ .fillMaxWidth(),
onClick = menuItem.onClick,
) {
Row(
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/PillButtonScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/PillButtonScreen.kt
index 79e521758..dcefbd2d3 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/PillButtonScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/PillButtonScreen.kt
@@ -15,9 +15,12 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
+import kiwi.orbit.compose.catalog.semantics.PillButtonScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.controls.ButtonSecondary
import kiwi.orbit.compose.ui.controls.Icon
@@ -32,6 +35,7 @@ internal fun PillButtonScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("PillButton") },
@@ -85,6 +89,7 @@ private fun PillButtonScreenInner(
show = true
showIcon = true
},
+ modifier = Modifier.testTag(PillButtonScreenSemantics.ShowWithIconButtonTag),
) { Text("Show with icon") }
}
}
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/RadioScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/RadioScreen.kt
index 782cc6342..0b1873179 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/RadioScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/RadioScreen.kt
@@ -17,8 +17,10 @@ import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Radio
import kiwi.orbit.compose.ui.controls.RadioField
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -28,6 +30,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun RadioScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Radio") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SeatScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SeatScreen.kt
index c03c2796f..6fccd69fb 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SeatScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SeatScreen.kt
@@ -15,7 +15,9 @@ 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.platform.testTag
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.SeatExtraLegroom
import kiwi.orbit.compose.ui.controls.SeatLegendExtraLegroom
@@ -29,6 +31,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun SeatScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Seat") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SegmentedSwitchScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SegmentedSwitchScreen.kt
index 50302c96c..07057edbc 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SegmentedSwitchScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SegmentedSwitchScreen.kt
@@ -14,8 +14,10 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.SegmentedSwitch
import kiwi.orbit.compose.ui.controls.Text
@@ -24,6 +26,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun SegmentedSwitchScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("SegmentedSwitch") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SelectFieldScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SelectFieldScreen.kt
index 360421848..db43f8325 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SelectFieldScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SelectFieldScreen.kt
@@ -17,8 +17,11 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SelectFieldScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.CountryFlag
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.SelectField
@@ -29,6 +32,7 @@ import kotlinx.parcelize.Parcelize
@Composable
internal fun SelectFieldScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Select Field") },
@@ -78,7 +82,9 @@ private fun SelectFieldScreenInner() {
placeholder = { Text("Select country") },
onOptionSelect = { selected = it },
label = { Text("Country") },
- modifier = Modifier.fillMaxWidth(),
+ modifier = Modifier
+ .testTag(SelectFieldScreenSemantics.CountrySelectFieldTag)
+ .fillMaxWidth(),
) { country ->
CountryFlag(country.code, country.name)
Spacer(Modifier.size(16.dp))
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SliderScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SliderScreen.kt
index 832dbdf15..e811af4a3 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SliderScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SliderScreen.kt
@@ -16,7 +16,9 @@ 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.platform.testTag
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.RangeSlider
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -27,6 +29,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun SliderScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Slider") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/StepperScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/StepperScreen.kt
index 79e7b1f84..d8b0c9b4f 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/StepperScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/StepperScreen.kt
@@ -16,8 +16,10 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Stepper
@@ -27,6 +29,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun StepperScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Stepper") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SurfaceCardScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SurfaceCardScreen.kt
index 998670dce..891b7323e 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SurfaceCardScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SurfaceCardScreen.kt
@@ -17,7 +17,9 @@ 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.platform.testTag
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.illustrations.Illustrations
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -29,6 +31,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun SurfaceCardScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("SurfaceCard") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SwitchScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SwitchScreen.kt
index 98a822cbe..7fa7f5676 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SwitchScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/SwitchScreen.kt
@@ -15,8 +15,10 @@ 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.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Separator
import kiwi.orbit.compose.ui.controls.Switch
@@ -26,6 +28,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun SwitchScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Switch") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TabsScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TabsScreen.kt
index 9d4efbd78..090a9889b 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TabsScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TabsScreen.kt
@@ -6,7 +6,10 @@ import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Tab
import kiwi.orbit.compose.ui.controls.TabRow
@@ -20,6 +23,7 @@ internal fun TabsScreen(onNavigateUp: () -> Unit) {
val pagerState = rememberPagerState(0) { 3 }
val scope = rememberCoroutineScope()
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Tabs") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TagScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TagScreen.kt
index 01c3cc303..e3a9118b1 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TagScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TagScreen.kt
@@ -17,8 +17,10 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -32,6 +34,7 @@ import kotlinx.coroutines.launch
internal fun TagScreen(onNavigateUp: () -> Unit) {
val toastHostState = remember { ToastHostState() }
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Tag") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TextFieldScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TextFieldScreen.kt
index b9f61677d..aefdf8339 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TextFieldScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TextFieldScreen.kt
@@ -27,10 +27,12 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.controls.ButtonPrimary
import kiwi.orbit.compose.ui.controls.Icon
@@ -48,6 +50,7 @@ import kiwi.orbit.compose.ui.controls.field.LabelLastBaseLine
internal fun TextFieldScreen(onNavigateUp: () -> Unit) {
var showAction by rememberSaveable { mutableStateOf(true) }
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Text Field") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileGroupScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileGroupScreen.kt
index 192420650..23620f150 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileGroupScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileGroupScreen.kt
@@ -8,10 +8,12 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
import kiwi.orbit.compose.catalog.components.CustomPlaceholder
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Icon
@@ -26,6 +28,7 @@ internal fun TileGroupScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("TileGroup") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileScreen.kt
index 42fd64e6b..85ff5a32c 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TileScreen.kt
@@ -15,10 +15,12 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
import kiwi.orbit.compose.catalog.components.CustomPlaceholder
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.illustrations.Illustrations
import kiwi.orbit.compose.ui.OrbitTheme
@@ -33,6 +35,7 @@ internal fun TileScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Tile") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TimelineScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TimelineScreen.kt
index b4923624d..1acbab520 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TimelineScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TimelineScreen.kt
@@ -14,9 +14,11 @@ import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.AppTheme
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Separator
import kiwi.orbit.compose.ui.controls.Text
@@ -28,6 +30,7 @@ import kiwi.orbit.compose.ui.controls.TopAppBar
@Composable
internal fun TimelineScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Timeline") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ToastScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ToastScreen.kt
index 515562a58..310e42f73 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ToastScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/ToastScreen.kt
@@ -15,7 +15,10 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.Painter
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.ToastScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.controls.ButtonSecondary
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -31,6 +34,7 @@ internal fun ToastScreen(
val toastHostState = remember { ToastHostState() }
val scope = rememberCoroutineScope()
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Toast") },
@@ -70,6 +74,7 @@ private fun ToastScreenInner(
onClick = {
onToast("You’re signed in as jon.snow@wall.7k.") { Icons.CheckCircle }
},
+ modifier = Modifier.testTag(ToastScreenSemantics.ToastSignedInButtonTag),
) { Text("Toast – signed in") }
ButtonSecondary(
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreen.kt
index bb591a3bf..efcc22dc6 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreen.kt
@@ -12,6 +12,7 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
@@ -20,6 +21,8 @@ import com.kiwi.navigationcompose.typed.composable
import com.kiwi.navigationcompose.typed.createRoutePattern
import com.kiwi.navigationcompose.typed.navigate
import com.kiwi.navigationcompose.typed.navigation
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
+import kiwi.orbit.compose.catalog.semantics.TopAppBarScreenSemantics
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.ButtonSecondary
import kiwi.orbit.compose.ui.controls.Scaffold
@@ -107,6 +110,7 @@ internal fun TopAppBarScreenInner(
onSelect: (Destination) -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(title = { Text("TopAppBar") }, onNavigateUp = onNavigateUp)
},
@@ -124,6 +128,7 @@ internal fun TopAppBarScreenInner(
Text("Normal", style = OrbitTheme.typography.title3)
ButtonSecondary(
onClick = { onSelect(TopAppBarDestination.Normal) },
+ modifier = Modifier.testTag(TopAppBarScreenSemantics.NormalSimpleButtonTag),
) {
Text("Simple")
}
@@ -147,6 +152,7 @@ internal fun TopAppBarScreenInner(
Text("Large", style = OrbitTheme.typography.title3)
ButtonSecondary(
onClick = { onSelect(TopAppBarDestination.Large) },
+ modifier = Modifier.testTag(TopAppBarScreenSemantics.LargeSimpleButtonTag),
) {
Text("Simple")
}
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensLarge.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensLarge.kt
index a7363cebd..51c9ef642 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensLarge.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensLarge.kt
@@ -23,9 +23,11 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
import coil.request.ImageRequest
+import kiwi.orbit.compose.catalog.semantics.TopAppBarScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Icon
@@ -43,6 +45,7 @@ internal fun TopAppBarLargeScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(TopAppBarScreenSemantics.LargeSimpleScreenTag),
topBar = {
TopAppBarLarge(
title = { Text("Simple") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensNormal.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensNormal.kt
index eb970b937..b9f1a6d7d 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensNormal.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TopAppBarScreensNormal.kt
@@ -16,8 +16,10 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.input.nestedscroll.nestedScroll
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp
import kiwi.orbit.compose.catalog.components.CustomPlaceholder
+import kiwi.orbit.compose.catalog.semantics.TopAppBarScreenSemantics
import kiwi.orbit.compose.icons.Icons
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Icon
@@ -35,6 +37,7 @@ internal fun TopAppBarNormalScreen(
onNavigateUp: () -> Unit,
) {
Scaffold(
+ modifier = Modifier.testTag(TopAppBarScreenSemantics.NormalSimpleScreenTag),
topBar = {
TopAppBar(
title = { Text("Simple") },
diff --git a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TypographyScreen.kt b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TypographyScreen.kt
index 3b2972ca9..70505d500 100644
--- a/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TypographyScreen.kt
+++ b/catalog/src/main/java/kiwi/orbit/compose/catalog/screens/TypographyScreen.kt
@@ -13,9 +13,11 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import kiwi.orbit.compose.catalog.semantics.SubScreenSemantics
import kiwi.orbit.compose.ui.OrbitTheme
import kiwi.orbit.compose.ui.controls.Scaffold
import kiwi.orbit.compose.ui.controls.Text
@@ -26,6 +28,7 @@ import kotlin.math.roundToInt
@Composable
internal fun TypographyScreen(onNavigateUp: () -> Unit) {
Scaffold(
+ modifier = Modifier.testTag(SubScreenSemantics.Tag),
topBar = {
TopAppBar(
title = { Text("Typography") },
diff --git a/catalog/src/release/generated/baselineProfiles/baseline-prof.txt b/catalog/src/release/generated/baselineProfiles/baseline-prof.txt
new file mode 100644
index 000000000..5dc99e8ed
--- /dev/null
+++ b/catalog/src/release/generated/baselineProfiles/baseline-prof.txt
@@ -0,0 +1,28408 @@
+PLandroidx/activity/ComponentActivity;->()V
+PLandroidx/activity/ComponentActivity;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V
+PLandroidx/activity/ComponentActivity;->createFullyDrawnExecutor()Landroidx/activity/ComponentActivity$ReportFullyDrawnExecutor;
+PLandroidx/activity/ComponentActivity;->ensureViewModelStore()V
+PLandroidx/activity/ComponentActivity;->getDefaultViewModelCreationExtras()Landroidx/lifecycle/viewmodel/CreationExtras;
+PLandroidx/activity/ComponentActivity;->getFullyDrawnReporter()Landroidx/activity/FullyDrawnReporter;
+HPLandroidx/activity/ComponentActivity;->getLifecycle()Landroidx/lifecycle/Lifecycle;
+PLandroidx/activity/ComponentActivity;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;
+PLandroidx/activity/ComponentActivity;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;
+PLandroidx/activity/ComponentActivity;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;
+PLandroidx/activity/ComponentActivity;->initViewTreeOwners()V
+PLandroidx/activity/ComponentActivity;->lambda$new$0$androidx-activity-ComponentActivity()Lkotlin/Unit;
+PLandroidx/activity/ComponentActivity;->lambda$new$1$androidx-activity-ComponentActivity()Landroid/os/Bundle;
+PLandroidx/activity/ComponentActivity;->lambda$new$2$androidx-activity-ComponentActivity(Landroid/content/Context;)V
+PLandroidx/activity/ComponentActivity;->onCreate(Landroid/os/Bundle;)V
+PLandroidx/activity/ComponentActivity;->onSaveInstanceState(Landroid/os/Bundle;)V
+PLandroidx/activity/ComponentActivity;->onTrimMemory(I)V
+PLandroidx/activity/ComponentActivity;->reportFullyDrawn()V
+PLandroidx/activity/ComponentActivity;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+PLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;->invoke()Ljava/lang/Object;
+PLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;->saveState()Landroid/os/Bundle;
+PLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;->onContextAvailable(Landroid/content/Context;)V
+PLandroidx/activity/ComponentActivity$1;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$2;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$3;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$3;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+PLandroidx/activity/ComponentActivity$4;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$4;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+PLandroidx/activity/ComponentActivity$5;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$5;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+PLandroidx/activity/ComponentActivity$Api19Impl;->cancelPendingInputEvents(Landroid/view/View;)V
+PLandroidx/activity/ComponentActivity$Api33Impl;->getOnBackInvokedDispatcher(Landroid/app/Activity;)Landroid/window/OnBackInvokedDispatcher;
+PLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;->(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;->activityDestroyed()V
+PLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;->execute(Ljava/lang/Runnable;)V
+PLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;->onDraw()V
+PLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;->run()V
+PLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;->viewCreated(Landroid/view/View;)V
+PLandroidx/activity/ComponentDialog;->(Landroid/content/Context;I)V
+PLandroidx/activity/ComponentDialog;->(Landroid/content/Context;IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/activity/ComponentDialog;->getLifecycle()Landroidx/lifecycle/Lifecycle;
+PLandroidx/activity/ComponentDialog;->getLifecycleRegistry()Landroidx/lifecycle/LifecycleRegistry;
+PLandroidx/activity/ComponentDialog;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;
+PLandroidx/activity/ComponentDialog;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;
+PLandroidx/activity/ComponentDialog;->initViewTreeOwners()V
+PLandroidx/activity/ComponentDialog;->onCreate(Landroid/os/Bundle;)V
+PLandroidx/activity/ComponentDialog;->onStart()V
+PLandroidx/activity/ComponentDialog;->onStop()V
+PLandroidx/activity/ComponentDialog;->setContentView(Landroid/view/View;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/graphics/Bitmap$Config;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/Canvas;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/Insets;)I
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$AutofillCallback;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$13()Landroid/graphics/BlendMode;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/Insets;)I
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/Insets;)I
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$4()Landroid/graphics/BlendMode;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$6()Landroid/graphics/BlendMode;
+HPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$7()Landroid/graphics/BlendMode;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/Bitmap$Config;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/BlendMode;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()Landroid/graphics/ColorSpace$Named;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/Class;
+HPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m()V
+HPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Canvas;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Insets;)I
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)Ljava/util/List;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;I)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;Ljava/util/List;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$AutofillCallback;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroidx/activity/ComponentDialog;)Landroid/window/OnBackInvokedDispatcher;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/view/autofill/AutofillManager$AutofillCallback;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/view/autofill/AutofillManager;
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda1;->(Landroidx/activity/ComponentDialog;)V
+PLandroidx/activity/FullyDrawnReporter;->$r8$lambda$9oQ81V-Fq3e0CkAqj9HHhVQeVeY(Landroidx/activity/FullyDrawnReporter;)V
+PLandroidx/activity/FullyDrawnReporter;->(Ljava/util/concurrent/Executor;Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/FullyDrawnReporter;->addOnReportDrawnListener(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/FullyDrawnReporter;->addReporter()V
+PLandroidx/activity/FullyDrawnReporter;->fullyDrawnReported()V
+PLandroidx/activity/FullyDrawnReporter;->isFullyDrawnReported()Z
+PLandroidx/activity/FullyDrawnReporter;->postWhenReportersAreDone()V
+PLandroidx/activity/FullyDrawnReporter;->removeReporter()V
+PLandroidx/activity/FullyDrawnReporter;->reportRunnable$lambda$2(Landroidx/activity/FullyDrawnReporter;)V
+PLandroidx/activity/FullyDrawnReporter$$ExternalSyntheticLambda0;->(Landroidx/activity/FullyDrawnReporter;)V
+PLandroidx/activity/FullyDrawnReporter$$ExternalSyntheticLambda0;->run()V
+PLandroidx/activity/OnBackPressedCallback;->(Z)V
+PLandroidx/activity/OnBackPressedCallback;->addCancellable(Landroidx/activity/Cancellable;)V
+PLandroidx/activity/OnBackPressedCallback;->isEnabled()Z
+PLandroidx/activity/OnBackPressedCallback;->remove()V
+PLandroidx/activity/OnBackPressedCallback;->removeCancellable(Landroidx/activity/Cancellable;)V
+HPLandroidx/activity/OnBackPressedCallback;->setEnabled(Z)V
+PLandroidx/activity/OnBackPressedCallback;->setEnabledChangedCallback$activity_release(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/OnBackPressedDispatcher;->(Ljava/lang/Runnable;)V
+PLandroidx/activity/OnBackPressedDispatcher;->access$getOnBackPressedCallbacks$p(Landroidx/activity/OnBackPressedDispatcher;)Lkotlin/collections/ArrayDeque;
+PLandroidx/activity/OnBackPressedDispatcher;->addCallback(Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/OnBackPressedCallback;)V
+PLandroidx/activity/OnBackPressedDispatcher;->addCancellableCallback$activity_release(Landroidx/activity/OnBackPressedCallback;)Landroidx/activity/Cancellable;
+HPLandroidx/activity/OnBackPressedDispatcher;->hasEnabledCallbacks()Z
+PLandroidx/activity/OnBackPressedDispatcher;->onBackPressed()V
+PLandroidx/activity/OnBackPressedDispatcher;->setOnBackInvokedDispatcher(Landroid/window/OnBackInvokedDispatcher;)V
+HPLandroidx/activity/OnBackPressedDispatcher;->updateBackInvokedCallbackState$activity_release()V
+PLandroidx/activity/OnBackPressedDispatcher$1;->(Landroidx/activity/OnBackPressedDispatcher;)V
+PLandroidx/activity/OnBackPressedDispatcher$1;->invoke()Ljava/lang/Object;
+PLandroidx/activity/OnBackPressedDispatcher$1;->invoke()V
+PLandroidx/activity/OnBackPressedDispatcher$2;->(Landroidx/activity/OnBackPressedDispatcher;)V
+PLandroidx/activity/OnBackPressedDispatcher$2;->invoke()Ljava/lang/Object;
+PLandroidx/activity/OnBackPressedDispatcher$2;->invoke()V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl;->$r8$lambda$tzBBo0FLedRCWSI6_icF8qhF74s(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl;->()V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl;->()V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl;->createOnBackInvokedCallback$lambda$0(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl;->createOnBackInvokedCallback(Lkotlin/jvm/functions/Function0;)Landroid/window/OnBackInvokedCallback;
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl;->registerOnBackInvokedCallback(Ljava/lang/Object;ILjava/lang/Object;)V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl;->unregisterOnBackInvokedCallback(Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl$$ExternalSyntheticLambda0;->(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/OnBackPressedDispatcher$Api33Impl$$ExternalSyntheticLambda0;->onBackInvoked()V
+PLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/Lifecycle;Landroidx/activity/OnBackPressedCallback;)V
+PLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->cancel()V
+PLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+PLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/OnBackPressedCallback;)V
+PLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;->cancel()V
+PLandroidx/activity/OnBackPressedDispatcherKt;->addCallback$default(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Landroidx/activity/OnBackPressedCallback;
+PLandroidx/activity/OnBackPressedDispatcherKt;->addCallback(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;ZLkotlin/jvm/functions/Function1;)Landroidx/activity/OnBackPressedCallback;
+PLandroidx/activity/OnBackPressedDispatcherKt$addCallback$callback$1;->(ZLkotlin/jvm/functions/Function1;)V
+PLandroidx/activity/OnBackPressedDispatcherKt$addCallback$callback$1;->handleOnBackPressed()V
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner;->get(Landroid/view/View;)Landroidx/activity/FullyDrawnReporterOwner;
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner;->set(Landroid/view/View;Landroidx/activity/FullyDrawnReporterOwner;)V
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$1;->()V
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$1;->()V
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$1;->invoke(Landroid/view/View;)Landroid/view/View;
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$2;->()V
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$2;->()V
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$2;->invoke(Landroid/view/View;)Landroidx/activity/FullyDrawnReporterOwner;
+PLandroidx/activity/ViewTreeFullyDrawnReporterOwner$findViewTreeFullyDrawnReporterOwner$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner;->get(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;
+PLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner;->set(Landroid/view/View;Landroidx/activity/OnBackPressedDispatcherOwner;)V
+PLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->()V
+PLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->()V
+HPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->invoke(Landroid/view/View;)Landroid/view/View;
+PLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->()V
+PLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->()V
+HPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->invoke(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;
+PLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/BackHandlerKt;->BackHandler$lambda$0(Landroidx/compose/runtime/State;)Lkotlin/jvm/functions/Function0;
+HPLandroidx/activity/compose/BackHandlerKt;->BackHandler(ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/activity/compose/BackHandlerKt;->access$BackHandler$lambda$0(Landroidx/compose/runtime/State;)Lkotlin/jvm/functions/Function0;
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;->(Landroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;Z)V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$1$1;->invoke()V
+HPLandroidx/activity/compose/BackHandlerKt$BackHandler$2;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;)V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$2;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$2$invoke$$inlined$onDispose$1;->(Landroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;)V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$2$invoke$$inlined$onDispose$1;->dispose()V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;->(ZLandroidx/compose/runtime/State;)V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1;->handleOnBackPressed()V
+PLandroidx/activity/compose/ComponentActivityKt;->()V
+PLandroidx/activity/compose/ComponentActivityKt;->setContent$default(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
+PLandroidx/activity/compose/ComponentActivityKt;->setContent(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions/Function2;)V
+PLandroidx/activity/compose/ComponentActivityKt;->setOwners(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/compose/LocalFullyDrawnReporterOwner;->()V
+PLandroidx/activity/compose/LocalFullyDrawnReporterOwner;->()V
+PLandroidx/activity/compose/LocalFullyDrawnReporterOwner;->getCurrent(Landroidx/compose/runtime/Composer;I)Landroidx/activity/FullyDrawnReporterOwner;
+PLandroidx/activity/compose/LocalFullyDrawnReporterOwner$LocalFullyDrawnReporterOwner$1;->()V
+PLandroidx/activity/compose/LocalFullyDrawnReporterOwner$LocalFullyDrawnReporterOwner$1;->()V
+PLandroidx/activity/compose/LocalFullyDrawnReporterOwner$LocalFullyDrawnReporterOwner$1;->invoke()Landroidx/activity/FullyDrawnReporterOwner;
+PLandroidx/activity/compose/LocalFullyDrawnReporterOwner$LocalFullyDrawnReporterOwner$1;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->()V
+PLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->()V
+HPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->getCurrent(Landroidx/compose/runtime/Composer;I)Landroidx/activity/OnBackPressedDispatcherOwner;
+PLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->()V
+PLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->()V
+PLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->invoke()Landroidx/activity/OnBackPressedDispatcherOwner;
+PLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/ReportDrawnComposition;->(Landroidx/activity/FullyDrawnReporter;Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/compose/ReportDrawnComposition;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/ReportDrawnComposition;->invoke()V
+PLandroidx/activity/compose/ReportDrawnComposition;->observeReporter(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/compose/ReportDrawnComposition;->removeReporter()V
+PLandroidx/activity/compose/ReportDrawnComposition$checkReporter$1;->(Ljava/lang/Object;)V
+PLandroidx/activity/compose/ReportDrawnComposition$observeReporter$1;->(Lkotlin/jvm/internal/Ref$BooleanRef;Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/compose/ReportDrawnComposition$observeReporter$1;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/ReportDrawnComposition$observeReporter$1;->invoke()V
+PLandroidx/activity/compose/ReportDrawnComposition$snapshotStateObserver$1;->()V
+PLandroidx/activity/compose/ReportDrawnComposition$snapshotStateObserver$1;->()V
+HPLandroidx/activity/compose/ReportDrawnKt;->ReportDrawn(Landroidx/compose/runtime/Composer;I)V
+PLandroidx/activity/compose/ReportDrawnKt;->ReportDrawnWhen(Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawn$1;->()V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawn$1;->()V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawn$1;->invoke()Ljava/lang/Boolean;
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawn$1;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1;->(Landroidx/activity/FullyDrawnReporter;Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$invoke$$inlined$onDispose$1;->()V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$invoke$$inlined$onDispose$1;->dispose()V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$invoke$$inlined$onDispose$2;->(Landroidx/activity/compose/ReportDrawnComposition;)V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$invoke$$inlined$onDispose$2;->dispose()V
+PLandroidx/activity/contextaware/ContextAwareHelper;->()V
+PLandroidx/activity/contextaware/ContextAwareHelper;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V
+PLandroidx/activity/contextaware/ContextAwareHelper;->clearAvailableContext()V
+PLandroidx/activity/contextaware/ContextAwareHelper;->dispatchOnContextAvailable(Landroid/content/Context;)V
+PLandroidx/activity/result/ActivityResultRegistry;->()V
+PLandroidx/activity/result/ActivityResultRegistry;->onSaveInstanceState(Landroid/os/Bundle;)V
+PLandroidx/appcompat/content/res/AppCompatResources;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
+PLandroidx/appcompat/widget/DrawableUtils;->()V
+PLandroidx/appcompat/widget/DrawableUtils;->fixDrawable(Landroid/graphics/drawable/Drawable;)V
+PLandroidx/appcompat/widget/ResourceManagerInternal;->()V
+PLandroidx/appcompat/widget/ResourceManagerInternal;->()V
+PLandroidx/appcompat/widget/ResourceManagerInternal;->checkVectorDrawableSetup(Landroid/content/Context;)V
+PLandroidx/appcompat/widget/ResourceManagerInternal;->createCacheKey(Landroid/util/TypedValue;)J
+PLandroidx/appcompat/widget/ResourceManagerInternal;->createDrawableIfNeeded(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->get()Landroidx/appcompat/widget/ResourceManagerInternal;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->getCachedDrawable(Landroid/content/Context;J)Landroid/graphics/drawable/Drawable;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(Landroid/content/Context;IZ)Landroid/graphics/drawable/Drawable;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->getTintList(Landroid/content/Context;I)Landroid/content/res/ColorStateList;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->getTintListFromCache(Landroid/content/Context;I)Landroid/content/res/ColorStateList;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->installDefaultInflateDelegates(Landroidx/appcompat/widget/ResourceManagerInternal;)V
+PLandroidx/appcompat/widget/ResourceManagerInternal;->isVectorDrawable(Landroid/graphics/drawable/Drawable;)Z
+PLandroidx/appcompat/widget/ResourceManagerInternal;->loadDrawableFromDelegates(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->tintDrawable(Landroid/content/Context;IZLandroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+PLandroidx/appcompat/widget/ResourceManagerInternal;->tintDrawableUsingColorFilter(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z
+PLandroidx/appcompat/widget/ResourceManagerInternal$ColorFilterLruCache;->(I)V
+Landroidx/arch/core/executor/ArchTaskExecutor;
+HSPLandroidx/arch/core/executor/ArchTaskExecutor;->()V
+HSPLandroidx/arch/core/executor/ArchTaskExecutor;->()V
+HSPLandroidx/arch/core/executor/ArchTaskExecutor;->getInstance()Landroidx/arch/core/executor/ArchTaskExecutor;
+HSPLandroidx/arch/core/executor/ArchTaskExecutor;->isMainThread()Z
+Landroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda0;
+HSPLandroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda0;->()V
+Landroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda1;
+HSPLandroidx/arch/core/executor/ArchTaskExecutor$$ExternalSyntheticLambda1;->()V
+Landroidx/arch/core/executor/DefaultTaskExecutor;
+HSPLandroidx/arch/core/executor/DefaultTaskExecutor;->()V
+HSPLandroidx/arch/core/executor/DefaultTaskExecutor;->isMainThread()Z
+Landroidx/arch/core/executor/DefaultTaskExecutor$1;
+HSPLandroidx/arch/core/executor/DefaultTaskExecutor$1;->(Landroidx/arch/core/executor/DefaultTaskExecutor;)V
+Landroidx/arch/core/executor/TaskExecutor;
+HSPLandroidx/arch/core/executor/TaskExecutor;->()V
+Landroidx/arch/core/internal/FastSafeIterableMap;
+HSPLandroidx/arch/core/internal/FastSafeIterableMap;->()V
+HSPLandroidx/arch/core/internal/FastSafeIterableMap;->ceil(Ljava/lang/Object;)Ljava/util/Map$Entry;
+HSPLandroidx/arch/core/internal/FastSafeIterableMap;->contains(Ljava/lang/Object;)Z
+HSPLandroidx/arch/core/internal/FastSafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
+HSPLandroidx/arch/core/internal/FastSafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/arch/core/internal/FastSafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/arch/core/internal/SafeIterableMap;
+HSPLandroidx/arch/core/internal/SafeIterableMap;->()V
+HPLandroidx/arch/core/internal/SafeIterableMap;->descendingIterator()Ljava/util/Iterator;
+HSPLandroidx/arch/core/internal/SafeIterableMap;->eldest()Ljava/util/Map$Entry;
+PLandroidx/arch/core/internal/SafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
+PLandroidx/arch/core/internal/SafeIterableMap;->iterator()Ljava/util/Iterator;
+HPLandroidx/arch/core/internal/SafeIterableMap;->iteratorWithAdditions()Landroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;
+HSPLandroidx/arch/core/internal/SafeIterableMap;->newest()Ljava/util/Map$Entry;
+HSPLandroidx/arch/core/internal/SafeIterableMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
+PLandroidx/arch/core/internal/SafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/arch/core/internal/SafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroidx/arch/core/internal/SafeIterableMap;->size()I
+PLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
+PLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
+PLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->backward(Landroidx/arch/core/internal/SafeIterableMap$Entry;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
+PLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->forward(Landroidx/arch/core/internal/SafeIterableMap$Entry;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
+Landroidx/arch/core/internal/SafeIterableMap$Entry;
+HSPLandroidx/arch/core/internal/SafeIterableMap$Entry;->(Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroidx/arch/core/internal/SafeIterableMap$Entry;->getKey()Ljava/lang/Object;
+HSPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getValue()Ljava/lang/Object;
+PLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->(Landroidx/arch/core/internal/SafeIterableMap;)V
+HPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->hasNext()Z
+PLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/lang/Object;
+HPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/util/Map$Entry;
+PLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
+PLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
+PLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->hasNext()Z
+PLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/lang/Object;
+PLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/util/Map$Entry;
+PLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->nextNode()Landroidx/arch/core/internal/SafeIterableMap$Entry;
+PLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
+PLandroidx/arch/core/internal/SafeIterableMap$SupportRemove;->()V
+PLandroidx/collection/ArrayMap;->()V
+Landroidx/collection/ArraySet;
+HSPLandroidx/collection/ArraySet;->()V
+HSPLandroidx/collection/ArraySet;->()V
+HSPLandroidx/collection/ArraySet;->(I)V
+PLandroidx/collection/ArraySet;->add(Ljava/lang/Object;)Z
+PLandroidx/collection/ArraySet;->allocArrays(I)V
+PLandroidx/collection/ArraySet;->clear()V
+PLandroidx/collection/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V
+PLandroidx/collection/ArraySet;->indexOf(Ljava/lang/Object;I)I
+PLandroidx/collection/ArraySet;->toArray()[Ljava/lang/Object;
+Landroidx/collection/ContainerHelpers;
+HSPLandroidx/collection/ContainerHelpers;->()V
+HPLandroidx/collection/ContainerHelpers;->binarySearch([III)I
+PLandroidx/collection/ContainerHelpers;->idealByteArraySize(I)I
+PLandroidx/collection/ContainerHelpers;->idealIntArraySize(I)I
+PLandroidx/collection/LruCache;->(I)V
+PLandroidx/collection/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/collection/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/collection/LruCache;->maxSize()I
+PLandroidx/collection/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/collection/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
+PLandroidx/collection/LruCache;->trimToSize(I)V
+PLandroidx/collection/SimpleArrayMap;->()V
+PLandroidx/collection/SparseArrayCompat;->()V
+PLandroidx/collection/SparseArrayCompat;->()V
+PLandroidx/collection/SparseArrayCompat;->(I)V
+PLandroidx/collection/SparseArrayCompat;->get(I)Ljava/lang/Object;
+HPLandroidx/collection/SparseArrayCompat;->get(ILjava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/collection/SparseArrayCompat;->indexOfKey(I)I
+HPLandroidx/collection/SparseArrayCompat;->keyAt(I)I
+PLandroidx/collection/SparseArrayCompat;->put(ILjava/lang/Object;)V
+HPLandroidx/collection/SparseArrayCompat;->replace(ILjava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/collection/SparseArrayCompat;->size()I
+HPLandroidx/collection/SparseArrayCompat;->valueAt(I)Ljava/lang/Object;
+HPLandroidx/collection/SparseArrayKt;->valueIterator(Landroidx/collection/SparseArrayCompat;)Ljava/util/Iterator;
+HPLandroidx/collection/SparseArrayKt$valueIterator$1;->(Landroidx/collection/SparseArrayCompat;)V
+PLandroidx/compose/animation/AndroidFlingSpline;->()V
+PLandroidx/compose/animation/AndroidFlingSpline;->()V
+PLandroidx/compose/animation/AndroidFlingSpline;->deceleration(FF)D
+PLandroidx/compose/animation/AndroidFlingSpline;->flingPosition(F)Landroidx/compose/animation/AndroidFlingSpline$FlingResult;
+PLandroidx/compose/animation/AndroidFlingSpline$FlingResult;->()V
+PLandroidx/compose/animation/AndroidFlingSpline$FlingResult;->(FF)V
+PLandroidx/compose/animation/AndroidFlingSpline$FlingResult;->getDistanceCoefficient()F
+PLandroidx/compose/animation/AndroidFlingSpline$FlingResult;->getVelocityCoefficient()F
+HPLandroidx/compose/animation/AnimatedContentKt;->AnimatedContent(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/compose/animation/AnimatedContentKt;->AnimatedContent(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/compose/animation/AnimatedContentKt;->SizeTransform$default(ZLkotlin/jvm/functions/Function2;ILjava/lang/Object;)Landroidx/compose/animation/SizeTransform;
+HPLandroidx/compose/animation/AnimatedContentKt;->SizeTransform(ZLkotlin/jvm/functions/Function2;)Landroidx/compose/animation/SizeTransform;
+PLandroidx/compose/animation/AnimatedContentKt;->togetherWith(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)Landroidx/compose/animation/ContentTransform;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;->()V
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;->()V
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$3;->(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;II)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;->(Landroidx/compose/animation/core/Transition;Ljava/lang/Object;ILkotlin/jvm/functions/Function1;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/runtime/snapshots/SnapshotStateList;Lkotlin/jvm/functions/Function4;)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;->invoke(Landroidx/compose/runtime/Composer;I)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1;->(Landroidx/compose/animation/ContentTransform;)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1;->invoke-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;->(Landroidx/compose/ui/layout/Placeable;Landroidx/compose/animation/ContentTransform;)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$3;->(Ljava/lang/Object;)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$3;->invoke(Ljava/lang/Object;)Ljava/lang/Boolean;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Ljava/lang/Object;Landroidx/compose/runtime/snapshots/SnapshotStateList;Lkotlin/jvm/functions/Function4;I)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4;->invoke(Landroidx/compose/animation/AnimatedVisibilityScope;Landroidx/compose/runtime/Composer;I)V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;->(Landroidx/compose/runtime/snapshots/SnapshotStateList;Ljava/lang/Object;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1$invoke$$inlined$onDispose$1;->(Landroidx/compose/runtime/snapshots/SnapshotStateList;Ljava/lang/Object;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
+PLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$6$1$4$1$invoke$$inlined$onDispose$1;->dispose()V
+HPLandroidx/compose/animation/AnimatedContentKt$AnimatedContent$9;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function4;II)V
+PLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->()V
+PLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->()V
+HPLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentKt$SizeTransform$1;->invoke-TemP2vQ(JJ)Landroidx/compose/animation/core/SpringSpec;
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy;->getRootScope()Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy;->maxIntrinsicHeight(Landroidx/compose/ui/layout/IntrinsicMeasureScope;Ljava/util/List;I)I
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy;->maxIntrinsicWidth(Landroidx/compose/ui/layout/IntrinsicMeasureScope;Ljava/util/List;I)I
+HPLandroidx/compose/animation/AnimatedContentMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy$maxIntrinsicHeight$1;->(I)V
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy$maxIntrinsicHeight$1;->invoke(Landroidx/compose/ui/layout/IntrinsicMeasurable;)Ljava/lang/Integer;
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy$maxIntrinsicHeight$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy$maxIntrinsicWidth$1;->(I)V
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy$maxIntrinsicWidth$1;->invoke(Landroidx/compose/ui/layout/IntrinsicMeasurable;)Ljava/lang/Integer;
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy$maxIntrinsicWidth$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;->([Landroidx/compose/ui/layout/Placeable;Landroidx/compose/animation/AnimatedContentMeasurePolicy;II)V
+HPLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V
+PLandroidx/compose/animation/AnimatedContentMeasurePolicy$measure$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentScopeImpl;->(Landroidx/compose/animation/AnimatedVisibilityScope;)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Alignment;Landroidx/compose/ui/unit/LayoutDirection;)V
+HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->createSizeAnimationModifier$animation_release(Landroidx/compose/animation/ContentTransform;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/Modifier;
+HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->createSizeAnimationModifier$lambda$2(Landroidx/compose/runtime/MutableState;)Z
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->createSizeAnimationModifier$lambda$3(Landroidx/compose/runtime/MutableState;Z)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getContentAlignment$animation_release()Landroidx/compose/ui/Alignment;
+HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getInitialState()Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getTargetSizeMap$animation_release()Ljava/util/Map;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->getTargetState()Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setAnimatedSize$animation_release(Landroidx/compose/runtime/State;)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setContentAlignment$animation_release(Landroidx/compose/ui/Alignment;)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setLayoutDirection$animation_release(Landroidx/compose/ui/unit/LayoutDirection;)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->setMeasuredSize-ozmzZPI$animation_release(J)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl;->using(Landroidx/compose/animation/ContentTransform;Landroidx/compose/animation/SizeTransform;)Landroidx/compose/animation/ContentTransform;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->(Z)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->all(Lkotlin/jvm/functions/Function1;)Z
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->equals(Ljava/lang/Object;)Z
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->foldIn(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->isTarget()Z
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->modifyParentData(Landroidx/compose/ui/unit/Density;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$ChildData;->setTarget(Z)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/runtime/State;)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->getSizeTransform()Landroidx/compose/runtime/State;
+HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->(Landroidx/compose/ui/layout/Placeable;J)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;Landroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier;)V
+HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->invoke(Landroidx/compose/animation/core/Transition$Segment;)Landroidx/compose/animation/core/FiniteAnimationSpec;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->(Landroidx/compose/animation/AnimatedContentTransitionScopeImpl;)V
+PLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/AnimatedContentTransitionScopeImpl$SizeModifier$measure$size$2;->invoke-YEO4UFw(Ljava/lang/Object;)J
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->(Landroidx/compose/animation/AnimatedVisibilityScopeImpl;)V
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->maxIntrinsicHeight(Landroidx/compose/ui/layout/IntrinsicMeasureScope;Ljava/util/List;I)I
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->maxIntrinsicWidth(Landroidx/compose/ui/layout/IntrinsicMeasureScope;Ljava/util/List;I)I
+HPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Ljava/util/List;J)Landroidx/compose/ui/layout/MeasureResult;
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$maxIntrinsicHeight$1;->(I)V
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$maxIntrinsicHeight$1;->invoke(Landroidx/compose/ui/layout/IntrinsicMeasurable;)Ljava/lang/Integer;
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$maxIntrinsicHeight$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$maxIntrinsicWidth$1;->(I)V
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$maxIntrinsicWidth$1;->invoke(Landroidx/compose/ui/layout/IntrinsicMeasurable;)Ljava/lang/Integer;
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$maxIntrinsicWidth$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$measure$1;->(Ljava/util/List;)V
+HPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V
+HPLandroidx/compose/animation/AnimatedEnterExitMeasurePolicy$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/AnimatedVisibilityKt;->AnimatedEnterExitImpl(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V
+HPLandroidx/compose/animation/AnimatedVisibilityKt;->AnimatedVisibility(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/compose/animation/AnimatedVisibilityKt;->AnimatedVisibility(Landroidx/compose/foundation/layout/ColumnScope;ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/compose/animation/AnimatedVisibilityKt;->AnimatedVisibility(ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/compose/animation/AnimatedVisibilityKt;->access$AnimatedEnterExitImpl(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V
+HPLandroidx/compose/animation/AnimatedVisibilityKt;->targetEnterExit(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/EnterExitState;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/MutableState;Lkotlin/coroutines/Continuation;)V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
+HPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$1;->(Landroidx/compose/animation/core/Transition;)V
+HPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$1;->invoke()Ljava/lang/Boolean;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$1;->invoke()Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$2;->(Landroidx/compose/runtime/MutableState;)V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$1$1$2;->emit(ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
+HPLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->(Landroidx/compose/animation/core/Transition;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Lkotlin/jvm/functions/Function3;I)V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->invoke(Landroidx/compose/runtime/Composer;I)V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedEnterExitImpl$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$1;->()V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$1;->()V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$1;->invoke(Z)Ljava/lang/Boolean;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$2;->(ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;II)V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$5;->()V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$5;->()V
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$5;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$5;->invoke(Z)Ljava/lang/Boolean;
+PLandroidx/compose/animation/AnimatedVisibilityKt$AnimatedVisibility$6;->(Landroidx/compose/foundation/layout/ColumnScope;ZLandroidx/compose/ui/Modifier;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Lkotlin/jvm/functions/Function3;II)V
+HPLandroidx/compose/animation/AnimatedVisibilityScopeImpl;->(Landroidx/compose/animation/core/Transition;)V
+PLandroidx/compose/animation/AnimatedVisibilityScopeImpl;->getTargetSize$animation_release()Landroidx/compose/runtime/MutableState;
+PLandroidx/compose/animation/ChangeSize;->(Landroidx/compose/ui/Alignment;Lkotlin/jvm/functions/Function1;Landroidx/compose/animation/core/FiniteAnimationSpec;Z)V
+PLandroidx/compose/animation/ChangeSize;->equals(Ljava/lang/Object;)Z
+PLandroidx/compose/animation/ColorVectorConverterKt;->()V
+PLandroidx/compose/animation/ColorVectorConverterKt;->getVectorConverter(Landroidx/compose/ui/graphics/Color$Companion;)Lkotlin/jvm/functions/Function1;
+PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->()V
+PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->()V
+HPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->invoke(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)Landroidx/compose/animation/core/TwoWayConverter;
+PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->()V
+PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->()V
+PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$1;->invoke-8_81llA(J)Landroidx/compose/animation/core/AnimationVector4D;
+PLandroidx/compose/animation/ColorVectorConverterKt$ColorToVector$1$2;->(Landroidx/compose/ui/graphics/colorspace/ColorSpace;)V
+PLandroidx/compose/animation/ContentTransform;->()V
+HPLandroidx/compose/animation/ContentTransform;->(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;FLandroidx/compose/animation/SizeTransform;)V
+PLandroidx/compose/animation/ContentTransform;->(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;FLandroidx/compose/animation/SizeTransform;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/compose/animation/ContentTransform;->getInitialContentExit()Landroidx/compose/animation/ExitTransition;
+PLandroidx/compose/animation/ContentTransform;->getSizeTransform()Landroidx/compose/animation/SizeTransform;
+PLandroidx/compose/animation/ContentTransform;->getTargetContentEnter()Landroidx/compose/animation/EnterTransition;
+HPLandroidx/compose/animation/ContentTransform;->getTargetContentZIndex()F
+PLandroidx/compose/animation/ContentTransform;->setSizeTransform$animation_release(Landroidx/compose/animation/SizeTransform;)V
+PLandroidx/compose/animation/CrossfadeKt;->Crossfade(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/compose/animation/CrossfadeKt;->Crossfade(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/core/FiniteAnimationSpec;Ljava/lang/String;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$1;->(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/core/FiniteAnimationSpec;Ljava/lang/String;Lkotlin/jvm/functions/Function3;II)V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$3;->()V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$3;->()V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$3;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1;->(Landroidx/compose/animation/core/Transition;ILandroidx/compose/animation/core/FiniteAnimationSpec;Ljava/lang/Object;Lkotlin/jvm/functions/Function3;)V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1;->access$invoke$lambda$1(Landroidx/compose/runtime/State;)F
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1;->invoke$lambda$1(Landroidx/compose/runtime/State;)F
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1;->invoke(Landroidx/compose/runtime/Composer;I)V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;->(Landroidx/compose/runtime/State;)V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;->(Landroidx/compose/animation/core/FiniteAnimationSpec;)V
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;->invoke(Landroidx/compose/animation/core/Transition$Segment;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/FiniteAnimationSpec;
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$5$1$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/CrossfadeKt$Crossfade$7;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/ui/Modifier;Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;II)V
+PLandroidx/compose/animation/EnterExitState;->$values()[Landroidx/compose/animation/EnterExitState;
+PLandroidx/compose/animation/EnterExitState;->()V
+PLandroidx/compose/animation/EnterExitState;->(Ljava/lang/String;I)V
+PLandroidx/compose/animation/EnterExitState;->values()[Landroidx/compose/animation/EnterExitState;
+PLandroidx/compose/animation/EnterExitTransitionKt;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt;->access$createModifier$lambda$8(Landroidx/compose/runtime/State;)F
+HPLandroidx/compose/animation/EnterExitTransitionKt;->createModifier$lambda$1(Landroidx/compose/runtime/MutableState;)Z
+PLandroidx/compose/animation/EnterExitTransitionKt;->createModifier$lambda$2(Landroidx/compose/runtime/MutableState;Z)V
+HPLandroidx/compose/animation/EnterExitTransitionKt;->createModifier$lambda$4(Landroidx/compose/runtime/MutableState;)Z
+PLandroidx/compose/animation/EnterExitTransitionKt;->createModifier$lambda$5(Landroidx/compose/runtime/MutableState;Z)V
+PLandroidx/compose/animation/EnterExitTransitionKt;->createModifier$lambda$8(Landroidx/compose/runtime/State;)F
+HPLandroidx/compose/animation/EnterExitTransitionKt;->createModifier(Landroidx/compose/animation/core/Transition;Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/Modifier;
+PLandroidx/compose/animation/EnterExitTransitionKt;->expandIn(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;ZLkotlin/jvm/functions/Function1;)Landroidx/compose/animation/EnterTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->expandVertically$default(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment$Vertical;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Landroidx/compose/animation/EnterTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->expandVertically(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment$Vertical;ZLkotlin/jvm/functions/Function1;)Landroidx/compose/animation/EnterTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->fadeIn$default(Landroidx/compose/animation/core/FiniteAnimationSpec;FILjava/lang/Object;)Landroidx/compose/animation/EnterTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->fadeIn(Landroidx/compose/animation/core/FiniteAnimationSpec;F)Landroidx/compose/animation/EnterTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->fadeOut$default(Landroidx/compose/animation/core/FiniteAnimationSpec;FILjava/lang/Object;)Landroidx/compose/animation/ExitTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->fadeOut(Landroidx/compose/animation/core/FiniteAnimationSpec;F)Landroidx/compose/animation/ExitTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->shrinkExpand(Landroidx/compose/ui/Modifier;Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Ljava/lang/String;)Landroidx/compose/ui/Modifier;
+PLandroidx/compose/animation/EnterExitTransitionKt;->shrinkOut(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment;ZLkotlin/jvm/functions/Function1;)Landroidx/compose/animation/ExitTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->shrinkVertically$default(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment$Vertical;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Landroidx/compose/animation/ExitTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->shrinkVertically(Landroidx/compose/animation/core/FiniteAnimationSpec;Landroidx/compose/ui/Alignment$Vertical;ZLkotlin/jvm/functions/Function1;)Landroidx/compose/animation/ExitTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->slideIn(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/EnterTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->slideInHorizontally(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/EnterTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->slideInOut(Landroidx/compose/ui/Modifier;Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Ljava/lang/String;)Landroidx/compose/ui/Modifier;
+PLandroidx/compose/animation/EnterExitTransitionKt;->slideInVertically$default(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Landroidx/compose/animation/EnterTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->slideInVertically(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/EnterTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->slideOut(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/ExitTransition;
+HPLandroidx/compose/animation/EnterExitTransitionKt;->slideOutHorizontally(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/ExitTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->slideOutVertically$default(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Landroidx/compose/animation/ExitTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->slideOutVertically(Landroidx/compose/animation/core/FiniteAnimationSpec;Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/ExitTransition;
+PLandroidx/compose/animation/EnterExitTransitionKt;->toAlignment(Landroidx/compose/ui/Alignment$Vertical;)Landroidx/compose/ui/Alignment;
+PLandroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConverter$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConverter$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConverter$2;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$TransformOriginVectorConverter$2;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$WhenMappings;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;->(Landroidx/compose/runtime/State;)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)V
+PLandroidx/compose/animation/EnterExitTransitionKt$createModifier$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->(Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->invoke(Landroidx/compose/animation/core/Transition$Segment;Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/FiniteAnimationSpec;
+PLandroidx/compose/animation/EnterExitTransitionKt$createModifier$alpha$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$expandVertically$2;->(Lkotlin/jvm/functions/Function1;)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Ljava/lang/String;)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;->invoke$lambda$1(Landroidx/compose/runtime/MutableState;)Z
+PLandroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;->invoke$lambda$2(Landroidx/compose/runtime/MutableState;Z)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;->invoke(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/Modifier;
+HPLandroidx/compose/animation/EnterExitTransitionKt$shrinkExpand$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$shrinkVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$shrinkVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$shrinkVertically$2;->(Lkotlin/jvm/functions/Function1;)V
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInHorizontally$2;->(Lkotlin/jvm/functions/Function1;)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideInHorizontally$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideInHorizontally$2;->invoke-mHKZG7I(J)J
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideInOut$1;->(Landroidx/compose/animation/core/Transition;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Ljava/lang/String;)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideInOut$1;->invoke$lambda$1(Landroidx/compose/runtime/MutableState;)Z
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInOut$1;->invoke$lambda$2(Landroidx/compose/runtime/MutableState;Z)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideInOut$1;->invoke(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)Landroidx/compose/ui/Modifier;
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideInOut$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInVertically$1;->invoke(I)Ljava/lang/Integer;
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInVertically$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInVertically$2;->(Lkotlin/jvm/functions/Function1;)V
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInVertically$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$slideInVertically$2;->invoke-mHKZG7I(J)J
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutHorizontally$2;->(Lkotlin/jvm/functions/Function1;)V
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideOutHorizontally$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/EnterExitTransitionKt$slideOutHorizontally$2;->invoke-mHKZG7I(J)J
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutVertically$1;->()V
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutVertically$1;->invoke(I)Ljava/lang/Integer;
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutVertically$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutVertically$2;->(Lkotlin/jvm/functions/Function1;)V
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutVertically$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/EnterExitTransitionKt$slideOutVertically$2;->invoke-mHKZG7I(J)J
+PLandroidx/compose/animation/EnterTransition;->()V
+PLandroidx/compose/animation/EnterTransition;->()V
+PLandroidx/compose/animation/EnterTransition;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+HPLandroidx/compose/animation/EnterTransition;->equals(Ljava/lang/Object;)Z
+HPLandroidx/compose/animation/EnterTransition;->plus(Landroidx/compose/animation/EnterTransition;)Landroidx/compose/animation/EnterTransition;
+PLandroidx/compose/animation/EnterTransition$Companion;->()V
+PLandroidx/compose/animation/EnterTransition$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+HPLandroidx/compose/animation/EnterTransitionImpl;->(Landroidx/compose/animation/TransitionData;)V
+PLandroidx/compose/animation/EnterTransitionImpl;->getData$animation_release()Landroidx/compose/animation/TransitionData;
+PLandroidx/compose/animation/ExitTransition;->()V
+PLandroidx/compose/animation/ExitTransition;->()V
+PLandroidx/compose/animation/ExitTransition;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/compose/animation/ExitTransition;->access$getNone$cp()Landroidx/compose/animation/ExitTransition;
+HPLandroidx/compose/animation/ExitTransition;->equals(Ljava/lang/Object;)Z
+HPLandroidx/compose/animation/ExitTransition;->plus(Landroidx/compose/animation/ExitTransition;)Landroidx/compose/animation/ExitTransition;
+PLandroidx/compose/animation/ExitTransition$Companion;->()V
+PLandroidx/compose/animation/ExitTransition$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/compose/animation/ExitTransition$Companion;->getNone()Landroidx/compose/animation/ExitTransition;
+HPLandroidx/compose/animation/ExitTransitionImpl;->(Landroidx/compose/animation/TransitionData;)V
+PLandroidx/compose/animation/ExitTransitionImpl;->getData$animation_release()Landroidx/compose/animation/TransitionData;
+HPLandroidx/compose/animation/Fade;->(FLandroidx/compose/animation/core/FiniteAnimationSpec;)V
+PLandroidx/compose/animation/Fade;->equals(Ljava/lang/Object;)Z
+PLandroidx/compose/animation/Fade;->getAlpha()F
+PLandroidx/compose/animation/Fade;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;
+PLandroidx/compose/animation/FlingCalculator;->(FLandroidx/compose/ui/unit/Density;)V
+PLandroidx/compose/animation/FlingCalculator;->computeDeceleration(Landroidx/compose/ui/unit/Density;)F
+PLandroidx/compose/animation/FlingCalculator;->flingDistance(F)F
+PLandroidx/compose/animation/FlingCalculator;->flingDuration(F)J
+PLandroidx/compose/animation/FlingCalculator;->flingInfo(F)Landroidx/compose/animation/FlingCalculator$FlingInfo;
+PLandroidx/compose/animation/FlingCalculator;->getSplineDeceleration(F)D
+PLandroidx/compose/animation/FlingCalculator$FlingInfo;->()V
+PLandroidx/compose/animation/FlingCalculator$FlingInfo;->(FFJ)V
+PLandroidx/compose/animation/FlingCalculator$FlingInfo;->position(J)F
+PLandroidx/compose/animation/FlingCalculator$FlingInfo;->velocity(J)F
+PLandroidx/compose/animation/FlingCalculatorKt;->()V
+PLandroidx/compose/animation/FlingCalculatorKt;->access$computeDeceleration(FF)F
+PLandroidx/compose/animation/FlingCalculatorKt;->access$getDecelerationRate$p()F
+PLandroidx/compose/animation/FlingCalculatorKt;->computeDeceleration(FF)F
+PLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;->()V
+PLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;->all(Lkotlin/jvm/functions/Function1;)Z
+PLandroidx/compose/animation/LayoutModifierWithPassThroughIntrinsics;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;
+PLandroidx/compose/animation/SingleValueAnimationKt;->()V
+HPLandroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
+HPLandroidx/compose/animation/SizeTransformImpl;->(ZLkotlin/jvm/functions/Function2;)V
+HPLandroidx/compose/animation/SizeTransformImpl;->createAnimationSpec-TemP2vQ(JJ)Landroidx/compose/animation/core/FiniteAnimationSpec;
+PLandroidx/compose/animation/SizeTransformImpl;->getClip()Z
+HPLandroidx/compose/animation/Slide;->(Lkotlin/jvm/functions/Function1;Landroidx/compose/animation/core/FiniteAnimationSpec;)V
+PLandroidx/compose/animation/Slide;->equals(Ljava/lang/Object;)Z
+PLandroidx/compose/animation/Slide;->getAnimationSpec()Landroidx/compose/animation/core/FiniteAnimationSpec;
+PLandroidx/compose/animation/Slide;->getSlideOffset()Lkotlin/jvm/functions/Function1;
+HPLandroidx/compose/animation/SlideModifier;->(Landroidx/compose/animation/core/Transition$DeferredAnimation;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;)V
+PLandroidx/compose/animation/SlideModifier;->getLazyAnimation()Landroidx/compose/animation/core/Transition$DeferredAnimation;
+PLandroidx/compose/animation/SlideModifier;->getSlideIn()Landroidx/compose/runtime/State;
+PLandroidx/compose/animation/SlideModifier;->getSlideOut()Landroidx/compose/runtime/State;
+PLandroidx/compose/animation/SlideModifier;->getTransitionSpec()Lkotlin/jvm/functions/Function1;
+HPLandroidx/compose/animation/SlideModifier;->measure-3p2s80s(Landroidx/compose/ui/layout/MeasureScope;Landroidx/compose/ui/layout/Measurable;J)Landroidx/compose/ui/layout/MeasureResult;
+HPLandroidx/compose/animation/SlideModifier;->targetValueByState-oFUgxo0(Landroidx/compose/animation/EnterExitState;J)J
+PLandroidx/compose/animation/SlideModifier$WhenMappings;->()V
+PLandroidx/compose/animation/SlideModifier$measure$1;->(Landroidx/compose/animation/SlideModifier;Landroidx/compose/ui/layout/Placeable;J)V
+HPLandroidx/compose/animation/SlideModifier$measure$1;->invoke(Landroidx/compose/ui/layout/Placeable$PlacementScope;)V
+PLandroidx/compose/animation/SlideModifier$measure$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/SlideModifier$measure$1$slideOffset$1;->(Landroidx/compose/animation/SlideModifier;J)V
+PLandroidx/compose/animation/SlideModifier$measure$1$slideOffset$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/SlideModifier$measure$1$slideOffset$1;->invoke-Bjo55l4(Landroidx/compose/animation/EnterExitState;)J
+PLandroidx/compose/animation/SlideModifier$transitionSpec$1;->(Landroidx/compose/animation/SlideModifier;)V
+HPLandroidx/compose/animation/SlideModifier$transitionSpec$1;->invoke(Landroidx/compose/animation/core/Transition$Segment;)Landroidx/compose/animation/core/FiniteAnimationSpec;
+PLandroidx/compose/animation/SlideModifier$transitionSpec$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/SplineBasedDecayKt;->access$computeSplineInfo([F[FI)V
+PLandroidx/compose/animation/SplineBasedDecayKt;->computeSplineInfo([F[FI)V
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->()V
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->(Landroidx/compose/ui/unit/Density;)V
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->flingDistance(F)F
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->getAbsVelocityThreshold()F
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->getDurationNanos(FF)J
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->getTargetValue(FF)F
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->getValueFromNanos(JFF)F
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec;->getVelocityFromNanos(JFF)F
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->()V
+PLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->getPlatformFlingScrollFriction()F
+HPLandroidx/compose/animation/SplineBasedFloatDecayAnimationSpec_androidKt;->rememberSplineBasedDecay(Landroidx/compose/runtime/Composer;I)Landroidx/compose/animation/core/DecayAnimationSpec;
+HPLandroidx/compose/animation/TransitionData;->(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;)V
+PLandroidx/compose/animation/TransitionData;->(Landroidx/compose/animation/Fade;Landroidx/compose/animation/Slide;Landroidx/compose/animation/ChangeSize;Landroidx/compose/animation/Scale;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/compose/animation/TransitionData;->equals(Ljava/lang/Object;)Z
+PLandroidx/compose/animation/TransitionData;->getChangeSize()Landroidx/compose/animation/ChangeSize;
+PLandroidx/compose/animation/TransitionData;->getFade()Landroidx/compose/animation/Fade;
+PLandroidx/compose/animation/TransitionData;->getScale()Landroidx/compose/animation/Scale;
+PLandroidx/compose/animation/TransitionData;->getSlide()Landroidx/compose/animation/Slide;
+PLandroidx/compose/animation/core/Animatable;->()V
+HPLandroidx/compose/animation/core/Animatable;->(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/String;)V
+HPLandroidx/compose/animation/core/Animatable;->(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/compose/animation/core/Animatable;->access$clampToBounds(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable;->access$endAnimation(Landroidx/compose/animation/core/Animatable;)V
+PLandroidx/compose/animation/core/Animatable;->access$setRunning(Landroidx/compose/animation/core/Animatable;Z)V
+PLandroidx/compose/animation/core/Animatable;->access$setTargetValue(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;)V
+PLandroidx/compose/animation/core/Animatable;->animateTo$default(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable;->animateTo(Ljava/lang/Object;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable;->asState()Landroidx/compose/runtime/State;
+PLandroidx/compose/animation/core/Animatable;->clampToBounds(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/core/Animatable;->createVector(Ljava/lang/Object;F)Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/Animatable;->endAnimation()V
+PLandroidx/compose/animation/core/Animatable;->getInternalState$animation_core_release()Landroidx/compose/animation/core/AnimationState;
+PLandroidx/compose/animation/core/Animatable;->getTargetValue()Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;
+HPLandroidx/compose/animation/core/Animatable;->getValue()Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable;->getVelocity()Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/Animatable;->runAnimation(Landroidx/compose/animation/core/Animation;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable;->setRunning(Z)V
+PLandroidx/compose/animation/core/Animatable;->setTargetValue(Ljava/lang/Object;)V
+PLandroidx/compose/animation/core/Animatable$runAnimation$2;->(Landroidx/compose/animation/core/Animatable;Ljava/lang/Object;Landroidx/compose/animation/core/Animation;JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)V
+PLandroidx/compose/animation/core/Animatable$runAnimation$2;->create(Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
+PLandroidx/compose/animation/core/Animatable$runAnimation$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable$runAnimation$2;->invoke(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable$runAnimation$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->(Landroidx/compose/animation/core/Animatable;Landroidx/compose/animation/core/AnimationState;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/internal/Ref$BooleanRef;)V
+PLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->invoke(Landroidx/compose/animation/core/AnimationScope;)V
+PLandroidx/compose/animation/core/Animatable$runAnimation$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroidx/compose/animation/core/AnimatableKt;->Animatable$default(FFILjava/lang/Object;)Landroidx/compose/animation/core/Animatable;
+HPLandroidx/compose/animation/core/AnimatableKt;->Animatable(FF)Landroidx/compose/animation/core/Animatable;
+PLandroidx/compose/animation/core/AnimateAsStateKt;->()V
+PLandroidx/compose/animation/core/AnimateAsStateKt;->access$animateValueAsState$lambda$4(Landroidx/compose/runtime/State;)Lkotlin/jvm/functions/Function1;
+PLandroidx/compose/animation/core/AnimateAsStateKt;->access$animateValueAsState$lambda$6(Landroidx/compose/runtime/State;)Landroidx/compose/animation/core/AnimationSpec;
+PLandroidx/compose/animation/core/AnimateAsStateKt;->animateDpAsState-AjpBEmI(FLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
+PLandroidx/compose/animation/core/AnimateAsStateKt;->animateFloatAsState(FLandroidx/compose/animation/core/AnimationSpec;FLjava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
+PLandroidx/compose/animation/core/AnimateAsStateKt;->animateValueAsState$lambda$4(Landroidx/compose/runtime/State;)Lkotlin/jvm/functions/Function1;
+PLandroidx/compose/animation/core/AnimateAsStateKt;->animateValueAsState$lambda$6(Landroidx/compose/runtime/State;)Landroidx/compose/animation/core/AnimationSpec;
+HPLandroidx/compose/animation/core/AnimateAsStateKt;->animateValueAsState(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationSpec;Ljava/lang/Object;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State;
+PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->(Lkotlinx/coroutines/channels/Channel;Ljava/lang/Object;)V
+PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()Ljava/lang/Object;
+PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$2;->invoke()V
+HPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->(Lkotlinx/coroutines/channels/Channel;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V
+PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
+HPLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->(Ljava/lang/Object;Landroidx/compose/animation/core/Animatable;Landroidx/compose/runtime/State;Landroidx/compose/runtime/State;Lkotlin/coroutines/Continuation;)V
+PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
+PLandroidx/compose/animation/core/AnimateAsStateKt$animateValueAsState$3$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/compose/animation/core/Animation$-CC;->$default$isFinishedFromNanos(Landroidx/compose/animation/core/Animation;J)Z
+PLandroidx/compose/animation/core/AnimationEndReason;->$values()[Landroidx/compose/animation/core/AnimationEndReason;
+PLandroidx/compose/animation/core/AnimationEndReason;->()V
+PLandroidx/compose/animation/core/AnimationEndReason;->(Ljava/lang/String;I)V
+PLandroidx/compose/animation/core/AnimationKt;->TargetBasedAnimation(Landroidx/compose/animation/core/AnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroidx/compose/animation/core/TargetBasedAnimation;
+PLandroidx/compose/animation/core/AnimationResult;->()V
+PLandroidx/compose/animation/core/AnimationResult;->(Landroidx/compose/animation/core/AnimationState;Landroidx/compose/animation/core/AnimationEndReason;)V
+PLandroidx/compose/animation/core/AnimationScope;->()V
+PLandroidx/compose/animation/core/AnimationScope;->(Ljava/lang/Object;Landroidx/compose/animation/core/TwoWayConverter;Landroidx/compose/animation/core/AnimationVector;JLjava/lang/Object;JZLkotlin/jvm/functions/Function0;)V
+PLandroidx/compose/animation/core/AnimationScope;->cancelAnimation()V
+PLandroidx/compose/animation/core/AnimationScope;->getFinishedTimeNanos()J
+PLandroidx/compose/animation/core/AnimationScope;->getLastFrameTimeNanos()J
+PLandroidx/compose/animation/core/AnimationScope;->getStartTimeNanos()J
+PLandroidx/compose/animation/core/AnimationScope;->getValue()Ljava/lang/Object;
+PLandroidx/compose/animation/core/AnimationScope;->getVelocity()Ljava/lang/Object;
+PLandroidx/compose/animation/core/AnimationScope;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/AnimationScope;->isRunning()Z
+PLandroidx/compose/animation/core/AnimationScope;->setFinishedTimeNanos$animation_core_release(J)V
+PLandroidx/compose/animation/core/AnimationScope;->setLastFrameTimeNanos$animation_core_release(J)V
+PLandroidx/compose/animation/core/AnimationScope;->setRunning$animation_core_release(Z)V
+PLandroidx/compose/animation/core/AnimationScope;->setValue$animation_core_release(Ljava/lang/Object;)V
+PLandroidx/compose/animation/core/AnimationScope;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V
+PLandroidx/compose/animation/core/AnimationSpecKt;->access$convert(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/AnimationSpecKt;->convert(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/AnimationSpecKt;->infiniteRepeatable-9IiC70o$default(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;JILjava/lang/Object;)Landroidx/compose/animation/core/InfiniteRepeatableSpec;
+PLandroidx/compose/animation/core/AnimationSpecKt;->infiniteRepeatable-9IiC70o(Landroidx/compose/animation/core/DurationBasedAnimationSpec;Landroidx/compose/animation/core/RepeatMode;J)Landroidx/compose/animation/core/InfiniteRepeatableSpec;
+PLandroidx/compose/animation/core/AnimationSpecKt;->keyframes(Lkotlin/jvm/functions/Function1;)Landroidx/compose/animation/core/KeyframesSpec;
+PLandroidx/compose/animation/core/AnimationSpecKt;->snap$default(IILjava/lang/Object;)Landroidx/compose/animation/core/SnapSpec;
+PLandroidx/compose/animation/core/AnimationSpecKt;->snap(I)Landroidx/compose/animation/core/SnapSpec;
+PLandroidx/compose/animation/core/AnimationSpecKt;->spring$default(FFLjava/lang/Object;ILjava/lang/Object;)Landroidx/compose/animation/core/SpringSpec;
+HPLandroidx/compose/animation/core/AnimationSpecKt;->spring(FFLjava/lang/Object;)Landroidx/compose/animation/core/SpringSpec;
+HPLandroidx/compose/animation/core/AnimationSpecKt;->tween$default(IILandroidx/compose/animation/core/Easing;ILjava/lang/Object;)Landroidx/compose/animation/core/TweenSpec;
+HPLandroidx/compose/animation/core/AnimationSpecKt;->tween(IILandroidx/compose/animation/core/Easing;)Landroidx/compose/animation/core/TweenSpec;
+PLandroidx/compose/animation/core/AnimationState;->()V
+HPLandroidx/compose/animation/core/AnimationState;->(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZ)V
+HPLandroidx/compose/animation/core/AnimationState;->(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/compose/animation/core/AnimationState;->getLastFrameTimeNanos()J
+PLandroidx/compose/animation/core/AnimationState;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;
+HPLandroidx/compose/animation/core/AnimationState;->getValue()Ljava/lang/Object;
+PLandroidx/compose/animation/core/AnimationState;->getVelocityVector()Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/AnimationState;->isRunning()Z
+PLandroidx/compose/animation/core/AnimationState;->setFinishedTimeNanos$animation_core_release(J)V
+PLandroidx/compose/animation/core/AnimationState;->setLastFrameTimeNanos$animation_core_release(J)V
+PLandroidx/compose/animation/core/AnimationState;->setRunning$animation_core_release(Z)V
+PLandroidx/compose/animation/core/AnimationState;->setValue$animation_core_release(Ljava/lang/Object;)V
+PLandroidx/compose/animation/core/AnimationState;->setVelocityVector$animation_core_release(Landroidx/compose/animation/core/AnimationVector;)V
+PLandroidx/compose/animation/core/AnimationStateKt;->AnimationState$default(FFJJZILjava/lang/Object;)Landroidx/compose/animation/core/AnimationState;
+PLandroidx/compose/animation/core/AnimationStateKt;->AnimationState(FFJJZ)Landroidx/compose/animation/core/AnimationState;
+PLandroidx/compose/animation/core/AnimationStateKt;->copy$default(Landroidx/compose/animation/core/AnimationState;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZILjava/lang/Object;)Landroidx/compose/animation/core/AnimationState;
+PLandroidx/compose/animation/core/AnimationStateKt;->copy(Landroidx/compose/animation/core/AnimationState;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;JJZ)Landroidx/compose/animation/core/AnimationState;
+HPLandroidx/compose/animation/core/AnimationStateKt;->createZeroVectorFrom(Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;)Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/AnimationVector;->()V
+HPLandroidx/compose/animation/core/AnimationVector;->()V
+HPLandroidx/compose/animation/core/AnimationVector;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/compose/animation/core/AnimationVector1D;->()V
+HPLandroidx/compose/animation/core/AnimationVector1D;->(F)V
+PLandroidx/compose/animation/core/AnimationVector1D;->equals(Ljava/lang/Object;)Z
+PLandroidx/compose/animation/core/AnimationVector1D;->get$animation_core_release(I)F
+HPLandroidx/compose/animation/core/AnimationVector1D;->getSize$animation_core_release()I
+PLandroidx/compose/animation/core/AnimationVector1D;->getValue()F
+HPLandroidx/compose/animation/core/AnimationVector1D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector1D;
+HPLandroidx/compose/animation/core/AnimationVector1D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/AnimationVector1D;->reset$animation_core_release()V
+HPLandroidx/compose/animation/core/AnimationVector1D;->set$animation_core_release(IF)V
+PLandroidx/compose/animation/core/AnimationVector2D;->()V
+HPLandroidx/compose/animation/core/AnimationVector2D;->(FF)V
+PLandroidx/compose/animation/core/AnimationVector2D;->get$animation_core_release(I)F
+PLandroidx/compose/animation/core/AnimationVector2D;->getSize$animation_core_release()I
+PLandroidx/compose/animation/core/AnimationVector2D;->getV1()F
+PLandroidx/compose/animation/core/AnimationVector2D;->getV2()F
+PLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector2D;
+PLandroidx/compose/animation/core/AnimationVector2D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
+HPLandroidx/compose/animation/core/AnimationVector2D;->set$animation_core_release(IF)V
+PLandroidx/compose/animation/core/AnimationVector4D;->()V
+HPLandroidx/compose/animation/core/AnimationVector4D;->(FFFF)V
+PLandroidx/compose/animation/core/AnimationVector4D;->get$animation_core_release(I)F
+PLandroidx/compose/animation/core/AnimationVector4D;->getSize$animation_core_release()I
+PLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector4D;
+PLandroidx/compose/animation/core/AnimationVector4D;->newVector$animation_core_release()Landroidx/compose/animation/core/AnimationVector;
+HPLandroidx/compose/animation/core/AnimationVector4D;->set$animation_core_release(IF)V
+PLandroidx/compose/animation/core/AnimationVectorsKt;->AnimationVector(F)Landroidx/compose/animation/core/AnimationVector1D;
+HPLandroidx/compose/animation/core/AnimationVectorsKt;->copy(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/AnimationVectorsKt;->copyFrom(Landroidx/compose/animation/core/AnimationVector;Landroidx/compose/animation/core/AnimationVector;)V
+HPLandroidx/compose/animation/core/AnimationVectorsKt;->newInstance(Landroidx/compose/animation/core/AnimationVector;)Landroidx/compose/animation/core/AnimationVector;
+HPLandroidx/compose/animation/core/ComplexDouble;->(DD)V
+PLandroidx/compose/animation/core/ComplexDouble;->access$get_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;)D
+PLandroidx/compose/animation/core/ComplexDouble;->access$get_real$p(Landroidx/compose/animation/core/ComplexDouble;)D
+PLandroidx/compose/animation/core/ComplexDouble;->access$set_imaginary$p(Landroidx/compose/animation/core/ComplexDouble;D)V
+PLandroidx/compose/animation/core/ComplexDouble;->access$set_real$p(Landroidx/compose/animation/core/ComplexDouble;D)V
+PLandroidx/compose/animation/core/ComplexDouble;->getReal()D
+HPLandroidx/compose/animation/core/ComplexDouble$$ExternalSyntheticBackport0;->m(Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Object;Ljava/lang/Object;)Z
+HPLandroidx/compose/animation/core/ComplexDoubleKt;->complexSqrt(D)Landroidx/compose/animation/core/ComplexDouble;
+PLandroidx/compose/animation/core/CubicBezierEasing;->()V
+PLandroidx/compose/animation/core/CubicBezierEasing;->(FFFF)V
+HPLandroidx/compose/animation/core/CubicBezierEasing;->equals(Ljava/lang/Object;)Z
+PLandroidx/compose/animation/core/CubicBezierEasing;->evaluateCubic(FFF)F
+HPLandroidx/compose/animation/core/CubicBezierEasing;->transform(F)F
+PLandroidx/compose/animation/core/DecayAnimation;->()V
+PLandroidx/compose/animation/core/DecayAnimation;->(Landroidx/compose/animation/core/DecayAnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;)V
+PLandroidx/compose/animation/core/DecayAnimation;->(Landroidx/compose/animation/core/VectorizedDecayAnimationSpec;Landroidx/compose/animation/core/TwoWayConverter;Ljava/lang/Object;Landroidx/compose/animation/core/AnimationVector;)V
+PLandroidx/compose/animation/core/DecayAnimation;->getDurationNanos()J
+PLandroidx/compose/animation/core/DecayAnimation;->getTargetValue()Ljava/lang/Object;
+PLandroidx/compose/animation/core/DecayAnimation;->getTypeConverter()Landroidx/compose/animation/core/TwoWayConverter;
+PLandroidx/compose/animation/core/DecayAnimation;->getValueFromNanos(J)Ljava/lang/Object;
+PLandroidx/compose/animation/core/DecayAnimation;->getVelocityVectorFromNanos(J)Landroidx/compose/animation/core/AnimationVector;
+PLandroidx/compose/animation/core/DecayAnimation;->isFinishedFromNanos(J)Z
+PLandroidx/compose/animation/core/DecayAnimation;->isInfinite()Z
+PLandroidx/compose/animation/core/DecayAnimationSpecImpl;->(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)V
+PLandroidx/compose/animation/core/DecayAnimationSpecImpl;->vectorize(Landroidx/compose/animation/core/TwoWayConverter;)Landroidx/compose/animation/core/VectorizedDecayAnimationSpec;
+PLandroidx/compose/animation/core/DecayAnimationSpecKt;->exponentialDecay$default(FFILjava/lang/Object;)Landroidx/compose/animation/core/DecayAnimationSpec;
+PLandroidx/compose/animation/core/DecayAnimationSpecKt;->exponentialDecay(FF)Landroidx/compose/animation/core/DecayAnimationSpec;
+PLandroidx/compose/animation/core/DecayAnimationSpecKt;->generateDecayAnimationSpec(Landroidx/compose/animation/core/FloatDecayAnimationSpec;)Landroidx/compose/animation/core/DecayAnimationSpec;
+PLandroidx/compose/animation/core/EasingFunctionsKt;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt;->getEaseInBack()Landroidx/compose/animation/core/Easing;
+PLandroidx/compose/animation/core/EasingFunctionsKt;->getEaseInOut()Landroidx/compose/animation/core/Easing;
+PLandroidx/compose/animation/core/EasingFunctionsKt;->getEaseInOutCubic()Landroidx/compose/animation/core/Easing;
+PLandroidx/compose/animation/core/EasingFunctionsKt;->getEaseOutBack()Landroidx/compose/animation/core/Easing;
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInBounce$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInBounce$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInElastic$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInElastic$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInOutBounce$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInOutBounce$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInOutElastic$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseInOutElastic$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseOutBounce$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseOutBounce$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseOutElastic$1;->()V
+PLandroidx/compose/animation/core/EasingFunctionsKt$EaseOutElastic$1;->