[versions] aboutlibraries = "15.3.0" accompanist = "0.37.3" acra = "5.14.2" android-compileSdk = "37" android-desugar = "2.1.5" android-gradle = "9.4.1" android-minSdk = "23" android-targetSdk = "36" androidx-activity = "1.13.0" androidx-appcompat = "1.8.0" androidx-cardview = "1.0.0" androidx-compose-foundation = "1.12.1" androidx-compose-ui = "1.12.1" androidx-constraintlayout = "2.2.2" androidx-core = "1.19.1" androidx-fragment = "1.9.1" androidx-leanback = "1.2.0" androidx-lifecycle = "2.11.0" androidx-media3 = "1.11.1" androidx-navigation3 = "1.1.7" androidx-preference = "1.2.1" androidx-recyclerview = "1.4.0" androidx-startup = "1.2.0" androidx-tvprovider = "1.1.0" androidx-window = "1.5.1" androidx-work = "2.11.2" coil = "3.6.3" detekt = "1.23.8" java-jdk = "21" jellyfin-androidx-media = "1.9.0+1" jellyfin-sdk = "1.8.12" koin = "4.2.2" koin-compose = "4.2.2" kotest = "6.2.6" kotlin = "2.4.21" kotlinx-coroutines = "1.11.0" kotlinx-serialization = "1.12.0" libass-android = "0.5.1" markwon = "4.6.2" mockk = "1.14.11" slf4j-timber = "0.0.4" timber = "5.0.1" [plugins] aboutlibraries = { id = "com.mikepenz.aboutlibraries.plugin.android", version.ref = "aboutlibraries" } android-application = { id = "com.android.application", version.ref = "android-gradle" } android-library = { id = "com.android.library", version.ref = "android-gradle" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } [libraries] # Jellyfin jellyfin-sdk = { module = "org.jellyfin.sdk:jellyfin-core", version.ref = "jellyfin-sdk" } # Kotlin kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } kotlinx-coroutines-guava = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-guava", version.ref = "kotlinx-coroutines" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } # Android(x) accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } android-gradle = { module = "com.android.tools.build:gradle", version.ref = "android-gradle" } androidx-activity = { module = "androidx.activity:activity", version.ref = "androidx-activity" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" } androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" } androidx-cardview = { module = "androidx.cardview:cardview", version.ref = "androidx-cardview" } androidx-compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "androidx-compose-foundation" } androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "androidx-compose-ui" } androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics", version.ref = "androidx-compose-ui" } androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintlayout" } androidx-core = { module = "androidx.core:core-ktx", version.ref = "androidx-core" } androidx-fragment = { module = "androidx.fragment:fragment-ktx", version.ref = "androidx-fragment" } androidx-fragment-compose = { module = "androidx.fragment:fragment-compose", version.ref = "androidx-fragment" } androidx-leanback-core = { module = "androidx.leanback:leanback", version.ref = "androidx-leanback" } androidx-leanback-preference = { module = "androidx.leanback:leanback-preference", version.ref = "androidx-leanback" } androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidx-lifecycle" } androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime", version.ref = "androidx-lifecycle" } androidx-lifecycle-service = { module = "androidx.lifecycle:lifecycle-service", version.ref = "androidx-lifecycle" } androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel", version.ref = "androidx-lifecycle" } androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "androidx-navigation3" } androidx-preference = { module = "androidx.preference:preference-ktx", version.ref = "androidx-preference" } androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "androidx-recyclerview" } androidx-startup = { module = "androidx.startup:startup-runtime", version.ref = "androidx-startup" } androidx-tvprovider = { module = "androidx.tvprovider:tvprovider", version.ref = "androidx-tvprovider" } androidx-window = { module = "androidx.window:window", version.ref = "androidx-window" } androidx-work-runtime = { module = "androidx.work:work-runtime", version.ref = "androidx-work" } # Dependency Injection koin-android-compat = { module = "io.insert-koin:koin-android-compat", version.ref = "koin" } koin-android-core = { module = "io.insert-koin:koin-android", version.ref = "koin" } koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin-compose" } koin-androidx-workmanager = { module = "io.insert-koin:koin-androidx-workmanager", version.ref = "koin" } # Media players androidx-media3-datasource-okhttp = { module = "androidx.media3:media3-datasource-okhttp", version.ref = "androidx-media3" } androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidx-media3" } androidx-media3-exoplayer-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "androidx-media3" } androidx-media3-session = { module = "androidx.media3:media3-session", version.ref = "androidx-media3" } androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidx-media3" } jellyfin-androidx-media3-ffmpeg-decoder = { module = "org.jellyfin.media3:media3-ffmpeg-decoder", version.ref = "jellyfin-androidx-media" } libass-media3 = { module = "io.github.peerless2012:ass-media", version.ref = "libass-android" } # Markwon markwon-core = { module = "io.noties.markwon:core", version.ref = "markwon" } markwon-html = { module = "io.noties.markwon:html", version.ref = "markwon" } # Image utility coil-core = { module = "io.coil-kt.coil3:coil-core", version.ref = "coil" } coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" } coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" } coil-gif = { module = "io.coil-kt.coil3:coil-gif", version.ref = "coil" } coil-svg = { module = "io.coil-kt.coil3:coil-svg", version.ref = "coil" } # Crash Reporting acra-core = { module = "ch.acra:acra-core", version.ref = "acra" } acra-toast = { module = "ch.acra:acra-toast", version.ref = "acra" } # Libraries aboutlibraries = { module = "com.mikepenz:aboutlibraries-core", version.ref = "aboutlibraries" } # Logging slf4j-timber = { module = "io.github.unveloper:slf4j-timber", version.ref = "slf4j-timber" } timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" } # Compatibility (desugaring) android-desugar = { module = "com.android.tools:desugar_jdk_libs", version.ref = "android-desugar" } # Test utilities kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" } kotest-assertions = { module = "io.kotest:kotest-assertions-core", version.ref = "kotest" } mockk = { module = "io.mockk:mockk", version.ref = "mockk" } [bundles] acra = [ "acra-core", "acra-toast", ] androidx-compose = [ "androidx-compose-foundation", "androidx-compose-ui-graphics", "androidx-compose-ui-tooling", ] androidx-lifecycle = [ "androidx-lifecycle-process", "androidx-lifecycle-runtime", "androidx-lifecycle-service", "androidx-lifecycle-viewmodel", ] coil = [ "coil-core", "coil-compose", "coil-network-okhttp", "coil-gif", "coil-svg", ] koin = [ "koin-android-compat", "koin-android-core", "koin-androidx-workmanager", "koin-androidx-compose", ] markwon = [ "markwon-core", "markwon-html", ]