horologist-datalayer-watch dependencies
- Dominant language
- Kotlin
- Stars
- 693
- Forks
- 123
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 34
Description
The module horologist-datalayer-watch have a dependency on `libs.androidx.complications.datasource.ktx` that have tons of other dependencies, just to extract the name of the `ComplicationType` in one function.
I'm not sure this is really necessary for this simple need.
(One might also wonder why that wear dep embeds so many side dependencies but that's for another repo)
By side effect it will load appcompat, fragment, drawerlayout, recylerview, .... all those with proguard rules preventing them to be properly stripped.
```
| +--- com.google.android.horologist:horologist-datalayer-watch:0.6.12
| | +--- com.google.android.horologist:horologist-datalayer:0.6.12 (*)
| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.0.0 (*)
| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*)
| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.1 (*)
| | +--- androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1
| | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
| | | +--- androidx.wear.watchface:watchface-complications-data-source:1.2.1
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*)
| | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
| | | | +--- androidx.preference:preference:1.1.0
| | | | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1
| | | | | | +--- androidx.activity:activity:1.6.0 -> 1.9.0 (*)
| | | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.8.0 (*)
| | | | | | +--- androidx.appcompat:appcompat-resources:1.6.1 (*)
| | | | | | +--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
| | | | | | +--- androidx.core:core:1.9.0 -> 1.13.1 (*)
| | | | | | +--- androidx.core:core-ktx:1.8.0 -> 1.13.1 (*)
| | | | | | +--- androidx.cursoradapter:cursoradapter:1.0.0
| | | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.8.0 (*)
| | | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0
| | | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.0 (*)
| | | | | | | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
| | | | | | | \--- androidx.customview:customview:1.0.0 (*)
| | | | | | +--- androidx.emoji2:emoji2:1.2.0 -> 1.3.0 (*)
| | | | | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 -> 1.3.0
| | | | | | | +--- androidx.collection:collection:1.1.0 -> 1.4.0 (*)
| | | | | | | +--- androidx.core:core:1.3.0 -> 1.13.1 (*)
| | | | | | | +--- androidx.emoji2:emoji2:1.3.0 (*)
| | | | | | | \--- androidx.emoji2:emoji2:1.3.0 (c)
| | | | | | +--- androidx.fragment:fragment:1.3.6 -> 1.5.1 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -> 2.8.0 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 -> 2.8.0 (*)
| | | | | | +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1
| | | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*)
| | | | | | +--- androidx.savedstate:savedstate:1.2.0 -> 1.2.1 (*)
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.0.0 (*)
| | | | | | \--- androidx.appcompat:appcompat-resources:1.6.1 (c)
| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
| | | | | +--- androidx.fragment:fragment:1.1.0 -> 1.5.1 (*)
| | | | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0
| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*)
| | | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
| | | | | | +--- androidx.customview:customview:1.0.0 (*)
| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*)
| | | | | \--- androidx.collection:collection:1.0.0 -> 1.4.0 (*)
| | | | +--- androidx.wear.watchface:watchface-complications:1.2.1
| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*)
| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*)
| | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
| | | | | +--- androidx.wear.watchface:watchface-complications-data:1.2.1
| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*)
| | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*)
| | | | | | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
| | | | | | +--- androidx.preference:preference:1.1.0 (*)
| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 -> 1.1.1 (*)
| | | | | | +--- androidx.wear.protolayout:protolayout-expression:1.0.0-beta01
| | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*)
| | | | | | | +--- androidx.annotation:annotation-experimental:1.3.0 -> 1.4.0 (*)
| | | | | | | +--- androidx.collection:collection:1.2.0 -> 1.4.0 (*)
| | | | | | | +--- androidx.wear.protolayout:protolayout-proto:1.0.0-beta01
| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*)
| | | | | | | | +--- androidx.wear.protolayout:protolayout-expression:1.0.0-beta01 (c)
| | | | | | | | \--- androidx.wear.protolayout:protolayout-expression-pipeline:1.0.0-beta01 (c)
| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*)
| | | | | | | +--- androidx.wear.protolayout:protolayout-expression-pipeline:1.0.0-beta01 (c)
| | | | | | | \--- androidx.wear.protolayout:protolayout-proto:1.0.0-beta01 (c)
| | | | | | +--- androidx.wear.protolayout:protolayout-expression-pipeline:1.0.0-beta01
| | | | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*)
| | | | | | | +--- androidx.annotation:annotation-experimental:1.3.0 -> 1.4.0 (*)
| | | | | | | +--- androidx.collection:collection:1.2.0 -> 1.4.0 (*)
| | | | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*)
| | | | | | | +--- androidx.core:core:1.7.0 -> 1.13.1 (*)
| | | | | | | +--- androidx.wear.protolayout:protolayout-expression:1.0.0-beta01 (*)
| | | | | | | +--- androidx.wear.protolayout:protolayout-proto:1.0.0-beta01 (*)
| | | | | | | +--- androidx.wear.protolayout:protolayout-expression:1.0.0-beta01 (c)
| | | | | | | \--- androidx.wear.protolayout:protolayout-proto:1.0.0-beta01 (c)
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*)
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1 -> 1.8.1 (*)
| | | | | | +--- androidx.wear.watchface:watchface-complications:1.2.1 (c)
| | | | | | +--- androidx.wear.watchface:watchface-complications-data-source:1.2.1 (c)
| | | | | | \--- androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1 (c)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*)
| | | | | +--- androidx.wear.watchface:watchface-complications-data:1.2.1 (c)
| | | | | +--- androidx.wear.watchface:watchface-complications-data-source:1.2.1 (c)
| | | | | \--- androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1 (c)
| | | | +--- androidx.wear.watchface:watchface-complications-data:1.2.1 (*)
| | | | +--- androidx.wear.watchface:watchface-complications:1.2.1 (c)
| | | | +--- androidx.wear.watchface:watchface-complications-data:1.2.1 (c)
| | | | \--- androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1 (c)
| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.0 (*)
| | | +--- androidx.wear.watchface:watchface-complications-data-source:1.2.1 (c)
| | | +--- androidx.wear.watchface:watchface-complications:1.2.1 (c)
| | | \--- androidx.wear.watchface:watchface-complications-data:1.2.1 (c)
```
Contributor guide
Research direction
Inspect the horologist-datalayer-watch module and locate the function that extracts the ComplicationType name, then review how the watchface-complications-data-source-ktx dependency is declared and used. Confirm the dependency tree before and after the change, while preserving the existing name extraction behavior and removing the unnecessary transitive dependencies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- mobile-dev
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100