From 455957b98d2f09abda6eefabc0d02bd4750d395e Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Fri, 4 Sep 2026 12:38:23 -0400 Subject: [PATCH 1/2] chore(deps): drop the unused Navigation 2 dependencies The app navigates with Navigation 3 behind `CodeNavigator`, but the build still declared Navigation 2: `navigation-fragment-ktx` in `:ui:theme`, `navigation-ui-ktx` in the app module, and the `safeargs` plugin in both the root and app scripts. Nothing consumed any of it. There are no `androidx.navigation` imports in Kotlin sources, no navigation graph XML, no `NavHostFragment`, and no generated `Directions` or `Args` classes. `:ui:theme` uses `FragmentActivity` in `View.kt`, which arrived transitively through `navigation-fragment-ktx`. It still resolves without it, because `androidx-appcompat` is already declared there and depends on `androidx.fragment` as an `api` dependency. `:ui:theme:compileDebugKotlin` and `:apps:flipcash:app:compileDebugKotlin` both pass. This closes #1411, which bumped these artifacts to 2.10.0. --- apps/flipcash/app/build.gradle.kts | 2 -- build.gradle.kts | 1 - gradle/libs.versions.toml | 4 ---- ui/theme/build.gradle.kts | 1 - 4 files changed, 8 deletions(-) diff --git a/apps/flipcash/app/build.gradle.kts b/apps/flipcash/app/build.gradle.kts index 3bea397032..f540cbbae8 100644 --- a/apps/flipcash/app/build.gradle.kts +++ b/apps/flipcash/app/build.gradle.kts @@ -9,7 +9,6 @@ plugins { id("org.jetbrains.kotlin.plugin.parcelize") id("com.google.devtools.ksp") id("org.jetbrains.kotlin.plugin.serialization") - alias(libs.plugins.navigation.safeargs) id("dagger.hilt.android.plugin") alias(libs.plugins.google.services) alias(libs.plugins.firebase.perf) @@ -294,7 +293,6 @@ dependencies { implementation(libs.androidx.core) implementation(libs.androidx.lifecycle.runtime) implementation(libs.androidx.lifecycle.viewmodel) - implementation(libs.androidx.navigation.ui) implementation(libs.androidx.work) implementation(libs.androidx.webkit) diff --git a/build.gradle.kts b/build.gradle.kts index 01bd0c7506..625977ef95 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,7 +37,6 @@ plugins { alias(libs.plugins.firebase.perf) apply false alias(libs.plugins.bugsnag.gradle) apply false alias(libs.plugins.secrets) apply false - alias(libs.plugins.navigation.safeargs) apply false alias(libs.plugins.androidx.room) apply false alias(libs.plugins.screenshot) apply false alias(libs.plugins.kover) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8fbfc48612..9ec86e0f45 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,6 @@ androidx-core = "1.19.0" androidx-datastore = "1.2.1" androidx-exif = "1.4.2" androidx-lifecycle = "2.11.0" -androidx-navigation = "2.9.8" navigation3 = "1.1.4" navigation3-lifecycle = "2.11.0" androidx-browser = "1.10.0" @@ -142,8 +141,6 @@ androidx-exifinterface = { module = "androidx.exifinterface:exifinterface", vers androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidx-lifecycle" } androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" } androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" } -androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "androidx-navigation" } -androidx-navigation-ui = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "androidx-navigation" } navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "navigation3" } navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "navigation3" } lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "navigation3-lifecycle" } @@ -357,7 +354,6 @@ google-services = { id = "com.google.gms.google-services", version.ref = "google firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebase-perf-plugin" } bugsnag-gradle = { id = "com.bugsnag.gradle", version.ref = "bugsnag-gradle-plugin" } secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets-gradle-plugin" } -navigation-safeargs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "androidx-navigation" } androidx-room = { id = "androidx.room", version.ref = "androidx-room" } androidx-baselineprofile = { id = "androidx.baselineprofile", version.ref = "androidx-benchmark-macro" } screenshot = { id = "com.android.compose.screenshot", version.ref = "screenshot" } diff --git a/ui/theme/build.gradle.kts b/ui/theme/build.gradle.kts index 9407d9c15e..408c538682 100644 --- a/ui/theme/build.gradle.kts +++ b/ui/theme/build.gradle.kts @@ -19,5 +19,4 @@ dependencies { debugImplementation(libs.compose.ui.tools) implementation(libs.androidx.appcompat) implementation(libs.androidx.core) implementation(libs.androidx.activity) - implementation(libs.androidx.navigation.fragment) } From b8cc5d48a321e75fb33cb191aeda50ce63ef050f Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Fri, 4 Sep 2026 13:06:10 -0400 Subject: [PATCH 2/2] fix(deps): declare Material Components, lost with the Navigation 2 removal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Theme.Code extends Theme.MaterialComponents.DayNight.NoActionBar, but com.google.android.material:material was never declared in the build — it resolved transitively through navigation-ui, whose POM pins it at 1.4.0. Dropping navigation-ui took it off the resource path and broke processDebugResources on the theme parent and its colorPrimaryVariant, colorOnPrimary, colorSecondary, colorSecondaryVariant and colorOnSecondary attributes. Declare it at 1.4.0, the version already resolving, so this stays a build-graph change rather than a theming one. Material 1.5 reworked the color attributes, so a bump is worth doing on its own. --- apps/flipcash/app/build.gradle.kts | 2 ++ gradle/libs.versions.toml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/apps/flipcash/app/build.gradle.kts b/apps/flipcash/app/build.gradle.kts index f540cbbae8..03be09caac 100644 --- a/apps/flipcash/app/build.gradle.kts +++ b/apps/flipcash/app/build.gradle.kts @@ -295,6 +295,8 @@ dependencies { implementation(libs.androidx.lifecycle.viewmodel) implementation(libs.androidx.work) implementation(libs.androidx.webkit) + // Resources only: Theme.Code in res/values/themes.xml extends Theme.MaterialComponents. + implementation(libs.google.material) //hilt dependency injection implementation(libs.hilt.android) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9ec86e0f45..ea0a3b6143 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -55,6 +55,7 @@ play-service-ml-barcode = "18.3.1" play-services-auth-api-phone = "18.3.1" google-play-billing = "9.1.0" google-play-updates = "2.1.0" +google-material = "1.4.0" grpc = "1.83.1" grpc-okhttp = "1.83.1" @@ -245,6 +246,7 @@ google-play-billing-runtime = { module = "com.android.billingclient:billing", ve google-play-billing-ktx = { module = "com.android.billingclient:billing-ktx", version.ref = "google-play-billing" } google-play-app-updates-runtime = { module = "com.google.android.play:app-update", version.ref = "google-play-updates" } google-play-app-updates-ktx = { module = "com.google.android.play:app-update-ktx", version.ref = "google-play-updates" } +google-material = { module = "com.google.android.material:material", version.ref = "google-material" } # Kin kin-sdk = { module = "org.kin.sdk.android:base", version.ref = "kin-sdk" }