Skip to content
3 changes: 2 additions & 1 deletion RELEASE-NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
*** For entries which are touching the Android Wear app's, start entry with `[WEAR]` too.
23.5
-----

- [Internal][Wear] Remove unused dependencies and optimize dependency scopes [https://github.com/woocommerce/woocommerce-android/pull/14710]
- [Internal] Remove unused dependencies and optimize dependency scopes [https://github.com/woocommerce/woocommerce-android/pull/14710]

23.4
-----
Expand Down
15 changes: 3 additions & 12 deletions WooCommerce-Wear/build.gradle
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm surprised to see how many dependencies are unused here, thanks for taking care of this.

It looks like implementation(libs.androidx.work.runtime.ktx) is requied. Without it, the Wear app crashes with the following log:

Log
Pinning is deprecated since Android Q. Please use trim or other methods.
2025-10-07 16:55:24.052  5395-5410  AndroidRuntime          com.woocommerce.android              E  FATAL EXCEPTION: pool-4-thread-1 (Ask Gemini)
                                                                                                  Process: com.woocommerce.android, PID: 5395
                                                                                                  java.lang.IllegalArgumentException: com.woocommerce.android: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
                                                                                                  Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
                                                                                                  	at android.app.PendingIntent.checkPendingIntent(PendingIntent.java:458)
                                                                                                  	at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:761)
                                                                                                  	at android.app.PendingIntent.getBroadcast(PendingIntent.java:748)
                                                                                                  	at androidx.work.impl.utils.ForceStopRunnable.getPendingIntent(ForceStopRunnable.java:196)
                                                                                                  	at androidx.work.impl.utils.ForceStopRunnable.isForceStopped(ForceStopRunnable.java:128)
                                                                                                  	at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:93)
                                                                                                  	at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
                                                                                                  	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
                                                                                                  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
                                                                                                  	at java.lang.Thread.run(Thread.java:1119)

I tested all Wear screens, the connection with the phone app, and tracks everything works. My only feedback is the missing runtime dependency. ✅

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@irfano thank you!

Added it back

a76a0db

Original file line number Diff line number Diff line change
Expand Up @@ -135,15 +135,10 @@ dependencies {
exclude group: "com.mcxiaoke.volley"
exclude group: "com.android.support"
}
implementation(libs.automattic.tracks.android)
implementation(libs.automattic.tracks.crashlogging)

// WearOS
implementation(libs.google.play.services.wearable)
implementation(libs.androidx.wear.tiles.main)
implementation(libs.androidx.wear.tiles.material)
implementation(libs.google.horologist.compose.tools)
implementation(libs.google.horologist.tiles)
implementation(libs.google.horologist.compose.layout)
implementation(libs.androidx.wear.watchface.complications.data.source.ktx)
implementation(libs.androidx.wear.compose.material)
Expand All @@ -164,30 +159,26 @@ dependencies {
// Android Support
implementation(libs.androidx.work.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
implementation(libs.androidx.lifecycle.livedata.ktx)
implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.navigation.compose)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.preference.ktx)
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.datastore.main)
implementation(libs.google.gson)

// Coroutines
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
runtimeOnly(libs.kotlinx.coroutines.android)
implementation(libs.kotlinx.coroutines.play.services)
testImplementation(libs.kotlinx.coroutines.test)

// Dagger & Hilt
implementation(libs.google.dagger.hilt.android.main)
implementation(libs.androidx.hilt.navigation.fragment)
implementation(libs.androidx.hilt.common)
implementation(libs.androidx.hilt.work)
implementation(libs.androidx.hilt.navigation.compose)
compileOnly(libs.androidx.hilt.common)
implementation(libs.androidx.hilt.work)
ksp(libs.androidx.hilt.compiler)
ksp(libs.google.dagger.hilt.compiler)
implementation(libs.google.dagger.android.support)
ksp(libs.google.dagger.android.processor)

// Testing
Expand Down
13 changes: 6 additions & 7 deletions WooCommerce/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -281,20 +281,18 @@ dependencies {
// Dagger
implementation(libs.google.dagger.hilt.android.main)
implementation(libs.androidx.hilt.navigation.fragment)
implementation(libs.androidx.hilt.common)
compileOnly(libs.androidx.hilt.common)
implementation(libs.androidx.hilt.work)

ksp(libs.androidx.hilt.compiler)
ksp(libs.google.dagger.hilt.compiler)
implementation(libs.google.dagger.android.support)
ksp(libs.google.dagger.android.processor)

implementation(libs.mpandroidchart)

implementation(libs.bumptech.glide.main)
ksp(libs.bumptech.glide.compiler)
implementation(libs.bumptech.glide.volley.integration)
implementation(libs.bumptech.glide.avif.integration)
implementation(libs.google.play.app.update)
implementation(libs.google.play.review)

Expand Down Expand Up @@ -350,6 +348,7 @@ dependencies {
exclude group: 'asm', module: 'asm'
exclude group: 'org.json', module: 'json'
}
androidTestImplementation(libs.apache.http.client.android)
constraints {
androidTestImplementation(libs.wiremock) {
because("newer versions of WireMock use Java APIs not available on Android")
Expand All @@ -376,7 +375,6 @@ dependencies {
because("version shipped with WireMock 2.26.3 contains security vulnerabilities")
}
}
androidTestImplementation(libs.apache.http.client.android)

implementation(libs.zendesk.support) {
exclude group: 'com.android.support', module: 'support-annotations'
Expand All @@ -386,10 +384,11 @@ dependencies {
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
implementation(libs.androidx.lifecycle.process)
implementation(libs.androidx.paging.runtime)

// Coroutines
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
runtimeOnly(libs.kotlinx.coroutines.android)
implementation(libs.kotlinx.coroutines.play.services)
testImplementation(libs.kotlinx.coroutines.test)

Expand Down Expand Up @@ -425,15 +424,15 @@ dependencies {
implementation(libs.coil.svg)

androidTestImplementation(libs.androidx.compose.ui.test.junit4)
debugImplementation(libs.androidx.compose.ui.test.manifest)
debugRuntimeOnly(libs.androidx.compose.ui.test.manifest)

coreLibraryDesugaring(libs.android.desugar)

// Lottie
implementation(libs.lottie.compose)

// CameraX
implementation(libs.androidx.camera.camera2)
runtimeOnly(libs.androidx.camera.camera2)
implementation(libs.androidx.camera.lifecycle)
implementation(libs.androidx.camera.view)

Expand Down
6 changes: 2 additions & 4 deletions libs/apifaker/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,16 @@ dependencies {

implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.material.main)
implementation(libs.androidx.compose.runtime.livedata)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material.icons.extended)
implementation(libs.androidx.compose.ui.tooling.preview)
debugImplementation(libs.androidx.compose.ui.tooling.main)

implementation(libs.google.gson)
api(libs.google.gson)

implementation(project(":libs:fluxc"))
implementation(project(":libs:fluxc-plugin"))

implementation(libs.androidx.room.runtime)
implementation(libs.androidx.room.ktx)
ksp(libs.androidx.room.compiler)

implementation(libs.google.dagger.hilt.android.main)
Expand Down
5 changes: 3 additions & 2 deletions libs/cardreader/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,14 @@ android {
}

dependencies {
implementation(libs.stripe.terminal.taptopay)
runtimeOnly(libs.stripe.terminal.taptopay)
implementation(libs.stripe.terminal.core)

// Coroutines
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
runtimeOnly(libs.kotlinx.coroutines.android)

testImplementation(libs.junit)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.kotlin.test.junit)
testImplementation(libs.assertj.core)
Expand Down
17 changes: 10 additions & 7 deletions libs/fluxc-plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ tasks.withType(KotlinCompile).configureEach {
}

dependencies {
implementation project(":libs:fluxc")
api project(":libs:fluxc")

testFixturesCompileOnly project(":libs:fluxc")
testFixturesCompileOnly libs.mockito.kotlin
Expand All @@ -57,6 +57,8 @@ dependencies {
testFixturesCompileOnly libs.wordpress.utils
testFixturesCompileOnly libs.assertj.core
testFixturesCompileOnly libs.junit
testFixturesCompileOnly libs.kotlinx.coroutines.core
testFixturesCompileOnly libs.androidx.room.runtime

// WordPress libs
implementation(libs.wordpress.utils) {
Expand All @@ -65,27 +67,28 @@ dependencies {
exclude group: "com.android.support"
}

api libs.wellsql
implementation libs.androidx.core.ktx

implementation libs.wellsql
kapt libs.wellsql.processor

// FluxC annotations
api project(":libs:fluxc-annotations")
kapt project(":libs:fluxc-processor")

implementation libs.google.gson
api libs.google.gson

// Dagger
implementation libs.google.dagger
api libs.google.dagger
ksp libs.google.dagger.compiler
compileOnly libs.glassfish.javax.annotation

// Coroutines
implementation libs.kotlinx.coroutines.core
implementation libs.kotlinx.coroutines.android
runtimeOnly libs.kotlinx.coroutines.android

implementation libs.androidx.room.runtime
ksp libs.androidx.room.compiler
api libs.androidx.room.ktx

testImplementation libs.junit
testImplementation libs.robolectric
Expand All @@ -96,7 +99,7 @@ dependencies {
testImplementation libs.kotlin.test.junit

androidTestImplementation libs.androidx.room.testing
androidTestImplementation libs.androidx.test.main.runner
androidTestRuntimeOnly libs.androidx.test.main.runner
androidTestImplementation libs.androidx.test.ext.junit
androidTestImplementation libs.assertj.core
}
1 change: 1 addition & 0 deletions libs/fluxc-tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,5 @@ dependencies {
testImplementation libs.mockito.kotlin
testImplementation libs.assertj.core
testImplementation libs.androidx.arch.core.testing
testImplementation libs.androidx.paging.runtime
}
10 changes: 4 additions & 6 deletions libs/fluxc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -88,22 +88,21 @@ dependencies {
implementation libs.squareup.okhttp3.urlconnection
implementation libs.squareup.okhttp3.tls
api libs.volley
implementation libs.google.gson
api libs.google.gson

implementation libs.apache.commons.text
api libs.androidx.paging.runtime
implementation libs.androidx.paging.runtime
implementation libs.androidx.room.runtime
ksp libs.androidx.room.compiler
implementation libs.androidx.room.ktx

// Dagger
implementation libs.google.dagger
api libs.google.dagger
ksp libs.google.dagger.compiler
compileOnly libs.glassfish.javax.annotation

// Coroutines
implementation libs.kotlinx.coroutines.core
implementation libs.kotlinx.coroutines.android
runtimeOnly libs.kotlinx.coroutines.android

// Unit tests
testImplementation libs.junit
Expand All @@ -113,7 +112,6 @@ dependencies {
testImplementation libs.robolectric
testImplementation libs.mockito.kotlin
testImplementation libs.assertj.core
testImplementation libs.androidx.arch.core.testing
}

tasks.withType(KotlinCompile).configureEach {
Expand Down
14 changes: 6 additions & 8 deletions libs/login/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,30 +35,28 @@ android {
}

dependencies {
implementation libs.wordpress.utils
api libs.wordpress.utils
implementation libs.gravatar

implementation libs.androidx.appcompat
api libs.androidx.appcompat

implementation libs.androidx.constraintlayout.main
implementation libs.google.material

implementation libs.androidx.core.ktx

api libs.google.play.services.auth

implementation project(":libs:fluxc")
api project(":libs:fluxc")

implementation libs.bumptech.glide.main
ksp libs.bumptech.glide.ksp

implementation libs.androidx.credentials.main
implementation libs.androidx.credentials.play.service.auth
runtimeOnly libs.androidx.credentials.play.service.auth

// Dagger
implementation libs.google.dagger
api libs.google.dagger
ksp libs.google.dagger.compiler
implementation libs.google.dagger.android.support
api libs.google.dagger.android.support
ksp libs.google.dagger.android.processor

testImplementation libs.junit
Expand Down