# Judging the impact of newer library versions on the app requires being intimately familiar with the code base. # Please don't open pull requests upgrading dependencies if you're a new contributor. [versions] androidGradlePlugin = "7.4.0" ktlint = "0.48.2" kotlin = "1.8.0" kotlinCoroutines = "1.6.4" jetbrainsAnnotations = "24.0.0" androidxAppCompat = "1.6.0" androidxActivity = "1.6.1" androidxRecyclerView = "1.2.1" androidxLifecycle = "2.5.1" androidxNavigation = "2.5.3" androidxConstraintLayout = "2.1.4" androidxFragment = "1.5.5" androidxCore = "1.9.0" androidxPreference = "1.2.0" androidxDrawerLayout = "1.1.1" androidxTransition = "1.4.1" androidxComposeCompiler = "1.4.1" androidxComposeBom = "2023.01.00" fastAdapter = "5.7.0" preferencesFix = "1.1.0" timber = "5.0.1" koinCore = "3.3.2" koinAndroid = "3.3.2" mime4j = "0.8.8" okhttp = "4.10.0" glide = "4.14.2" moshi = "1.14.0" mockito = "5.0.0" [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } android-lint = { id = "com.android.lint", version.ref = "androidGradlePlugin" } ksp = "com.google.devtools.ksp:1.8.0-1.0.8" kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } spotless = "com.diffplug.spotless:6.14.0" detekt = "io.gitlab.arturbosch.detekt:1.22.0" dependency-check = "com.github.ben-manes.versions:0.46.0" [libraries] desugar = "com.android.tools:desugar_jdk_libs:1.1.8" kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinCoroutines" } kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinCoroutines" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinCoroutines" } kotlinx-datetime = "org.jetbrains.kotlinx:kotlinx-datetime:0.4.0" jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrainsAnnotations" } androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidxAppCompat" } androidx-activity = { module = "androidx.activity:activity", version.ref = "androidxActivity" } androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "androidxRecyclerView" } androidx-lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "androidxLifecycle" } androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidxLifecycle" } androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" } androidx-annotation = "androidx.annotation:annotation:1.5.0" androidx-biometric = "androidx.biometric:biometric:1.1.0" androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment", version.ref = "androidxNavigation" } androidx-navigation-ui = { module = "androidx.navigation:navigation-ui", version.ref = "androidxNavigation" } androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidxConstraintLayout" } androidx-work-ktx = "androidx.work:work-runtime-ktx:2.7.1" androidx-fragment = { module = "androidx.fragment:fragment", version.ref = "androidxFragment" } androidx-localbroadcastmanager = "androidx.localbroadcastmanager:localbroadcastmanager:1.1.0" androidx-core = { module = "androidx.core:core", version.ref = "androidxCore" } androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxCore" } androidx-preference = { module = "androidx.preference:preference", version.ref = "androidxPreference" } androidx-swiperefreshlayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" androidx-compose-activity = "androidx.activity:activity-compose:1.6.1" androidx-compose-lifecycle-viewmodel = "androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1" androidx-compose-material = "androidx.compose.material:material:1.3.1" androidx-test-core = "androidx.test:core:1.5.0" androidx-test-ext-junit-ktx = "androidx.test.ext:junit-ktx:1.1.5" androidx-test-espresso-core = "androidx.test.espresso:espresso-core:3.5.1" android-material = "com.google.android.material:material:1.7.0" fastadapter = { module = "com.mikepenz:fastadapter", version.ref = "fastAdapter" } fastadapter-extensions-drag = { module = "com.mikepenz:fastadapter-extensions-drag", version.ref = "fastAdapter" } fastadapter-extensions-utils = { module = "com.mikepenz:fastadapter-extensions-utils", version.ref = "fastAdapter" } materialdrawer = "com.mikepenz:materialdrawer:8.4.5" preferencex = { module = "com.takisoft.preferencex:preferencex", version.ref = "preferencesFix" } preferencex-datetimepicker = { module = "com.takisoft.preferencex:preferencex-datetimepicker", version.ref = "preferencesFix" } preferencex-colorpicker = { module = "com.takisoft.preferencex:preferencex-colorpicker", version.ref = "preferencesFix" } okio = "com.squareup.okio:okio:3.3.0" moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } moshi-kotlin-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi" } timber = "com.jakewharton.timber:timber:5.0.1" koin-core = { module = "io.insert-koin:koin-core", version.ref = "koinCore" } koin-android = { module = "io.insert-koin:koin-android", version.ref = "koinAndroid" } koin-test = { module = "io.insert-koin:koin-test", version.ref = "koinCore" } koin-test-junit4 = { module = "io.insert-koin:koin-test-junit4", version.ref = "koinCore" } commons-io = "commons-io:commons-io:2.11.0" mime4j-core = { module = "org.apache.james:apache-mime4j-core", version.ref = "mime4j" } mime4j-dom = { module = "org.apache.james:apache-mime4j-dom", version.ref = "mime4j" } okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" } minidns-hla = "org.minidns:minidns-hla:1.0.4" glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } glide-compiler = { module = "com.github.bumptech.glide:compiler", version.ref = "glide" } jsoup = "org.jsoup:jsoup:1.15.3" apache-httpclient = "org.apache.httpcomponents:httpclient:4.5.13" apache-httpclient5 = "org.apache.httpcomponents.client5:httpclient5:5.1.3" clikt = "com.github.ajalt.clikt:clikt:3.5.1" jzlib = "com.jcraft:jzlib:1.0.7" jutf7 = "com.beetstra.jutf7:jutf7:1.0.0" jcip-annotations = "net.jcip:jcip-annotations:1.0" jmap-client = "rs.ltt.jmap:jmap-client:0.3.1" circleimageview = "de.hdodenhof:circleimageview:3.1.0" appauth = "net.openid:appauth:0.11.1" searchPreference = "com.github.ByteHamster:SearchPreference:v2.3.0" safeContentResolver = "de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0" tokenautocomplete = "com.splitwise:tokenautocomplete:4.0.0-beta01" ckchangelog-core = "de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02" xmlpull = "com.github.cketti:xmlpull-extracted-from-android:1.0" kxml2 = "com.github.cketti:kxml2-extracted-from-android:1.0" junit = "junit:junit:4.13.2" robolectric = "org.robolectric:robolectric:4.9.2" mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" } mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito" } mockito-kotlin = "org.mockito.kotlin:mockito-kotlin:4.1.0" truth = "com.google.truth:truth:1.1.3" turbine = "app.cash.turbine:turbine:0.12.1" jdom2 = "org.jdom:jdom2:2.0.6.1" icu4j-charset = "com.ibm.icu:icu4j-charset:72.1" assertk = "com.willowtreeapps.assertk:assertk-jvm:0.25" leakcanary-android = "com.squareup.leakcanary:leakcanary-android:2.9.1" detekt-plugin-compose = "io.nlopez.compose.rules:detekt:0.1.1" [bundles] shared-jvm-main = [ "kotlinx-datetime", ] shared-jvm-test = [ "junit", "truth", "assertk", "mockito-inline", "mockito-kotlin", "koin-test", "koin-test-junit4", ]