EARHORNMUSIC UPnP · Android TV · Phones · Android Auto · GNU/Linux
Release 0.5.0

libs.versions.toml

Each line, with the release that last changed it.

0.5.01[versions]
2# Toolchain — bump as new stable releases land and re-sync.
3agp = "8.7.3"
4kotlin = "2.0.21"
5ksp = "2.0.21-1.0.28"
6hilt = "2.52"
7compileSdk = "35"
8minSdk = "26"
9targetSdk = "35"
10
11# AndroidX / Compose
12coreKtx = "1.15.0"
13appcompat = "1.7.0"
14lifecycle = "2.8.7"
15activityCompose = "1.9.3"
16composeBom = "2024.11.00"
17tvFoundation = "1.0.0-alpha11"
18tvMaterial = "1.0.0"
19navigationCompose = "2.8.4"
20hiltNavigationCompose = "1.2.0"
21media3 = "1.5.0"
22room = "2.6.1"
23datastore = "1.1.1"
24
25# UPnP — jUPnP 3.0.3 (maintained fork of the abandoned Cling project).
26# Published to Maven Central, unlike Cling. Requires Jetty 9.4.x for its HTTP transport
27# (jUPnP's AndroidUpnpServiceConfiguration pins the AsyncServletStreamServer built on Jetty);
28# we pin 9.4.48 because that's what jupnp upstream builds/tests against, and we're on minSdk 26
29# so the 9.4.14 ceiling older projects hit for minSdk 21 doesn't apply.
30jupnp = "3.0.3"
31jetty = "9.4.48.v20220622"
32slf4j = "2.0.16"
33
34# Image loading + HTTP + kotlinx
35coil = "3.0.2"
36okhttp = "4.12.0"
37kotlinxCoroutines = "1.9.0"
38kotlinxSerialization = "1.7.3"
39
40# Cast (play flavor only)
41castFramework = "22.1.0"
42mediaRouter = "1.7.0"
43carApp = "1.7.0-rc01"
44androidxMedia = "1.7.0"
45
46[libraries]
47androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" }
48androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
49androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" }
50androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" }
51androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" }
52
53compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" }
54compose-ui = { module = "androidx.compose.ui:ui" }
55compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" }
56compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
57compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
58compose-material3 = { module = "androidx.compose.material3:material3" }
59compose-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" }
60
61androidx-tv-foundation = { module = "androidx.tv:tv-foundation", version.ref = "tvFoundation" }
62androidx-tv-material = { module = "androidx.tv:tv-material", version.ref = "tvMaterial" }
63
64androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationCompose" }
65androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigationCompose" }
66
67hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
68hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" }
69
70media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" }
71media3-session = { module = "androidx.media3:media3-session", version.ref = "media3" }
72media3-ui = { module = "androidx.media3:media3-ui", version.ref = "media3" }
73media3-datasource-okhttp = { module = "androidx.media3:media3-datasource-okhttp", version.ref = "media3" }
74
75room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }
76room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
77room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
78
79datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore" }
80
81jupnp-core = { module = "org.jupnp:org.jupnp", version.ref = "jupnp" }
82jupnp-support = { module = "org.jupnp:org.jupnp.support", version.ref = "jupnp" }
83jupnp-android = { module = "org.jupnp:org.jupnp.android", version.ref = "jupnp" }
84
85jetty-server = { module = "org.eclipse.jetty:jetty-server", version.ref = "jetty" }
86jetty-servlet = { module = "org.eclipse.jetty:jetty-servlet", version.ref = "jetty" }
87jetty-client = { module = "org.eclipse.jetty:jetty-client", version.ref = "jetty" }
88
89# jUPnP logs through SLF4J; slf4j-jdk14 routes to java.util.logging which Android does implement,
90# so logs surface via logcat without extra config.
91slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
92slf4j-jdk14 = { module = "org.slf4j:slf4j-jdk14", version.ref = "slf4j" }
93
94coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" }
95coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" }
96coil-gif = { module = "io.coil-kt.coil3:coil-gif", version.ref = "coil" }
97
98okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
99
100kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
101kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
102
103# Cast — play flavor only. Referenced from the play sourceSet's dependencies block.
104play-services-cast-framework = { module = "com.google.android.gms:play-services-cast-framework", version.ref = "castFramework" }
105androidx-mediarouter = { module = "androidx.mediarouter:mediarouter", version.ref = "mediaRouter" }
106androidx-car-app = { module = "androidx.car.app:app", version.ref = "carApp" }
107androidx-media = { module = "androidx.media:media", version.ref = "androidxMedia" }
108
109[plugins]
110android-application = { id = "com.android.application", version.ref = "agp" }
111kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
112kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
113kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
114ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
115hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }