diff --git a/app/build.gradle b/app/build.gradle index 52ab59af2..d96a47b98 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -82,86 +82,86 @@ afterEvaluate { } } dependencies { - implementation('com.github.KotatsuApp:kotatsu-parsers:d8cb38a9be') { + implementation(libs.kotatsu.parsers) { exclude group: 'org.json', module: 'json' } - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.2' - implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.0.20' - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0' + coreLibraryDesugaring libs.desugar.jdk.libs + implementation libs.kotlin.stdlib + implementation libs.kotlinx.coroutines.android - implementation 'androidx.appcompat:appcompat:1.7.0' - implementation 'androidx.core:core-ktx:1.13.1' - implementation 'androidx.activity:activity-ktx:1.9.2' - implementation 'androidx.fragment:fragment-ktx:1.8.4' - implementation 'androidx.transition:transition-ktx:1.5.1' - implementation 'androidx.collection:collection-ktx:1.4.4' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6' - implementation 'androidx.lifecycle:lifecycle-service:2.8.6' - implementation 'androidx.lifecycle:lifecycle-process:2.8.6' - implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' - implementation 'androidx.recyclerview:recyclerview:1.3.2' - implementation 'androidx.viewpager2:viewpager2:1.1.0' - implementation 'androidx.preference:preference-ktx:1.2.1' - implementation 'androidx.biometric:biometric-ktx:1.2.0-alpha05' - implementation 'com.google.android.material:material:1.12.0' - implementation 'androidx.lifecycle:lifecycle-common-java8:2.8.6' - implementation 'androidx.webkit:webkit:1.11.0' + implementation libs.appcompat + implementation libs.core.ktx + implementation libs.activity.ktx + implementation libs.fragment.ktx + implementation libs.transition.ktx + implementation libs.collection.ktx + implementation libs.lifecycle.viewmodel.ktx + implementation libs.lifecycle.service + implementation libs.lifecycle.process + implementation libs.androidx.constraintlayout + implementation libs.androidx.swiperefreshlayout + implementation libs.androidx.recyclerview + implementation libs.androidx.viewpager2 + implementation libs.androidx.preference.ktx + implementation libs.androidx.biometric.ktx + implementation libs.material + implementation libs.androidx.lifecycle.common.java8 + implementation libs.androidx.webkit - implementation 'androidx.work:work-runtime:2.9.1' + implementation libs.androidx.work.runtime //noinspection GradleDependency - implementation('com.google.guava:guava:33.2.1-android') { + implementation(libs.guava) { exclude group: 'com.google.guava', module: 'failureaccess' exclude group: 'org.checkerframework', module: 'checker-qual' exclude group: 'com.google.j2objc', module: 'j2objc-annotations' } - implementation 'androidx.room:room-runtime:2.6.1' - implementation 'androidx.room:room-ktx:2.6.1' - ksp 'androidx.room:room-compiler:2.6.1' + implementation libs.androidx.room.runtime + implementation libs.androidx.room.ktx + ksp libs.androidx.room.compiler - implementation 'com.squareup.okhttp3:okhttp:4.12.0' - implementation 'com.squareup.okhttp3:okhttp-tls:4.12.0' - implementation 'com.squareup.okhttp3:okhttp-dnsoverhttps:4.12.0' - implementation 'com.squareup.okio:okio:3.9.1' + implementation libs.okhttp + implementation libs.okhttp.tls + implementation libs.okhttp.dnsoverhttps + implementation libs.okio - implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2' - implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2' + implementation libs.adapterdelegates4.kotlin.dsl + implementation libs.adapterdelegates4.kotlin.dsl.viewbinding - implementation 'com.google.dagger:hilt-android:2.52' - kapt 'com.google.dagger:hilt-compiler:2.52' - implementation 'androidx.hilt:hilt-work:1.2.0' - kapt 'androidx.hilt:hilt-compiler:1.2.0' + implementation libs.hilt.android + kapt libs.hilt.compiler + implementation libs.androidx.hilt.work + kapt libs.androidx.hilt.compiler - implementation 'io.coil-kt:coil-base:2.7.0' - implementation 'io.coil-kt:coil-svg:2.7.0' - implementation 'com.github.KotatsuApp:subsampling-scale-image-view:e04098de68' - implementation 'com.github.solkin:disk-lru-cache:1.4' - implementation 'io.noties.markwon:core:4.6.2' + implementation libs.coil.base + implementation libs.coil.svg + implementation libs.subsampling.scale.image.view + implementation libs.disk.lru.cache + implementation libs.core - implementation 'ch.acra:acra-http:5.11.4' - implementation 'ch.acra:acra-dialog:5.11.4' + implementation libs.acra.http + implementation libs.acra.dialog - implementation 'org.conscrypt:conscrypt-android:2.5.2' + implementation libs.conscrypt.android - debugImplementation 'com.squareup.leakcanary:leakcanary-android:3.0-alpha-8' - debugImplementation 'com.github.Koitharu:WorkInspector:5778dd1747' + debugImplementation libs.leakcanary.android + debugImplementation libs.workinspector - testImplementation 'junit:junit:4.13.2' - testImplementation 'org.json:json:20240303' - testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0' + testImplementation libs.junit + testImplementation libs.json + testImplementation libs.kotlinx.coroutines.test - androidTestImplementation 'androidx.test:runner:1.6.1' - androidTestImplementation 'androidx.test:rules:1.6.1' - androidTestImplementation 'androidx.test:core-ktx:1.6.1' - androidTestImplementation 'androidx.test.ext:junit-ktx:1.2.1' + androidTestImplementation libs.androidx.runner + androidTestImplementation libs.androidx.rules + androidTestImplementation libs.androidx.core.ktx + androidTestImplementation libs.androidx.junit.ktx - androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0' + androidTestImplementation libs.kotlinx.coroutines.test - androidTestImplementation 'androidx.room:room-testing:2.6.1' - androidTestImplementation 'com.squareup.moshi:moshi-kotlin:1.15.1' + androidTestImplementation libs.androidx.room.testing + androidTestImplementation libs.moshi.kotlin - androidTestImplementation 'com.google.dagger:hilt-android-testing:2.52' - kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.52' + androidTestImplementation libs.hilt.android.testing + kaptAndroidTest libs.hilt.android.compiler } diff --git a/build.gradle b/build.gradle index 48081cc88..b73862b20 100644 --- a/build.gradle +++ b/build.gradle @@ -4,10 +4,10 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.7.0' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.20' - classpath 'com.google.dagger:hilt-android-gradle-plugin:2.52' - classpath 'com.google.devtools.ksp:symbol-processing-gradle-plugin:2.0.20-1.0.25' + classpath libs.gradle + classpath libs.kotlin.gradle.plugin + classpath libs.hilt.android.gradle.plugin + classpath libs.symbol.processing.gradle.plugin } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..186b2ec54 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,109 @@ +[versions] +acraHttp = "5.11.4" +activityKtx = "1.9.3" +adapterdelegates4KotlinDsl = "4.3.2" +appcompat = "1.7.0" +biometricKtx = "1.2.0-alpha05" +coilBase = "2.7.0" +collectionKtx = "1.4.4" +conscryptAndroid = "2.5.2" +constraintlayout = "2.1.4" +core = "4.6.2" +coreKtx = "1.13.1" +desugar_jdk_libs = "2.1.2" +diskLruCache = "1.4" +fragmentKtx = "1.8.4" +gradle = "8.7.1" +guava = "33.2.1-android" +hiltAndroid = "2.52" +hiltWork = "1.2.0" +junit = "4.13.2" +json = "20240303" +junitKtx = "1.2.1" +kotatsuParsers = "d8cb38a9be" +kotlinGradlePlugin = "2.0.20" +kotlinStdlib = "2.0.21" +kotlinxCoroutinesAndroid = "1.9.0" +leakcanaryAndroid = "3.0-alpha-8" +lifecycleViewmodelKtx = "2.8.6" +material = "1.12.0" +moshiKotlin = "1.15.1" +okhttp = "4.12.0" +okio = "3.9.1" +preferenceKtx = "1.2.1" +recyclerview = "1.3.2" +roomRuntime = "2.6.1" +runner = "1.6.2" +rules = "1.6.1" +subsamplingScaleImageView = "e04098de68" +swiperefreshlayout = "1.1.0" +symbolProcessingGradlePlugin = "2.0.21-1.0.25" +transitionKtx = "1.5.1" +viewpager2 = "1.1.0" +webkit = "1.12.1" +workinspector = "5778dd1747" +workRuntime = "2.9.1" +[libraries] +acra-dialog = { module = "ch.acra:acra-dialog", version.ref = "acraHttp" } +acra-http = { module = "ch.acra:acra-http", version.ref = "acraHttp" } +activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "activityKtx" } +adapterdelegates4-kotlin-dsl = { module = "com.hannesdorfmann:adapterdelegates4-kotlin-dsl", version.ref = "adapterdelegates4KotlinDsl" } +adapterdelegates4-kotlin-dsl-viewbinding = { module = "com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding", version.ref = "adapterdelegates4KotlinDsl" } +androidx-biometric-ktx = { module = "androidx.biometric:biometric-ktx", version.ref = "biometricKtx" } +androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } +androidx-core-ktx = { module = "androidx.test:core-ktx", version.ref = "rules" } +androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hiltWork" } +androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "hiltWork" } +androidx-junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "junitKtx" } +androidx-lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", version.ref = "lifecycleViewmodelKtx" } +androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preferenceKtx" } +androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" } +androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "roomRuntime" } +androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "roomRuntime" } +androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "roomRuntime" } +androidx-room-testing = { module = "androidx.room:room-testing", version.ref = "roomRuntime" } +androidx-rules = { module = "androidx.test:rules", version.ref = "rules" } +androidx-runner = { module = "androidx.test:runner", version.ref = "runner" } +androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "swiperefreshlayout" } +androidx-viewpager2 = { module = "androidx.viewpager2:viewpager2", version.ref = "viewpager2" } +androidx-webkit = { module = "androidx.webkit:webkit", version.ref = "webkit" } +androidx-work-runtime = { module = "androidx.work:work-runtime", version.ref = "workRuntime" } +appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } +coil-base = { module = "io.coil-kt:coil-base", version.ref = "coilBase" } +coil-svg = { module = "io.coil-kt:coil-svg", version.ref = "coilBase" } +collection-ktx = { module = "androidx.collection:collection-ktx", version.ref = "collectionKtx" } +conscrypt-android = { module = "org.conscrypt:conscrypt-android", version.ref = "conscryptAndroid" } +core = { module = "io.noties.markwon:core", version.ref = "core" } +core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" } +desugar_jdk_libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugar_jdk_libs" } +disk-lru-cache = { module = "com.github.solkin:disk-lru-cache", version.ref = "diskLruCache" } +fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragmentKtx" } +gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" } +guava = { module = "com.google.guava:guava", version.ref = "guava" } +hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hiltAndroid" } +hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hiltAndroid" } +hilt-android-gradle-plugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hiltAndroid" } +hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hiltAndroid" } +hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hiltAndroid" } +json = { module = "org.json:json", version.ref = "json" } +junit = { module = "junit:junit", version.ref = "junit" } +kotatsu-parsers = { module = "com.github.KotatsuApp:kotatsu-parsers", version.ref = "kotatsuParsers" } +kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePlugin" } +kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlinStdlib" } +kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutinesAndroid" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutinesAndroid" } +leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanaryAndroid" } +lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "lifecycleViewmodelKtx" } +lifecycle-service = { module = "androidx.lifecycle:lifecycle-service", version.ref = "lifecycleViewmodelKtx" } +lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" } +material = { module = "com.google.android.material:material", version.ref = "material" } +moshi-kotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshiKotlin" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +okhttp-dnsoverhttps = { module = "com.squareup.okhttp3:okhttp-dnsoverhttps", version.ref = "okhttp" } +okhttp-tls = { module = "com.squareup.okhttp3:okhttp-tls", version.ref = "okhttp" } +okio = { module = "com.squareup.okio:okio", version.ref = "okio" } +subsampling-scale-image-view = { module = "com.github.KotatsuApp:subsampling-scale-image-view", version.ref = "subsamplingScaleImageView" } +symbol-processing-gradle-plugin = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "symbolProcessingGradlePlugin" } +transition-ktx = { module = "androidx.transition:transition-ktx", version.ref = "transitionKtx" } +workinspector = { module = "com.github.Koitharu:WorkInspector", version.ref = "workinspector" } +[plugins]