1
+ # https://docs.gradle.org/current/userguide/plugins.html#sec:version_catalog_plugin_application
2
+ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version
1
3
[versions ]
2
4
acraCore = " 5.12.0"
5
+ androidGradlePlugin = { strictly = " 8.9.3" } # "android in all their incompetence makes gradle version very tied to the IDE version of Android Studio. Due to this, gradle should lag behind"
6
+ androidToolsUtp = " 31.12.0"
3
7
appcompat = " 1.7.1"
4
- biometric = " 1.4.0-alpha04"
5
- buildkonfigGradlePlugin = " 0.15.2 "
6
- coil = " 3.1.0 "
8
+ biometric = { require = " 1.4.0-alpha04" }
9
+ buildkonfigGradlePlugin = " 0.17.1 "
10
+ coil = { strictly = " [ 3.1, 3.3[ " , prefer = " 3.2.0 " } # do not update above 3.2, it's tied to "kotlinGradlePlugin" version
7
11
colorpicker = " 6b46b49bd5"
8
- conscryptAndroid = " 2.5.2"
12
+ conscryptAndroid = { strictly = " 2.5.2" } # 2.5.3+ crashes everything for everyone.
9
13
constraintlayout = " 2.2.1"
10
14
coreKtx = " 1.16.0"
11
15
desugar_jdk_libs_nio = " 2.1.5"
12
16
dokkaGradlePlugin = " 2.0.0"
13
- espressoCore = " 3.6.1 "
17
+ espressoCore = " 3.7.0 "
14
18
fuzzywuzzy = " 1.4.0"
15
- gradle = " 8.9.3 "
16
- jacksonModuleKotlin = " 2.13.1"
17
- json = " 20250107 "
19
+ gradleVersionsPlugin = " 0.52.0 "
20
+ jacksonModuleKotlin = { strictly = " 2.13.1" } # do not upgrade above 2.13.1, Crashes on Android TV's and FireSticks that have Min API Level 25 or Less.
21
+ json = " 20250517 "
18
22
junit = " 4.13.2"
19
- junitKtx = " 1.2.1 "
20
- junitVersion = " 1.2.1 "
23
+ junitKtx = " 1.3.0 "
24
+ junitVersion = " 1.3.0 "
21
25
juniversalchardet = " 2.5.0"
22
- kotlinGradlePluginVersion = " 2.1.10 "
23
- kotlinxCoroutinesCore = " 1.10.1 "
24
- lifecycleLivedataKtx = " 2.8.7 "
25
- lifecycleViewmodelKtx = " 2.8.7 "
26
+ kotlinGradlePlugin = { strictly = " [ 2.1, 2.2[ " } # do not upgrade above 2.1, it's tied to "androidGradle" version
27
+ kotlinxCoroutinesCore = " 1.10.2 "
28
+ lifecycleLivedataKtx = " 2.9.2 "
29
+ lifecycleViewmodelKtx = " 2.9.2 "
26
30
material = " 1.12.0"
27
- media3 = " 1.6.1 "
28
- navigationKtx = " 2.8.9 "
29
- newpipeextractor = " v0 .24.6 "
31
+ media3 = " 1.8.0 "
32
+ navigationKtx = " 2.9.3 "
33
+ newpipeextractor = " 0 .24.8 "
30
34
nextlibMedia3 = " 0.8.4"
31
35
nicehttp = " 0.4.13"
32
36
overlappingpanels = " 0.1.5"
33
37
paletteKtx = " 1.0.0"
34
38
preferenceKtx = " 1.2.1"
35
39
previewseekbarMedia3 = " 1.1.1.0"
36
- qrcodeKotlin = " 4.3 .0"
40
+ qrcodeKotlin = " 4.5 .0"
37
41
rhino = " 1.8.0"
38
42
safefile = " 0.0.8"
39
43
shimmer = " 0.5.0"
40
44
swiperefreshlayout = " 1.1.0"
41
- tmdbJava = " 2.11 .0"
45
+ tmdbJava = " 2.12 .0"
42
46
torrentserver = " 7861970e038b35cd8c6918384e49caf26903e09e"
43
- tvprovider = " 1.0 .0"
47
+ tvprovider = " 1.1 .0"
44
48
video = " 1.0.0"
45
- workRuntime = " 2.10.0 "
46
- workRuntimeKtx = " 2.10.0 "
49
+ workRuntime = " 2.10.3 "
50
+ workRuntimeKtx = " 2.10.3 "
47
51
48
52
jvmTarget = " 1.8"
49
53
minSdk = " 21"
@@ -53,34 +57,34 @@ targetSdk = "35"
53
57
[libraries ]
54
58
acra-core = { module = " ch.acra:acra-core" , version.ref = " acraCore" }
55
59
acra-toast = { module = " ch.acra:acra-toast" , version.ref = " acraCore" }
60
+ android-gradle-plugin = { module = " com.android.tools.build:gradle" , version.ref = " androidGradlePlugin" }
56
61
appcompat = { module = " androidx.appcompat:appcompat" , version.ref = " appcompat" }
57
62
biometric = { module = " androidx.biometric:biometric" , version.ref = " biometric" }
58
- buildkonfig-gradle-plugin = { module = " com.codingfeline.buildkonfig:buildkonfig-gradle-plugin" , version.ref = " buildkonfigGradlePlugin" }
59
63
coil = { module = " io.coil-kt.coil3:coil" , version.ref = " coil" }
60
64
coil-network-okhttp = { module = " io.coil-kt.coil3:coil-network-okhttp" , version.ref = " coil" }
61
65
colorpicker = { module = " com.github.recloudstream:color-picker-android" , version.ref = " colorpicker" }
62
66
conscrypt-android = { module = " org.conscrypt:conscrypt-android" , version.ref = " conscryptAndroid" }
63
67
constraintlayout = { module = " androidx.constraintlayout:constraintlayout" , version.ref = " constraintlayout" }
64
68
core = { module = " androidx.test:core" }
65
69
core-ktx = { module = " androidx.core:core-ktx" , version.ref = " coreKtx" }
70
+ databinding = { module = " androidx.databinding:viewbinding" , version.ref = " androidGradlePlugin" }
66
71
desugar_jdk_libs_nio = { module = " com.android.tools:desugar_jdk_libs_nio" , version.ref = " desugar_jdk_libs_nio" }
67
- dokka-gradle-plugin = { module = " org.jetbrains.dokka:dokka-gradle-plugin" , version.ref = " dokkaGradlePlugin" }
68
72
espresso-core = { module = " androidx.test.espresso:espresso-core" , version.ref = " espressoCore" }
69
73
ext-junit = { module = " androidx.test.ext:junit" , version.ref = " junitVersion" }
70
74
fuzzywuzzy = { module = " me.xdrop:fuzzywuzzy" , version.ref = " fuzzywuzzy" }
71
- gradle = { module = " com.android.tools.build:gradle" , version.ref = " gradle" }
72
75
jackson-module-kotlin = { module = " com.fasterxml.jackson.module:jackson-module-kotlin" , version.ref = " jacksonModuleKotlin" }
73
- jetbrains-kotlin-gradle-plugin = { module = " org.jetbrains.kotlin:kotlin-gradle-plugin" , version.ref = " kotlinGradlePluginVersion" }
74
76
json = { module = " org.json:json" , version.ref = " json" }
75
77
junit = { module = " junit:junit" , version.ref = " junit" }
76
78
junit-ktx = { module = " androidx.test.ext:junit-ktx" , version.ref = " junitKtx" }
77
79
juniversalchardet = { module = " com.github.albfernandez:juniversalchardet" , version.ref = " juniversalchardet" }
80
+ kotlin-gradle-plugin = { module = " org.jetbrains.kotlin:kotlin-gradle-plugin" , version.ref = " kotlinGradlePlugin" }
78
81
kotlinx-coroutines-core = { module = " org.jetbrains.kotlinx:kotlinx-coroutines-core" , version.ref = " kotlinxCoroutinesCore" }
79
82
lifecycle-livedata-ktx = { module = " androidx.lifecycle:lifecycle-livedata-ktx" , version.ref = " lifecycleLivedataKtx" }
80
83
lifecycle-viewmodel-ktx = { module = " androidx.lifecycle:lifecycle-viewmodel-ktx" , version.ref = " lifecycleViewmodelKtx" }
81
84
material = { module = " com.google.android.material:material" , version.ref = " material" }
82
85
media3-cast = { module = " androidx.media3:media3-cast" , version.ref = " media3" }
83
86
media3-common = { module = " androidx.media3:media3-common" , version.ref = " media3" }
87
+ media3-container = { module = " androidx.media3:media3-container " , version.ref = " media3" }
84
88
media3-datasource-okhttp = { module = " androidx.media3:media3-datasource-okhttp" , version.ref = " media3" }
85
89
media3-exoplayer = { module = " androidx.media3:media3-exoplayer" , version.ref = " media3" }
86
90
media3-exoplayer-dash = { module = " androidx.media3:media3-exoplayer-dash" , version.ref = " media3" }
@@ -98,8 +102,8 @@ palette-ktx = { module = "androidx.palette:palette-ktx", version.ref = "paletteK
98
102
preference-ktx = { module = " androidx.preference:preference-ktx" , version.ref = " preferenceKtx" }
99
103
previewseekbar-media3 = { module = " com.github.rubensousa:previewseekbar-media3" , version.ref = " previewseekbarMedia3" }
100
104
qrcode-kotlin = { module = " io.github.g0dkar:qrcode-kotlin" , version.ref = " qrcodeKotlin" }
101
- rhino = { module = " org.mozilla:rhino" , version.ref = " rhino" }
102
105
quickjs = { module = " app.cash.quickjs:quickjs-android" , version = " 0.9.2" }
106
+ rhino = { module = " org.mozilla:rhino" , version.ref = " rhino" }
103
107
safefile = { module = " com.github.LagradOst:SafeFile" , version.ref = " safefile" }
104
108
shimmer = { module = " com.facebook.shimmer:shimmer" , version.ref = " shimmer" }
105
109
swiperefreshlayout = { module = " androidx.swiperefreshlayout:swiperefreshlayout" , version.ref = " swiperefreshlayout" }
@@ -111,8 +115,16 @@ work-runtime = { module = "androidx.work:work-runtime", version.ref = "workRunti
111
115
work-runtime-ktx = { module = " androidx.work:work-runtime-ktx" , version.ref = " workRuntimeKtx" }
112
116
113
117
[plugins ]
118
+ android-application = { id = " com.android.application" , version.ref = " androidGradlePlugin" }
119
+ android-library = { id = " com.android.library" , version.ref = " androidGradlePlugin" }
120
+ buildkonfig-gradle-plugin = { id = " com.codingfeline.buildkonfig" , version.ref = " buildkonfigGradlePlugin" }
121
+ dokka-gradle-plugin = { id = " org.jetbrains.dokka" , version.ref = " dokkaGradlePlugin" }
122
+ gradle-versions-plugin = { id = " com.github.ben-manes.versions" , version.ref = " gradleVersionsPlugin" }
123
+ kotlin-android = { id = " org.jetbrains.kotlin.android" , version.ref = " kotlinGradlePlugin" }
124
+ kotlin-jvm = { id = " org.jetbrains.kotlin.jvm" , version.ref = " kotlinGradlePlugin" }
125
+ kotlin-multiplatform = { id = " org.jetbrains.kotlin.multiplatform" , version.ref = " kotlinGradlePlugin" }
114
126
115
127
[bundles ]
116
128
media3 = [" media3-cast" , " media3-common" , " media3-datasource-okhttp" , " media3-exoplayer" , " media3-exoplayer-dash" , " media3-exoplayer-hls" , " media3-session" , " media3-ui" ]
117
- nextlibMedia3 = [" nextlib-media3ext" , " nextlib-mediainfo" ]
118
129
navigationKtx = [" navigation-ui-ktx" , " navigation-fragment-ktx" ]
130
+ nextlibMedia3 = [" nextlib-media3ext" , " nextlib-mediainfo" ]
0 commit comments