From 08558737144498a30fe7ebaa719a1347d9c83071 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 8 Dec 2025 11:45:36 +0000 Subject: [PATCH 1/4] Remove screenshot testing plugin until it works with newer versions of Gradle plugin. Update Compose + other dependencies to 1.10 etc --- .../android/developers/androidify/theme/Motion.kt | 9 ++------- .../androidify/theme/SharedElementsConfig.kt | 9 +-------- feature/camera/build.gradle.kts | 6 ++---- feature/creation/build.gradle.kts | 3 --- feature/home/build.gradle.kts | 3 --- feature/results/build.gradle.kts | 3 --- gradle.properties | 2 +- gradle/libs.versions.toml | 15 +++++++-------- 8 files changed, 13 insertions(+), 37 deletions(-) diff --git a/core/theme/src/main/java/com/android/developers/androidify/theme/Motion.kt b/core/theme/src/main/java/com/android/developers/androidify/theme/Motion.kt index fca653ce..c26ef858 100644 --- a/core/theme/src/main/java/com/android/developers/androidify/theme/Motion.kt +++ b/core/theme/src/main/java/com/android/developers/androidify/theme/Motion.kt @@ -29,11 +29,6 @@ import androidx.compose.ui.geometry.Rect ) val MotionScheme.sharedElementTransitionSpec: BoundsTransform @Composable - get() = object : BoundsTransform { - override fun transform( - initialBounds: Rect, - targetBounds: Rect, - ): FiniteAnimationSpec { - return this@sharedElementTransitionSpec.slowSpatialSpec() - } + get() = BoundsTransform { _, _ -> + this@sharedElementTransitionSpec.slowSpatialSpec() } diff --git a/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt b/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt index 8ec3b7a9..a3eddb7b 100644 --- a/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt +++ b/core/theme/src/main/java/com/android/developers/androidify/theme/SharedElementsConfig.kt @@ -87,14 +87,7 @@ val LocalAnimateBoundsScope = compositionLocalOf { ) val MotionScheme.sharedElementTransitionBounds: BoundsTransform @Composable - get() = object : BoundsTransform { - override fun transform( - initialBounds: Rect, - targetBounds: Rect, - ): FiniteAnimationSpec { - return sharedElementTransitionSpec() - } - } + get() = BoundsTransform { _, _ -> sharedElementTransitionSpec() } fun MotionScheme.sharedElementTransitionSpec(): FiniteAnimationSpec { return tween(600) diff --git a/feature/camera/build.gradle.kts b/feature/camera/build.gradle.kts index c953bdd6..ea91ed5c 100644 --- a/feature/camera/build.gradle.kts +++ b/feature/camera/build.gradle.kts @@ -19,7 +19,6 @@ plugins { alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.ksp) alias(libs.plugins.hilt) - alias(libs.plugins.composeScreenshot) } android { @@ -42,8 +41,6 @@ android { compose = true } - experimentalProperties["android.experimental.enableScreenshotTest"] = true - testOptions { targetSdk = 36 } @@ -95,5 +92,6 @@ dependencies { kspAndroidTest(libs.hilt.compiler) debugImplementation(libs.androidx.ui.test.manifest) - screenshotTestImplementation(libs.androidx.ui.tooling) + // Disable until it works with newer Gradle versions + // screenshotTestImplementation(libs.androidx.ui.tooling) } diff --git a/feature/creation/build.gradle.kts b/feature/creation/build.gradle.kts index cf3a47b6..9aaa34f1 100644 --- a/feature/creation/build.gradle.kts +++ b/feature/creation/build.gradle.kts @@ -19,7 +19,6 @@ plugins { alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.ksp) alias(libs.plugins.hilt) - alias(libs.plugins.composeScreenshot) } android { @@ -44,8 +43,6 @@ android { compose = true } - experimentalProperties["android.experimental.enableScreenshotTest"] = true - testOptions { unitTests { isIncludeAndroidResources = true diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts index bdfaa1fe..d08294b0 100644 --- a/feature/home/build.gradle.kts +++ b/feature/home/build.gradle.kts @@ -19,7 +19,6 @@ plugins { alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.ksp) alias(libs.plugins.hilt) - alias(libs.plugins.composeScreenshot) } android { @@ -42,8 +41,6 @@ android { compose = true } - experimentalProperties["android.experimental.enableScreenshotTest"] = true - testOptions { targetSdk = 36 } diff --git a/feature/results/build.gradle.kts b/feature/results/build.gradle.kts index 9d24bba0..a2eb8538 100644 --- a/feature/results/build.gradle.kts +++ b/feature/results/build.gradle.kts @@ -19,7 +19,6 @@ plugins { alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.ksp) alias(libs.plugins.hilt) - alias(libs.plugins.composeScreenshot) } android { @@ -43,8 +42,6 @@ android { compose = true } - experimentalProperties["android.experimental.enableScreenshotTest"] = true - testOptions { targetSdk = 36 } diff --git a/gradle.properties b/gradle.properties index 4bbac8d1..97854f25 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ kotlin.code.style=official android.nonTransitiveRClass=true android.disableMinifyLocalDependenciesForLibraries=true org.gradle.configuration-cache=true -android.experimental.enableScreenshotTest=true \ No newline at end of file +android.experimental.enableScreenshotTest=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d917c88d..01cca766 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,8 +3,8 @@ appVersionCode = "10" appVersionName = "1.3.0" appVersionWearOffset = "60000000" -agp = "8.12.0" -bcpkixJdk18on = "1.82" +agp = "8.13.1" +bcpkixJdk18on = "1.83" compileSdk = "36" core = "1.7.0" extensionsXr = "1.1.0" @@ -16,14 +16,14 @@ wearMinSdk = "36" #dependencies accompanist = "0.37.3" -activityCompose = "1.11.0" -adaptive = "1.1.0" -animationAndroid = "1.9.3" +activityCompose = "1.12.1" +adaptive = "1.2.0" +animationAndroid = "1.10.0" apksig = "9.0.0-alpha06" appcompat = "1.7.1" baselineprofile = "1.4.1" benchmarkMacroJunit4 = "1.4.1" -camerax = "1.5.1" +camerax = "1.5.2" coilCompose = "3.3.0" coilGif = "3.3.0" composeBom = "2025.10.00" @@ -47,7 +47,7 @@ horologist = "0.7.15" junit = "4.13.2" junitVersion = "1.3.0" kotlin = "2.2.0" -ksp = "2.2.0-2.0.2" +ksp = "2.2.20-2.0.3" kotlinxCoroutines = "1.10.2" kotlinxSerialization = "2.2.20" kotlinxSerializationJson = "1.9.0" @@ -198,5 +198,4 @@ kotlin-ksp = { id ="com.google.devtools.ksp", version.ref = "ksp" } serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinxSerialization" } android-test = { id = "com.android.test", version.ref = "agp" } baselineprofile = { id = "androidx.baselineprofile", version.ref = "baselineprofile" } -composeScreenshot = { id = "com.android.compose.screenshot", version = "0.0.1-alpha10" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } From e2e5699b7578b36c8afeda24e5171c9d5f18ea18 Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 8 Dec 2025 12:52:55 +0000 Subject: [PATCH 2/4] Remove from yml and update BOM, back down from alpha --- .github/workflows/build_and_test.yml | 3 --- gradle/libs.versions.toml | 7 +++---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 402624ea..8ffca8ad 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -60,9 +60,6 @@ jobs: - name: Build debug APK run: ./gradlew assembleDebug --no-configuration-cache - - name: Verify Screenshot Tests (AndroidX) - run: ./gradlew validateDebugScreenshotTest - - name: Run local unit tests run: ./gradlew testDebugUnitTest diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 01cca766..ad70af42 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,6 @@ wearMinSdk = "36" accompanist = "0.37.3" activityCompose = "1.12.1" adaptive = "1.2.0" -animationAndroid = "1.10.0" apksig = "9.0.0-alpha06" appcompat = "1.7.1" baselineprofile = "1.4.1" @@ -26,7 +25,7 @@ benchmarkMacroJunit4 = "1.4.1" camerax = "1.5.2" coilCompose = "3.3.0" coilGif = "3.3.0" -composeBom = "2025.10.00" +composeBom = "2025.12.00" concurrent = "1.3.0" converterGson = "2.11.0" coreKtx = "1.17.0" @@ -93,14 +92,14 @@ androidx-activity-compose = { group = "androidx.activity", name = "activity-comp androidx-adaptive = { module = "androidx.compose.material3.adaptive:adaptive", version.ref = "adaptive" } androidx-adaptive-layout = { module = "androidx.compose.material3.adaptive:adaptive-layout", version.ref = "adaptive" } androidx-adaptive-navigation = { module = "androidx.compose.material3.adaptive:adaptive-navigation", version.ref = "adaptive" } -androidx-animation-android = { group = "androidx.compose.animation", name = "animation-android", version.ref = "animationAndroid" } +androidx-animation-android = { group = "androidx.compose.animation", name = "animation-android" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } androidx-app-startup = { group = "androidx.startup", name = "startup-runtime", version.ref = "startup" } androidx-camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "camerax" } androidx-camera-compose = { module = "androidx.camera:camera-compose", version.ref = "camerax" } androidx-camera-core = { module = "androidx.camera:camera-core", version.ref = "camerax" } androidx-camera-lifecycle = { group = "androidx.camera", name = "camera-lifecycle", version.ref = "camerax" } -androidx-compose-bom = { group = "androidx.compose", name = "compose-bom-alpha", version.ref = "composeBom" } +androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } androidx-concurrent-futures-ktx = { module = "androidx.concurrent:concurrent-futures-ktx", version.ref = "concurrent" } androidx-core = { module = "androidx.test:core", version.ref = "core" } androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } From b25ab2228ffcd41f17b1e9935e8aa5e215587c4b Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 8 Dec 2025 13:23:17 +0000 Subject: [PATCH 3/4] Change to material alpha --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ad70af42..a495b77b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -55,7 +55,7 @@ ktlint = "1.5.0" lifecycleRuntimeKtx = "2.9.4" lifecycleViewmodelNavigation3 = "1.0.0-alpha04" loggingInterceptor = "5.2.1" -material = "1.12.0" +material3 = "1.5.0-alpha10" media3 = "1.8.0" navigation3 = "1.0.0-alpha11" okhttp = "4.12.0" @@ -112,7 +112,7 @@ androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "j androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleRuntimeKtx" } androidx-lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "lifecycleViewmodelNavigation3" } -androidx-material3 = { group = "androidx.compose.material3", name = "material3" } +androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" } androidx-media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" } androidx-media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "media3" } androidx-media3-ui-compose = { group = "androidx.media3", name = "media3-ui-compose", version.ref = "media3" } From fc68df6ff111f9ccc897efc9d5d0eb2ae7236c0e Mon Sep 17 00:00:00 2001 From: Rebecca Franks Date: Mon, 8 Dec 2025 13:52:50 +0000 Subject: [PATCH 4/4] Update more deps --- gradle/libs.versions.toml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a495b77b..b8392e4b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -45,19 +45,19 @@ hiltNavigationCompose = "1.3.0" horologist = "0.7.15" junit = "4.13.2" junitVersion = "1.3.0" -kotlin = "2.2.0" +kotlin = "2.2.21" ksp = "2.2.20-2.0.3" kotlinxCoroutines = "1.10.2" -kotlinxSerialization = "2.2.20" +kotlinxSerialization = "2.2.21" kotlinxSerializationJson = "1.9.0" kotlinxSerializationProtobuf = "1.9.0" ktlint = "1.5.0" -lifecycleRuntimeKtx = "2.9.4" +lifecycleRuntimeKtx = "2.10.0" lifecycleViewmodelNavigation3 = "1.0.0-alpha04" -loggingInterceptor = "5.2.1" +loggingInterceptor = "5.3.2" material3 = "1.5.0-alpha10" media3 = "1.8.0" -navigation3 = "1.0.0-alpha11" +navigation3 = "1.0.0" okhttp = "4.12.0" playServicesWearable = "19.0.0" playServicesBaseTesting = "16.2.0" @@ -69,8 +69,8 @@ spotless = "8.0.0" startup = "1.2.0" runner = "1.7.0" uiTextGoogleFonts = "1.9.3" -uiautomator = "2.4.0-alpha06" -uiTooling = "1.9.3" +uiautomator = "2.4.0-alpha07" +uiTooling = "1.10.0" validatorPush = "1.0.0-alpha08" watchFacePush = "1.0.0-alpha01" wear = "1.3.0"