From 78a9b94b0c0d2dae7743472d0fc3054ffb58f621 Mon Sep 17 00:00:00 2001 From: Mercury Li Date: Wed, 11 Feb 2026 17:25:00 -0800 Subject: [PATCH] Fix CMP 1.10.0 deprecation warnings: migrate compose.* accessors and Preview imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace deprecated compose.* plugin accessors with explicit Maven coordinates in version catalog - Upgrade Kotlin 2.3.0→2.3.10, KSP 2.3.0→2.3.5 to suppress androidTarget() warnings - Migrate @Preview from deprecated components-uiToolingPreview to ui-tooling-preview artifact - Fix LocalLifecycleOwner import to androidx.lifecycle.compose - Fix webpack DevServer static property deprecation - Update dependency guard baseline --- app-nia-catalog/build.gradle.kts | 18 +++++----- .../dependencies/releaseRuntimeClasspath.txt | 35 ++++++++++--------- app/build.gradle.kts | 22 ++++++------ core/analytics/build.gradle.kts | 2 +- core/designsystem/build.gradle.kts | 26 +++++++------- .../core/designsystem/component/Background.kt | 2 +- .../core/designsystem/component/TopAppBar.kt | 2 +- .../core/designsystem/component/ViewToggle.kt | 2 +- core/ui/build.gradle.kts | 6 ++-- .../nowinandroid/core/ui/DevicePreviews.kt | 2 +- ...FollowableTopicPreviewParameterProvider.kt | 2 +- .../nowinandroid/core/ui/InterestsItem.kt | 2 +- .../apps/nowinandroid/core/ui/NewsFeed.kt | 4 +-- .../nowinandroid/core/ui/NewsResourceCard.kt | 4 +-- ...serNewsResourcePreviewParameterProvider.kt | 2 +- feature/bookmarks/build.gradle.kts | 10 +++--- .../feature/bookmarks/BookmarksScreenTest.kt | 2 +- .../feature/bookmarks/BookmarksScreen.kt | 6 ++-- feature/foryou/build.gradle.kts | 10 +++--- .../feature/foryou/ForYouScreen.kt | 2 +- feature/interests/build.gradle.kts | 10 +++--- .../feature/interests/InterestsScreen.kt | 2 +- feature/search/build.gradle.kts | 10 +++--- .../feature/search/SearchScreen.kt | 4 +-- .../SearchUiStatePreviewParameterProvider.kt | 2 +- feature/settings/build.gradle.kts | 10 +++--- .../feature/settings/SettingsDialog.kt | 2 +- feature/topic/build.gradle.kts | 10 +++--- .../feature/topic/TopicDetailPlaceholder.kt | 2 +- .../nowinandroid/feature/topic/TopicScreen.kt | 4 +-- gradle/libs.versions.toml | 19 ++++++++-- shared/build.gradle.kts | 2 +- 32 files changed, 125 insertions(+), 113 deletions(-) diff --git a/app-nia-catalog/build.gradle.kts b/app-nia-catalog/build.gradle.kts index fc1404d7d..71e9e8f4d 100644 --- a/app-nia-catalog/build.gradle.kts +++ b/app-nia-catalog/build.gradle.kts @@ -37,10 +37,8 @@ kotlin { commonWebpackConfig { outputFileName = "composeApp.js" devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { - static = (static ?: mutableListOf()).apply { - // Serve sources to debug inside browser - add(project.projectDir.path) - } + // Serve sources to debug inside browser + static(project.projectDir.path) } } } @@ -78,12 +76,12 @@ kotlin { implementation(libs.androidx.activity.compose) } commonMain.dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.runtime) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) implementation(projects.core.designsystem) } desktopMain.dependencies { diff --git a/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt b/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt index 8cae66b47..64bae8a63 100644 --- a/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt +++ b/app-nia-catalog/dependencies/releaseRuntimeClasspath.txt @@ -1,7 +1,7 @@ androidx.activity:activity-compose:1.10.0 androidx.activity:activity-ktx:1.10.0 androidx.activity:activity:1.10.0 -androidx.annotation:annotation-experimental:1.4.1 +androidx.annotation:annotation-experimental:1.5.1 androidx.annotation:annotation-jvm:1.9.1 androidx.annotation:annotation:1.9.1 androidx.appcompat:appcompat-resources:1.7.0 @@ -19,14 +19,14 @@ androidx.compose.foundation:foundation-android:1.10.0 androidx.compose.foundation:foundation-layout-android:1.10.0 androidx.compose.foundation:foundation-layout:1.10.0 androidx.compose.foundation:foundation:1.10.0 -androidx.compose.material3.adaptive:adaptive-android:1.1.0 -androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0 -androidx.compose.material3.adaptive:adaptive-layout:1.1.0 -androidx.compose.material3.adaptive:adaptive:1.1.0 -androidx.compose.material3:material3-adaptive-navigation-suite-android:1.4.0 -androidx.compose.material3:material3-adaptive-navigation-suite:1.4.0 -androidx.compose.material3:material3-android:1.4.0 -androidx.compose.material3:material3:1.4.0 +androidx.compose.material3.adaptive:adaptive-android:1.2.0 +androidx.compose.material3.adaptive:adaptive-layout-android:1.2.0 +androidx.compose.material3.adaptive:adaptive-layout:1.2.0 +androidx.compose.material3.adaptive:adaptive:1.2.0 +androidx.compose.material3:material3-adaptive-navigation-suite-android:1.5.0-alpha08 +androidx.compose.material3:material3-adaptive-navigation-suite:1.5.0-alpha08 +androidx.compose.material3:material3-android:1.5.0-alpha08 +androidx.compose.material3:material3:1.5.0-alpha08 androidx.compose.material:material-android:1.10.0 androidx.compose.material:material-icons-core-android:1.7.6 androidx.compose.material:material-icons-core:1.7.6 @@ -67,6 +67,8 @@ androidx.dynamicanimation:dynamicanimation:1.0.0 androidx.emoji2:emoji2:1.4.0 androidx.exifinterface:exifinterface:1.4.1 androidx.graphics:graphics-path:1.0.1 +androidx.graphics:graphics-shapes-android:1.1.0 +androidx.graphics:graphics-shapes:1.1.0 androidx.interpolator:interpolator:1.0.0 androidx.legacy:legacy-support-core-utils:1.0.0 androidx.lifecycle:lifecycle-common-java8:2.9.4 @@ -127,29 +129,28 @@ org.jetbrains.compose.annotation-internal:annotation:1.10.0 org.jetbrains.compose.collection-internal:collection:1.10.0 org.jetbrains.compose.components:components-resources-android:1.10.0 org.jetbrains.compose.components:components-resources:1.10.0 -org.jetbrains.compose.components:components-ui-tooling-preview-android:1.10.0 -org.jetbrains.compose.components:components-ui-tooling-preview:1.10.0 org.jetbrains.compose.foundation:foundation-layout:1.10.0 org.jetbrains.compose.foundation:foundation:1.10.0 org.jetbrains.compose.material3.adaptive:adaptive-layout:1.1.0 -org.jetbrains.compose.material3.adaptive:adaptive:1.1.2 -org.jetbrains.compose.material3:material3-adaptive-navigation-suite:1.9.0 -org.jetbrains.compose.material3:material3:1.9.0 +org.jetbrains.compose.material3.adaptive:adaptive:1.2.0 +org.jetbrains.compose.material3:material3-adaptive-navigation-suite:1.10.0-alpha05 +org.jetbrains.compose.material3:material3:1.10.0-alpha05 org.jetbrains.compose.material:material-icons-core:1.7.3 org.jetbrains.compose.material:material-icons-extended:1.7.3 org.jetbrains.compose.material:material-ripple:1.10.0 org.jetbrains.compose.material:material:1.10.0 org.jetbrains.compose.runtime:runtime-saveable:1.10.0 org.jetbrains.compose.runtime:runtime:1.10.0 -org.jetbrains.compose.ui:ui-backhandler-android:1.9.1 -org.jetbrains.compose.ui:ui-backhandler:1.9.1 +org.jetbrains.compose.ui:ui-backhandler-android:1.9.3 +org.jetbrains.compose.ui:ui-backhandler:1.9.3 org.jetbrains.compose.ui:ui-geometry:1.10.0 org.jetbrains.compose.ui:ui-graphics:1.10.0 org.jetbrains.compose.ui:ui-text:1.10.0 +org.jetbrains.compose.ui:ui-tooling-preview:1.10.0 org.jetbrains.compose.ui:ui-unit:1.10.0 org.jetbrains.compose.ui:ui-util:1.10.0 org.jetbrains.compose.ui:ui:1.10.0 -org.jetbrains.kotlin:kotlin-stdlib:2.3.0 +org.jetbrains.kotlin:kotlin-stdlib:2.3.10 org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 90d6a50f8..d7d8ba965 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -75,14 +75,14 @@ kotlin { sourceSets { commonMain.dependencies { implementation(projects.shared) - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.material3AdaptiveNavigationSuite) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.runtime) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.material) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.material3.adaptiveNavigationSuite) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) implementation(libs.coil.core) implementation(libs.coil.compose) implementation(libs.kotlinx.serialization.json) @@ -90,7 +90,7 @@ kotlin { } androidMain.dependencies { - implementation(compose.preview) + implementation(libs.jetbrains.compose.uiToolingPreview) implementation(project.dependencies.platform(libs.androidx.compose.bom)) implementation(libs.androidx.activity.compose) implementation(libs.androidx.compose.material3.adaptive) @@ -139,13 +139,13 @@ kotlin { } jvmTest.dependencies { - implementation(compose.desktop.uiTestJUnit4) + implementation(libs.jetbrains.compose.ui.test.junit4) } } } dependencies { - debugImplementation(compose.uiTooling) + debugImplementation(libs.jetbrains.compose.uiTooling) androidTestImplementation(libs.androidx.compose.ui.test.android) androidTestImplementation(libs.androidx.compose.ui.testManifest) } diff --git a/core/analytics/build.gradle.kts b/core/analytics/build.gradle.kts index a4c74b2e6..fb68f7d33 100644 --- a/core/analytics/build.gradle.kts +++ b/core/analytics/build.gradle.kts @@ -28,7 +28,7 @@ kotlin { sourceSets { commonMain.dependencies { implementation(libs.logging) - implementation(compose.runtime) + implementation(libs.jetbrains.compose.runtime) } } } diff --git a/core/designsystem/build.gradle.kts b/core/designsystem/build.gradle.kts index 126d26dd1..9b0c0734c 100644 --- a/core/designsystem/build.gradle.kts +++ b/core/designsystem/build.gradle.kts @@ -41,10 +41,8 @@ kotlin { commonWebpackConfig { outputFileName = "composeApp.js" devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { - static = (static ?: mutableListOf()).apply { - // Serve sources to debug inside browser - add(project.projectDir.path) - } + // Serve sources to debug inside browser + static(project.projectDir.path) } } } @@ -68,16 +66,16 @@ kotlin { implementation(projects.core.testing) } commonMain.dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.material3AdaptiveNavigationSuite) - implementation(compose.materialIconsExtended) - implementation(compose.ui) - implementation(compose.uiUtil) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.runtime) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.material) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.material3.adaptiveNavigationSuite) + implementation(libs.jetbrains.compose.material.iconsExtended) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.ui.util) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) implementation(libs.coil.compose) implementation(libs.jetbrains.compose.material3.adaptive) implementation(libs.jetbrains.compose.material3.adaptive.layout) diff --git a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt index e616cef62..e567870e8 100644 --- a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt +++ b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt @@ -30,13 +30,13 @@ import androidx.compose.ui.draw.drawWithCache import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.theme.GradientColors import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalBackgroundTheme import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalGradientColors import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme -import org.jetbrains.compose.ui.tooling.preview.Preview import kotlin.math.PI import kotlin.math.tan diff --git a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt index 90e4a6a8d..fd6684734 100644 --- a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt +++ b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt @@ -30,9 +30,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.testTag +import androidx.compose.ui.tooling.preview.Preview import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme -import org.jetbrains.compose.ui.tooling.preview.Preview @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt index 3f9eb99cf..d368c46d7 100644 --- a/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt +++ b/core/designsystem/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt @@ -29,10 +29,10 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme -import org.jetbrains.compose.ui.tooling.preview.Preview /** * Now in Android view toggle button with included trailing icon as well as compact and expanded diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index 35dbd66f0..04574383f 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -36,9 +36,9 @@ kotlin { api(projects.core.model) implementation(libs.coil) implementation(libs.coil.compose) - implementation(compose.material3) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.components.uiToolingPreview) } androidInstrumentedTest.dependencies { implementation(projects.core.testing) diff --git a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/DevicePreviews.kt b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/DevicePreviews.kt index 057ed4afb..6d9297e65 100644 --- a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/DevicePreviews.kt +++ b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/DevicePreviews.kt @@ -16,7 +16,7 @@ package com.google.samples.apps.nowinandroid.core.ui -import org.jetbrains.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.Preview /** * Multipreview annotation that represents various device sizes. Add this annotation to a composable diff --git a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/FollowableTopicPreviewParameterProvider.kt b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/FollowableTopicPreviewParameterProvider.kt index 2ae812dfd..16ae1eced 100644 --- a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/FollowableTopicPreviewParameterProvider.kt +++ b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/FollowableTopicPreviewParameterProvider.kt @@ -18,9 +18,9 @@ package com.google.samples.apps.nowinandroid.core.ui +import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.model.data.Topic -import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider /** * This [PreviewParameterProvider](https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewParameterProvider) diff --git a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt index 43d82c245..cea96959b 100644 --- a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt +++ b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/InterestsItem.kt @@ -31,6 +31,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.semantics.selected import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import coil3.ImageLoader import coil3.compose.LocalPlatformContext @@ -42,7 +43,6 @@ import nowinandroid.core.ui.generated.resources.Res import nowinandroid.core.ui.generated.resources.core_ui_interests_card_follow_button_content_desc import nowinandroid.core.ui.generated.resources.core_ui_interests_card_unfollow_button_content_desc import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.Preview @Composable fun InterestsItem( diff --git a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt index 5cd8ae1c0..b282332c2 100644 --- a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt +++ b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt @@ -24,12 +24,12 @@ import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells import androidx.compose.foundation.lazy.staggeredgrid.items import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.analytics.LocalAnalyticsHelper import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource -import org.jetbrains.compose.ui.tooling.preview.Preview -import org.jetbrains.compose.ui.tooling.preview.PreviewParameter /** * An extension on [LazyListScope] defining a feed with news resources. diff --git a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt index 9f7fd176e..eee21e636 100644 --- a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt +++ b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt @@ -53,6 +53,8 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.onClick import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import coil3.ImageLoader import coil3.compose.AsyncImagePainter @@ -77,8 +79,6 @@ import nowinandroid.core.ui.generated.resources.core_ui_topic_chip_content_descr import nowinandroid.core.ui.generated.resources.core_ui_unbookmark import nowinandroid.core.ui.generated.resources.core_ui_unread_resource_dot_content_description import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.Preview -import org.jetbrains.compose.ui.tooling.preview.PreviewParameter /** * [NewsResource] card used on the following screens: For You, Saved diff --git a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/UserNewsResourcePreviewParameterProvider.kt b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/UserNewsResourcePreviewParameterProvider.kt index 074f522d5..3189e8403 100644 --- a/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/UserNewsResourcePreviewParameterProvider.kt +++ b/core/ui/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/core/ui/UserNewsResourcePreviewParameterProvider.kt @@ -18,6 +18,7 @@ package com.google.samples.apps.nowinandroid.core.ui +import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig import com.google.samples.apps.nowinandroid.core.model.data.NewsResource import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand @@ -29,7 +30,6 @@ import kotlinx.datetime.Instant import kotlinx.datetime.LocalDateTime import kotlinx.datetime.TimeZone import kotlinx.datetime.toInstant -import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider /** * This [PreviewParameterProvider](https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewParameterProvider) diff --git a/feature/bookmarks/build.gradle.kts b/feature/bookmarks/build.gradle.kts index c0d7d56a4..b562748bc 100644 --- a/feature/bookmarks/build.gradle.kts +++ b/feature/bookmarks/build.gradle.kts @@ -29,11 +29,11 @@ kotlin { sourceSets { commonMain.dependencies { implementation(projects.core.data) - implementation(compose.material3) - implementation(compose.foundation) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) implementation(libs.kotlinx.serialization.core) } diff --git a/feature/bookmarks/src/androidInstrumentedTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt b/feature/bookmarks/src/androidInstrumentedTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt index 54e75d5a0..bba39e5e6 100644 --- a/feature/bookmarks/src/androidInstrumentedTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt +++ b/feature/bookmarks/src/androidInstrumentedTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt @@ -18,7 +18,6 @@ package com.google.samples.apps.nowinandroid.feature.bookmarks import androidx.activity.ComponentActivity import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.test.assertCountEquals import androidx.compose.ui.test.assertHasClickAction import androidx.compose.ui.test.filter @@ -33,6 +32,7 @@ import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollToNode import androidx.lifecycle.Lifecycle +import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.testing.TestLifecycleOwner import com.google.samples.apps.nowinandroid.core.testing.data.userNewsResourcesTestData import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState diff --git a/feature/bookmarks/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt b/feature/bookmarks/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt index cba8e6bac..4563823a5 100644 --- a/feature/bookmarks/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt +++ b/feature/bookmarks/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt @@ -49,13 +49,15 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter -import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.platform.testTag import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver +import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.viewmodel.compose.viewModel import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaLoadingWheel import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.DraggableScrollbar @@ -80,8 +82,6 @@ import nowinandroid.feature.bookmarks.generated.resources.feature_bookmarks_remo import nowinandroid.feature.bookmarks.generated.resources.feature_bookmarks_undo import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.Preview -import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.koin.compose.viewmodel.koinViewModel @Composable diff --git a/feature/foryou/build.gradle.kts b/feature/foryou/build.gradle.kts index dfc80d34f..3e0c0de54 100644 --- a/feature/foryou/build.gradle.kts +++ b/feature/foryou/build.gradle.kts @@ -32,11 +32,11 @@ kotlin { implementation(projects.core.data) implementation(projects.core.domain) implementation(projects.core.notifications) - implementation(compose.material3) - implementation(compose.foundation) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) implementation(libs.coil) implementation(libs.coil.compose) implementation(libs.kotlinx.serialization.core) diff --git a/feature/foryou/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature/foryou/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt index 4225e0d74..784d82dcd 100644 --- a/feature/foryou/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature/foryou/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt @@ -66,6 +66,7 @@ import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.max import androidx.compose.ui.unit.sp @@ -94,7 +95,6 @@ import nowinandroid.feature.foryou.generated.resources.feature_foryou_loading import nowinandroid.feature.foryou.generated.resources.feature_foryou_onboarding_guidance_subtitle import nowinandroid.feature.foryou.generated.resources.feature_foryou_onboarding_guidance_title import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.koin.compose.viewmodel.koinViewModel @Composable diff --git a/feature/interests/build.gradle.kts b/feature/interests/build.gradle.kts index c74167e10..2041ac62f 100644 --- a/feature/interests/build.gradle.kts +++ b/feature/interests/build.gradle.kts @@ -30,11 +30,11 @@ kotlin { implementation(projects.core.data) implementation(projects.core.domain) implementation(projects.core.ui) - implementation(compose.material3) - implementation(compose.foundation) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) implementation(libs.kotlinx.serialization.core) } commonTest.dependencies { diff --git a/feature/interests/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt b/feature/interests/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt index 02a8618d8..27d144e87 100644 --- a/feature/interests/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt +++ b/feature/interests/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt @@ -22,6 +22,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.PreviewParameter import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaBackground import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaLoadingWheel import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme @@ -34,7 +35,6 @@ import nowinandroid.feature.interests.generated.resources.Res import nowinandroid.feature.interests.generated.resources.feature_interests_empty_header import nowinandroid.feature.interests.generated.resources.feature_interests_loading import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.koin.compose.viewmodel.koinViewModel @Composable diff --git a/feature/search/build.gradle.kts b/feature/search/build.gradle.kts index 651e3cbb9..94699386e 100644 --- a/feature/search/build.gradle.kts +++ b/feature/search/build.gradle.kts @@ -31,11 +31,11 @@ kotlin { implementation(projects.core.data) implementation(projects.core.domain) implementation(projects.core.ui) - implementation(compose.material3) - implementation(compose.foundation) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) } commonTest.dependencies { implementation(projects.core.testing) diff --git a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt index 6bff98954..52d891271 100644 --- a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt +++ b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt @@ -74,6 +74,8 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.withLink import androidx.compose.ui.text.withStyle +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.DraggableScrollbar import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.rememberDraggableScroller @@ -101,8 +103,6 @@ import nowinandroid.feature.search.generated.resources.feature_search_topics import nowinandroid.feature.search.generated.resources.feature_search_try_another_search import nowinandroid.feature.search.generated.resources.feature_search_updates import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.Preview -import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.koin.compose.viewmodel.koinViewModel import nowinandroid.core.ui.generated.resources.Res as uiR import nowinandroid.feature.search.generated.resources.Res as searchR diff --git a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchUiStatePreviewParameterProvider.kt b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchUiStatePreviewParameterProvider.kt index 76b9460f5..257d8b68e 100644 --- a/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchUiStatePreviewParameterProvider.kt +++ b/feature/search/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchUiStatePreviewParameterProvider.kt @@ -18,10 +18,10 @@ package com.google.samples.apps.nowinandroid.feature.search +import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.ui.PreviewParameterData.newsResources import com.google.samples.apps.nowinandroid.core.ui.PreviewParameterData.topics -import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider /** * This [PreviewParameterProvider](https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewParameterProvider) diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts index 92e2380da..4d5e5799e 100644 --- a/feature/settings/build.gradle.kts +++ b/feature/settings/build.gradle.kts @@ -28,11 +28,11 @@ kotlin { commonMain.dependencies { implementation(projects.core.data) implementation(projects.core.ui) - implementation(compose.material3) - implementation(compose.foundation) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) } commonTest.dependencies { implementation(projects.core.testing) diff --git a/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt index 10e922041..e176936c0 100644 --- a/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt +++ b/feature/settings/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt @@ -45,6 +45,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.LocalViewConfiguration import androidx.compose.ui.semantics.Role +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaTextButton @@ -80,7 +81,6 @@ import nowinandroid.feature.settings.generated.resources.feature_settings_privac import nowinandroid.feature.settings.generated.resources.feature_settings_theme import nowinandroid.feature.settings.generated.resources.feature_settings_title import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.Preview import org.koin.compose.viewmodel.koinViewModel @Composable diff --git a/feature/topic/build.gradle.kts b/feature/topic/build.gradle.kts index 127049a63..0b215c584 100644 --- a/feature/topic/build.gradle.kts +++ b/feature/topic/build.gradle.kts @@ -32,11 +32,11 @@ kotlin { implementation(libs.coil) implementation(libs.coil.compose) implementation(libs.kotlinx.serialization.core) - implementation(compose.material3) - implementation(compose.foundation) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) + implementation(libs.jetbrains.compose.material3) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.components.resources) + implementation(libs.jetbrains.compose.uiToolingPreview) } commonTest.dependencies { implementation(projects.core.testing) diff --git a/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt b/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt index f5e6f68df..779225be7 100644 --- a/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt +++ b/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt @@ -28,6 +28,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import nowinandroid.feature.topic.generated.resources.Res @@ -35,7 +36,6 @@ import nowinandroid.feature.topic.generated.resources.feature_topic_ic_topic_pla import nowinandroid.feature.topic.generated.resources.feature_topic_select_an_interest import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.Preview @Composable fun TopicDetailPlaceholder(modifier: Modifier = Modifier) { diff --git a/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt b/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt index 8a3ca8454..e8be714f1 100644 --- a/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt +++ b/feature/topic/src/commonMain/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt @@ -46,6 +46,8 @@ import androidx.compose.runtime.getValue 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.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import coil3.ImageLoader import coil3.compose.LocalPlatformContext @@ -69,8 +71,6 @@ import nowinandroid.core.ui.generated.resources.core_ui_back import nowinandroid.feature.topic.generated.resources.Res import nowinandroid.feature.topic.generated.resources.feature_topic_loading import org.jetbrains.compose.resources.stringResource -import org.jetbrains.compose.ui.tooling.preview.Preview -import org.jetbrains.compose.ui.tooling.preview.PreviewParameter import org.koin.compose.viewmodel.koinViewModel @Composable diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b98394d70..0ec96a700 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,11 +29,11 @@ androidxWork = "2.10.0" coil = "3.2.0" dependencyGuard = "0.5.0" jacoco = "0.8.12" -kotlin = "2.3.0" +kotlin = "2.3.10" kotlinxCoroutines = "1.10.2" kotlinxDatetime = "0.6.1" kotlinxSerializationJson = "1.8.0" -ksp = "2.3.0" +ksp = "2.3.5" logback = "1.5.15" material3adaptive = "1.1.0" moduleGraph = "2.7.1" @@ -50,6 +50,8 @@ androidx-material = "1.12.0" androidx-test-junit = "1.2.1" compose-ui-tooling = "1.8.1" compose-plugin = "1.10.0" +compose-jb = "1.10.0" +compose-jb-material3 = "1.10.0-alpha05" sqldelight = "2.0.2" kotlinInject = "0.8.0" multiplatform-settings = "1.3.0" @@ -180,6 +182,19 @@ jetbrains-compose-navigation = { group = "org.jetbrains.androidx.navigation", na jetbrains-compose-material3-adaptive = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive", version.ref = "material3adaptive" } jetbrains-compose-material3-adaptive-layout = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-layout", version.ref = "material3adaptive" } jetbrains-compose-material3-adaptive-navigation = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-navigation", version.ref = "material3adaptive" } +jetbrains-compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-jb" } +jetbrains-compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose-jb" } +jetbrains-compose-material = { module = "org.jetbrains.compose.material:material", version.ref = "compose-jb" } +jetbrains-compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "compose-jb-material3" } +jetbrains-compose-material3-adaptiveNavigationSuite = { module = "org.jetbrains.compose.material3:material3-adaptive-navigation-suite", version.ref = "compose-jb-material3" } +jetbrains-compose-material-iconsExtended = { module = "org.jetbrains.compose.material:material-icons-extended", version = "1.7.3" } +jetbrains-compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "compose-jb" } +jetbrains-compose-ui-util = { module = "org.jetbrains.compose.ui:ui-util", version.ref = "compose-jb" } +jetbrains-compose-uiTooling = { module = "org.jetbrains.compose.ui:ui-tooling", version.ref = "compose-jb" } +jetbrains-compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "compose-jb" } +jetbrains-compose-ui-test-junit4 = { module = "org.jetbrains.compose.ui:ui-test-junit4", version.ref = "compose-jb" } +jetbrains-compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "compose-jb" } +jetbrains-compose-components-uiToolingPreview = { module = "org.jetbrains.compose.components:components-ui-tooling-preview", version.ref = "compose-jb" } # Dependencies of the included build-logic android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index df17bffeb..4b1f1c267 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -40,7 +40,7 @@ kotlin { api(projects.core.analytics) api(projects.core.notifications) api(projects.sync.work) - api(compose.components.resources) + api(libs.jetbrains.compose.components.resources) } commonTest.dependencies { implementation(projects.core.testing)