# 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] java = "11" androidGradlePlugin = "7.4.0" ktlint = "0.44.0" 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" fastAdapter = "5.7.0" preferencesFix = "1.1.0" timber = "5.0.1" koin = "3.2.2" mime4j = "0.8.6" okhttp = "4.10.0" glide = "4.14.2" moshi = "1.14.0" mockito = "4.8.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" } ktlint = "org.jlleitschuh.gradle.ktlint:11.0.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" } 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-cardview = "androidx.cardview:cardview:1.0.0" androidx-preference = { module = "androidx.preference:preference", version.ref = "androidxPreference" } androidx-swiperefreshlayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" androidx-test-core = "androidx.test:core:1.5.0" 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.2.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 = "koin" } koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" } koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin" } koin-test-junit4 = { module = "io.insert-koin:koin-test-junit4", version.ref = "koin" } # We can't upgrade Commons IO beyond this version because starting with 2.7 it is using Java 8 API # that is not available until Android API 26 (even with desugaring enabled). # See https://issuetracker.google.com/issues/160484830 commons-io = "commons-io:commons-io:2.6" 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.4.0" 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" 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.0.0" truth = "com.google.truth:truth:1.1.3" turbine = "app.cash.turbine:turbine:0.11.0" jdom2 = "org.jdom:jdom2:2.0.6" icu4j-charset = "com.ibm.icu:icu4j-charset:70.1" leakcanary-android = "com.squareup.leakcanary:leakcanary-android:2.9.1"