From 36f1aabcb54bb168074f97e53f8363b0b2241161 Mon Sep 17 00:00:00 2001 From: Phil Oliver <3497406+poliver@users.noreply.github.com> Date: Tue, 7 Oct 2025 23:04:20 -0400 Subject: [PATCH] Remove remaining unused dependencies across the project (#3390) --- app/build.gradle.kts | 3 --- .../mesh/buildlogic/AndroidCompose.kt | 2 +- build.gradle.kts | 4 +++- core/data/build.gradle.kts | 1 - core/prefs/build.gradle.kts | 5 +---- core/service/build.gradle.kts | 2 +- core/ui/build.gradle.kts | 1 - feature/intro/build.gradle.kts | 4 ---- feature/map/build.gradle.kts | 12 ++-------- feature/node/build.gradle.kts | 5 ----- feature/settings/build.gradle.kts | 4 +--- gradle/libs.versions.toml | 22 ++----------------- mesh_service_example/build.gradle.kts | 4 ---- 13 files changed, 11 insertions(+), 58 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d146f2023..b39ed2f9d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -221,15 +221,12 @@ dependencies { implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.navigation.compose) - implementation(libs.kotlinx.coroutines.android) - implementation(libs.coil) implementation(libs.coil.network.okhttp) implementation(libs.coil.svg) implementation(libs.androidx.hilt.lifecycle.viewmodel.compose) implementation(libs.zxing.android.embedded) { isTransitive = false } implementation(libs.zxing.core) implementation(libs.androidx.core.splashscreen) - implementation(libs.androidx.emoji2.emojipicker) implementation(libs.kotlinx.serialization.json) implementation(libs.org.eclipse.paho.client.mqttv3) implementation(libs.streamsupport.minifuture) diff --git a/build-logic/convention/src/main/kotlin/com/geeksville/mesh/buildlogic/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/com/geeksville/mesh/buildlogic/AndroidCompose.kt index 9c50b0c19..a59f97576 100644 --- a/build-logic/convention/src/main/kotlin/com/geeksville/mesh/buildlogic/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/com/geeksville/mesh/buildlogic/AndroidCompose.kt @@ -41,7 +41,7 @@ internal fun Project.configureAndroidCompose( "androidTestImplementation"(platform(bom)) "implementation"(libs.findLibrary("androidx-compose-ui-tooling").get()) "implementation"(libs.findLibrary("androidx-compose-runtime").get()) - "implementation"(libs.findLibrary("androidx-compose-runtime-tracing").get()) + "runtimeOnly"(libs.findLibrary("androidx-compose-runtime-tracing").get()) "debugImplementation"(libs.findLibrary("androidx-compose-ui-tooling").get()) } } diff --git a/build.gradle.kts b/build.gradle.kts index 45e605d72..4f6f4a1e4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -97,7 +97,8 @@ dependencyAnalysis { ignoreKtx(true) // Hilt Android is required by the Hilt plugin, but isn't directly used in many cases. Group - // these dependencies together so warnings aren't triggered. + // these dependencies together so warnings aren't triggered. If neither of these are being + // used, the module likely shouldn't be applying the Hilt plugin. bundle("hilt-core") { includeDependency("com.google.dagger:hilt-core") includeDependency(libs.hilt.android) @@ -112,6 +113,7 @@ dependencyAnalysis { issues { all { onUnusedDependencies { + severity("fail") exclude("androidx.compose.ui:ui-test-manifest") } } diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 673be4448..20af2f624 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -35,7 +35,6 @@ dependencies { implementation(projects.core.proto) implementation(libs.androidx.core.location.altitude) - implementation(libs.kotlinx.coroutines.android) implementation(libs.kotlinx.serialization.json) implementation(libs.timber) } diff --git a/core/prefs/build.gradle.kts b/core/prefs/build.gradle.kts index 276a63475..da10d51bd 100644 --- a/core/prefs/build.gradle.kts +++ b/core/prefs/build.gradle.kts @@ -23,7 +23,4 @@ plugins { android { namespace = "org.meshtastic.core.prefs" } -dependencies { - implementation(libs.kotlinx.coroutines.android) - googleImplementation(libs.maps.compose) -} +dependencies { googleImplementation(libs.maps.compose) } diff --git a/core/service/build.gradle.kts b/core/service/build.gradle.kts index 458db23ba..27ad58481 100644 --- a/core/service/build.gradle.kts +++ b/core/service/build.gradle.kts @@ -27,6 +27,6 @@ dependencies { implementation(projects.core.model) implementation(projects.core.proto) implementation(libs.javax.inject) - implementation(libs.kotlinx.coroutines.android) + implementation(libs.kotlinx.coroutines.core) implementation(libs.timber) } diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index 114382299..c4b6ba28d 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -38,5 +38,4 @@ dependencies { implementation(libs.androidx.emoji2.emojipicker) implementation(libs.androidx.hilt.lifecycle.viewmodel.compose) implementation(libs.guava) - implementation(libs.kotlinx.coroutines.android) } diff --git a/feature/intro/build.gradle.kts b/feature/intro/build.gradle.kts index ff1e8ad40..fc6fce362 100644 --- a/feature/intro/build.gradle.kts +++ b/feature/intro/build.gradle.kts @@ -30,11 +30,7 @@ dependencies { implementation(libs.accompanist.permissions) implementation(libs.androidx.compose.material.iconsExtended) implementation(libs.androidx.compose.material3) - implementation(libs.androidx.compose.runtime.livedata) implementation(libs.androidx.compose.ui.text) - implementation(libs.androidx.compose.ui.tooling.preview) - implementation(libs.androidx.constraintlayout) implementation(libs.androidx.navigation3.runtime) implementation(libs.androidx.navigation3.ui) - implementation(libs.material) } diff --git a/feature/map/build.gradle.kts b/feature/map/build.gradle.kts index 48309211a..3372a7c94 100644 --- a/feature/map/build.gradle.kts +++ b/feature/map/build.gradle.kts @@ -38,25 +38,17 @@ dependencies { implementation(projects.core.ui) implementation(libs.accompanist.permissions) + implementation(libs.androidx.activity.compose) implementation(libs.androidx.annotation) implementation(libs.androidx.compose.material.iconsExtended) implementation(libs.androidx.compose.material3) - implementation(libs.androidx.compose.runtime.livedata) implementation(libs.androidx.compose.ui.text) implementation(libs.androidx.compose.ui.tooling.preview) - implementation(libs.androidx.constraintlayout) implementation(libs.androidx.hilt.lifecycle.viewmodel.compose) - implementation(libs.androidx.lifecycle.common.java8) - implementation(libs.androidx.lifecycle.livedata.ktx) - implementation(libs.androidx.lifecycle.process) implementation(libs.androidx.lifecycle.runtime.compose) - implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.viewmodel.compose) - implementation(libs.androidx.lifecycle.viewmodel.ktx) - implementation(libs.androidx.navigation.compose) - implementation(libs.kotlinx.coroutines.android) + implementation(libs.androidx.navigation.common) implementation(libs.material) - implementation(libs.mgrs) implementation(libs.osmbonuspack) implementation(libs.osmdroid.android) implementation(libs.timber) diff --git a/feature/node/build.gradle.kts b/feature/node/build.gradle.kts index bb5d5a22d..837b40dd8 100644 --- a/feature/node/build.gradle.kts +++ b/feature/node/build.gradle.kts @@ -34,15 +34,11 @@ dependencies { implementation(projects.core.strings) implementation(projects.core.ui) implementation(projects.core.navigation) - implementation(projects.core.common) implementation(libs.androidx.compose.material.iconsExtended) implementation(libs.androidx.compose.material3) - implementation(libs.androidx.compose.runtime.livedata) implementation(libs.androidx.compose.ui.text) implementation(libs.androidx.compose.ui.tooling.preview) - implementation(libs.androidx.constraintlayout) - implementation(libs.material) implementation(libs.timber) implementation(libs.coil) implementation(libs.markdown.renderer.android) @@ -51,5 +47,4 @@ dependencies { googleImplementation(libs.location.services) googleImplementation(libs.maps.compose) - googleImplementation(libs.maps.compose.utils) } diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts index 87a64a6f2..feb38c645 100644 --- a/feature/settings/build.gradle.kts +++ b/feature/settings/build.gradle.kts @@ -38,16 +38,14 @@ dependencies { implementation(projects.core.ui) implementation(libs.accompanist.permissions) + implementation(libs.androidx.appcompat) implementation(libs.androidx.compose.material.iconsExtended) implementation(libs.androidx.compose.material3) - implementation(libs.androidx.compose.runtime.livedata) implementation(libs.androidx.compose.ui.text) implementation(libs.androidx.compose.ui.tooling.preview) - implementation(libs.androidx.constraintlayout) implementation(libs.androidx.hilt.lifecycle.viewmodel.compose) implementation(libs.androidx.navigation.compose) implementation(libs.kotlinx.collections.immutable) - implementation(libs.material) implementation(libs.timber) implementation(libs.zxing.android.embedded) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 72d6c092a..382c39912 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,10 +40,8 @@ protobuf = "4.32.1" # AndroidX androidx-activity = { module = "androidx.activity:activity" } androidx-activity-compose = { module = "androidx.activity:activity-compose" } -androidx-activity-ktx = { module = "androidx.activity:activity-ktx" } androidx-annotation = { module = "androidx.annotation:annotation", version = "1.9.1" } androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } -androidx-appcompat-resources = { module = "androidx.appcompat:appcompat-resources", version.ref = "appcompat" } androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version = "2.2.1" } androidx-core-ktx = { module = "androidx.core:core-ktx", version = "1.17.0" } androidx-core-location-altitude = { module = "androidx.core:core-location-altitude", version = "1.0.0-alpha03" } @@ -52,37 +50,27 @@ androidx-datastore = { module = "androidx.datastore:datastore", version.ref = "d androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore" } androidx-emoji2-emojipicker = { module = "androidx.emoji2:emoji2-emojipicker", version = "1.6.0" } androidx-hilt-lifecycle-viewmodel-compose = { module = "androidx.hilt:hilt-lifecycle-viewmodel-compose", version = "1.3.0" } -androidx-lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", version.ref = "lifecycle" } androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" } androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "lifecycle" } androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" } -androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" } androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" } -androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" } +androidx-navigation-common = { module = "androidx.navigation:navigation-common", version.ref = "navigation" } androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigation" } androidx-navigation-runtime = { module = "androidx.navigation:navigation-runtime", version.ref = "navigation" } -androidx-navigation-testing = { module = "androidx.navigation:navigation-testing", version.ref = "navigation" } androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "navigation3" } androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "navigation3" } androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } -androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } androidx-room-testing = { module = "androidx.room:room-testing", version.ref = "room" } -androidx-tracing-ktx = { module = "androidx.tracing:tracing-ktx", version.ref = "androidxTracing" } androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version = "2.10.5" } # Compose accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } androidx-compose-bom = { module = "androidx.compose:compose-bom-alpha", version = "2025.09.01" } -androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" } -androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" } androidx-compose-material-iconsExtended = { module = "androidx.compose.material:material-icons-extended" } androidx-compose-material3 = { module = "androidx.compose.material3:material3" } androidx-compose-material3-navigationSuite = { module = "androidx.compose.material3:material3-adaptive-navigation-suite" } androidx-compose-material3-adaptive = { module = "androidx.compose.material3.adaptive:adaptive", version.ref = "androidxComposeMaterial3Adaptive" } -androidx-compose-material3-adaptive-layout = { module = "androidx.compose.material3.adaptive:adaptive-layout", version.ref = "androidxComposeMaterial3Adaptive" } -androidx-compose-material3-adaptive-navigation = { module = "androidx.compose.material3.adaptive:adaptive-navigation", version.ref = "androidxComposeMaterial3Adaptive" } -androidx-compose-material3-windowSizeClass = { module = "androidx.compose.material3:material3-window-size-class" } androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } androidx-compose-runtime-tracing = { module = "androidx.compose.runtime:runtime-tracing", version.ref = "androidxTracing" } @@ -97,7 +85,6 @@ android-desugarJdkLibs = { module = "com.android.tools:desugar_jdk_libs", versio firebase-analytics = { module = "com.google.firebase:firebase-analytics" } firebase-bom = { module = "com.google.firebase:firebase-bom", version = "34.3.0" } firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics" } -firebase-performance = { module = "com.google.firebase:firebase-perf" } guava = { module = "com.google.guava:guava", version = "33.5.0-jre" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" } @@ -113,9 +100,8 @@ truth = { module = "com.google.truth:truth", version = "1.4.5" } # Kotlin kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version = "0.4.0" } -kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines-android" } +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines-android" } kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } @@ -127,13 +113,11 @@ ktorfit = { module = "de.jensklingenberg.ktorfit:ktorfit-lib", version.ref = "kt okhttp3-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version = "5.2.0" } # Testing -androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version = "3.7.0" } androidx-test-ext-junit = { module = "androidx.test.ext:junit", version = "1.3.0" } androidx-test-runner = { module = "androidx.test:runner", version = "1.7.0" } junit = { module = "junit:junit", version = "4.13.2" } # Other -awesome-app-rating = { module = "com.suddenh4x.ratingdialog:awesome-app-rating", version = "2.8.0" } coil = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" } coil-network-core = { module = "io.coil-kt.coil3:coil-network-core", version.ref = "coil" } coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" } @@ -166,7 +150,6 @@ zxing-android-embedded = { module = "com.journeyapps:zxing-android-embedded", ve # Build Logic android-gradleApiPlugin = { module = "com.android.tools.build:gradle-api", version.ref = "agp" } android-tools-common = { module = "com.android.tools:common", version = "31.13.0" } -androidx-lint-gradle = { module = "androidx.lint:lint-gradle", version = "1.0.0-alpha05" } androidx-room-gradlePlugin = { module = "androidx.room:room-gradle-plugin", version.ref = "room" } compose-gradlePlugin = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin" } datadog-gradlePlugin = { module = "com.datadoghq.dd-sdk-android-gradle-plugin:com.datadoghq.dd-sdk-android-gradle-plugin.gradle.plugin", version = "1.21.0" } @@ -174,7 +157,6 @@ detekt-compose = { module = "io.nlopez.compose.rules:detekt", version = "0.4.27" detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } detekt-gradlePlugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detekt" } firebase-crashlytics-gradlePlugin = { module = "com.google.firebase:firebase-crashlytics-gradle", version = "3.0.6" } -firebase-performance-gradlePlugin = { module = "com.google.firebase:perf-plugin", version = "2.0.1" } google-services-gradlePlugin = { module = "com.google.gms.google-services:com.google.gms.google-services.gradle.plugin", version = "4.4.3" } hilt-gradlePlugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" } ksp-gradlePlugin = { module = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", version.ref = "devtools-ksp" } diff --git a/mesh_service_example/build.gradle.kts b/mesh_service_example/build.gradle.kts index e44721c7a..79a696378 100644 --- a/mesh_service_example/build.gradle.kts +++ b/mesh_service_example/build.gradle.kts @@ -58,12 +58,8 @@ dependencies { implementation(libs.androidx.activity) implementation(libs.androidx.appcompat) implementation(libs.androidx.constraintlayout) - implementation(libs.kotlinx.serialization.json) implementation(libs.material) // OSM - implementation(libs.mgrs) - implementation(libs.osmbonuspack) - implementation(libs.osmdroid.android) implementation(libs.osmdroid.geopackage) { exclude(group = "com.j256.ormlite") } }