Source Code added
Some checks are pending
Repo / Label merge conflict / Triage (push) Waiting to run

This commit is contained in:
Fr4nz D13trich 2026-02-02 14:56:38 +01:00
parent ac679f452a
commit 3f20680501
477 changed files with 25051 additions and 2 deletions

182
gradle/libs.versions.toml Normal file
View file

@ -0,0 +1,182 @@
[versions]
# Plugins
android-plugin = "8.5.0"
kotlin = "2.0.0"
kotlin-ksp = "2.0.0-1.0.22"
detekt = "1.22.0"
android-junit5 = "1.10.0.0"
# KotlinX
coroutines = "1.8.1"
# Core
koin = "3.5.6"
koin-compose = "3.5.6"
androidx-core = "1.13.1"
androidx-core-splashscreen = "1.0.1"
androidx-appcompat = "1.7.0"
androidx-activity = "1.9.0"
androidx-fragment = "1.8.1"
androiddesugarlibs = "2.0.4"
# Lifecycle extensions
androidx-lifecycle = "2.8.3"
# UI
androidx-constraintlayout = "2.1.4"
google-material = "1.12.0"
androidx-webkit = "1.11.0"
modernandroidpreferences = "2.4.0-beta2"
# Compose
compose = "1.6.8"
compose-foundation = "1.6.8"
compose-material = "1.6.8"
# Network
jellyfin-sdk = "1.6.8"
okhttp = "4.12.0"
coil = "2.6.0"
cronet-embedded = "119.6045.31"
# Media
androidx-media = "1.7.0"
androidx-mediarouter = "1.7.0"
exoplayer = "2.19.1"
jellyfin-exoplayer-ffmpegextension = "2.19.1+1"
playservices = "21.5.0"
# Room
androidx-room = "2.6.1"
# Monitoring
timber = "5.0.1"
leakcanary = "2.14"
# Testing
junit = "5.10.3"
kotest = "5.9.1"
mockk = "1.13.11"
androidx-test-runner = "1.6.1"
androidx-test-espresso = "3.6.1"
[plugins]
android-app = { id = "com.android.application", version.ref = "android-plugin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
kotlin-ksp = { id = "com.google.devtools.ksp", version.ref = "kotlin-ksp" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
android-junit5 = { id = "de.mannodermaus.android-junit5", version.ref = "android-junit5" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
[libraries]
# KotlinX
coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" }
coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" }
# Core
koin = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" }
koin-compose = { group = "io.insert-koin", name = "koin-androidx-compose", version.ref = "koin-compose" }
android-gradle = { module = "com.android.tools.build:gradle", version.ref = "android-plugin" }
androidx-core = { group = "androidx.core", name = "core", version.ref = "androidx-core" }
androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "androidx-core-splashscreen" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" }
androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "androidx-activity" }
androidx-fragment = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "androidx-fragment" }
androiddesugarlibs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "androiddesugarlibs" }
# Lifecycle Extensions
androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" }
androidx-lifecycle-livedata = { group = "androidx.lifecycle", name = "lifecycle-livedata", version.ref = "androidx-lifecycle" }
androidx-lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime", version.ref = "androidx-lifecycle" }
androidx-lifecycle-common = { group = "androidx.lifecycle", name = "lifecycle-common", version.ref = "androidx-lifecycle" }
androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "androidx-lifecycle" }
# UI
google-material = { group = "com.google.android.material", name = "material", version.ref = "google-material" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" }
androidx-webkit = { group = "androidx.webkit", name = "webkit", version.ref = "androidx-webkit" }
modernandroidpreferences = { group = "de.maxr1998", name = "modernandroidpreferences", version.ref = "modernandroidpreferences" }
# Compose
compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "compose" }
compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" }
compose-animation = { group = "androidx.compose.animation", name = "animation", version.ref = "compose" }
compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose-foundation" }
compose-material = { group = "androidx.compose.material", name = "material", version.ref = "compose-material" }
compose-material-icons = { group = "androidx.compose.material", name = "material-icons-core", version.ref = "compose-material" }
compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "compose-material" }
# Network
jellyfin-sdk = { group = "org.jellyfin.sdk", name = "jellyfin-core", version.ref = "jellyfin-sdk" }
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
coil = { group = "io.coil-kt", name = "coil-base", version.ref = "coil" }
cronet-embedded = { group = "org.chromium.net", name = "cronet-embedded", version.ref = "cronet-embedded" }
# Media
androidx-media = { group = "androidx.media", name = "media", version.ref = "androidx-media" }
androidx-mediarouter = { group = "androidx.mediarouter", name = "mediarouter", version.ref = "androidx-mediarouter" }
exoplayer-core = { group = "com.google.android.exoplayer", name = "exoplayer-core", version.ref = "exoplayer" }
exoplayer-ui = { group = "com.google.android.exoplayer", name = "exoplayer-ui", version.ref = "exoplayer" }
exoplayer-mediaSession = { group = "com.google.android.exoplayer", name = "extension-mediasession", version.ref = "exoplayer" }
exoplayer-hls = { group = "com.google.android.exoplayer", name = "exoplayer-hls", version.ref = "exoplayer" }
exoplayer-cast = { group = "com.google.android.exoplayer", name = "extension-cast", version.ref = "exoplayer" }
exoplayer-cronet = { group = "com.google.android.exoplayer", name = "extension-cronet", version.ref = "exoplayer" }
playservices-cast = { group = "com.google.android.gms", name = "play-services-cast", version.ref = "playservices" }
playservices-castframework = { group = "com.google.android.gms", name = "play-services-cast-framework", version.ref = "playservices" }
jellyfin-exoplayer-ffmpegextension = { group = "org.jellyfin.exoplayer", name = "exoplayer-ffmpeg-extension", version.ref = "jellyfin-exoplayer-ffmpegextension" }
# Room
androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "androidx-room" }
androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "androidx-room" }
# Monitoring
timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" }
leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version.ref = "leakcanary" }
# Testing
junit-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" }
kotest-runner = { group = "io.kotest", name = "kotest-runner-junit5-jvm", version.ref = "kotest" }
kotest-assertions = { group = "io.kotest", name = "kotest-assertions-core-jvm", version.ref = "kotest" }
kotest-property = { group = "io.kotest", name = "kotest-property-jvm", version.ref = "kotest" }
mockk = { group = "io.mockk", name = "mockk-android", version.ref = "mockk" }
androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test-runner" }
androidx-test-espresso = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidx-test-espresso" }
# Detekt plugins
detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" }
[bundles]
coroutines = ["coroutines-core", "coroutines-android"]
koin = ["koin", "koin-compose"]
androidx-lifecycle = [
"androidx-lifecycle-viewmodel",
"androidx-lifecycle-livedata",
"androidx-lifecycle-runtime",
"androidx-lifecycle-common",
"androidx-lifecycle-process",
]
compose = [
"compose-runtime",
"compose-ui",
"compose-foundation",
"compose-animation",
"compose-material",
"compose-material-icons",
"compose-material-icons-extended",
]
exoplayer = [
"exoplayer-core",
"exoplayer-ui",
"exoplayer-mediaSession",
"exoplayer-hls",
"exoplayer-cronet",
]
playservices = [
"playservices-cast",
"playservices-castframework",
]
androidx-room = ["androidx-room-runtime"]
kotest = ["kotest-runner", "kotest-assertions", "kotest-property"]
androidx-test = ["androidx-test-runner", "androidx-test-espresso"]