diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 48604d3c1..b1f186d64 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -177,94 +177,93 @@ dependencies { implementation(projects.presentationWidget) // Compose - implementation(compose.activity) - implementation(compose.foundation) - implementation(compose.material3.core) - implementation(compose.material.icons) - implementation(compose.animation) - implementation(compose.animation.graphics) - debugImplementation(compose.ui.tooling) - implementation(compose.ui.tooling.preview) - implementation(compose.ui.util) + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.compose.foundation) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.compose.materialIcons) + implementation(libs.androidx.compose.animation) + implementation(libs.androidx.compose.animationGraphics) + debugImplementation(libs.androidx.compose.uiTooling) + implementation(libs.androidx.compose.uiToolingPreview) + implementation(libs.androidx.compose.uiUtil) - implementation(androidx.interpolator) + implementation(libs.androidx.interpolator) - implementation(androidx.paging.runtime) - implementation(androidx.paging.compose) + implementation(libs.androidx.paging.runtime) + implementation(libs.androidx.paging.compose) - implementation(androidx.sqlite.bundled) + implementation(libs.androidx.sqlite.bundled) // SY --> implementation(sylibs.sqlcipher) // SY <-- - implementation(kotlinx.reflect) - implementation(kotlinx.immutables) - implementation(platform(kotlinx.coroutines.bom)) - implementation(kotlinx.bundles.coroutines) + implementation(libs.kotlin.reflect) + implementation(libs.kotlinx.collections.immutable) + + implementation(libs.bundles.kotlinx.coroutines) // AndroidX libraries - implementation(androidx.annotation) - implementation(androidx.appcompat) - implementation(androidx.biometricktx) - implementation(androidx.constraintlayout) - implementation(androidx.corektx) - implementation(androidx.splashscreen) - implementation(androidx.recyclerview) - implementation(androidx.viewpager) - implementation(androidx.profileinstaller) + implementation(libs.androidx.annotation) + implementation(libs.androidx.appCompat) + implementation(libs.androidx.biometric) + implementation(libs.androidx.constraintLayout) + implementation(libs.androidx.core) + implementation(libs.androidx.coreSplashScreen) + implementation(libs.androidx.recyclerView) + implementation(libs.androidx.viewPager) + implementation(libs.androidx.profileInstaller) - implementation(androidx.bundles.lifecycle) + implementation(libs.bundles.androidx.lifecycle) // Job scheduling - implementation(androidx.workmanager) + implementation(libs.androidx.work) // RxJava - implementation(libs.rxjava) + implementation(libs.rxJava) // Networking implementation(libs.bundles.okhttp) implementation(libs.okio) - implementation(libs.conscrypt.android) // TLS 1.3 support for Android < 10 + implementation(libs.conscrypt) // TLS 1.3 support for Android < 10 // Data serialization (JSON, protobuf, xml) - implementation(kotlinx.bundles.serialization) + implementation(libs.bundles.serialization) // HTML parser implementation(libs.jsoup) // Disk - implementation(libs.disklrucache) + implementation(libs.diskLruCache) implementation(libs.unifile) // Preferences - implementation(libs.preferencektx) + implementation(libs.androidx.preference) // Dependency injection implementation(libs.injekt) // Image loading - implementation(platform(libs.coil.bom)) implementation(libs.bundles.coil) - implementation(libs.subsamplingscaleimageview) { + implementation(libs.subsamplingScaleImageView) { exclude(module = "image-decoder") } implementation(libs.image.decoder) // UI libraries implementation(libs.material) - implementation(libs.flexible.adapter.core) - implementation(libs.photoview) - implementation(libs.directionalviewpager) { + implementation(libs.flexibleAdapter) + implementation(libs.photoView) + implementation(libs.directionalViewPager) { exclude(group = "androidx.viewpager", module = "viewpager") } - implementation(libs.richeditor.compose) + implementation(libs.composeRichEditor) implementation(libs.aboutLibraries.compose) implementation(libs.bundles.voyager) - implementation(libs.compose.materialmotion) + implementation(libs.composeMaterialMotion) implementation(libs.swipe) - implementation(libs.compose.webview) - implementation(libs.compose.grid) + implementation(libs.composeWebview) + implementation(libs.composeGrid) implementation(libs.reorderable) implementation(libs.bundles.markdown) implementation(libs.materialKolor) @@ -288,10 +287,10 @@ dependencies { testRuntimeOnly(libs.junit.platform.launcher) // For detecting memory leaks; see https://square.github.io/leakcanary/ - // debugImplementation(libs.leakcanary.android) - implementation(libs.leakcanary.plumber) + // debugImplementation(libs.leakCanary.android) + implementation(libs.leakCanary.plumber) - testImplementation(kotlinx.coroutines.test) + testImplementation(libs.kotlinx.coroutines.test) // SY --> // Firebase (EH) @@ -328,6 +327,6 @@ androidComponents { buildscript { dependencies { - classpath(kotlinx.gradle) + classpath(libs.kotlin.gradle) } } diff --git a/build.gradle.kts b/build.gradle.kts index b223d0e1b..5e7019c2e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,11 +6,11 @@ buildscript { } plugins { - alias(kotlinx.plugins.serialization) apply false + alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.aboutLibraries) apply false alias(libs.plugins.firebase.crashlytics) apply false alias(libs.plugins.google.services) apply false - alias(libs.plugins.moko) apply false + alias(libs.plugins.moko.resources) apply false alias(libs.plugins.sqldelight) apply false } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 5ed94c26b..9b565a5d4 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -3,16 +3,13 @@ plugins { } dependencies { - implementation(androidx.gradle) - implementation(kotlinx.gradle) - implementation(kotlinx.compose.compiler.gradle) + implementation(libs.android.gradle) + implementation(libs.kotlin.gradle) + implementation(libs.kotlin.compose.compiler.gradle) implementation(libs.spotless.gradle) implementation(gradleApi()) implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) - implementation(files(androidx.javaClass.superclass.protectionDomain.codeSource.location)) - implementation(files(compose.javaClass.superclass.protectionDomain.codeSource.location)) - implementation(files(kotlinx.javaClass.superclass.protectionDomain.codeSource.location)) } repositories { diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts index e45d92988..5a4234bad 100644 --- a/buildSrc/settings.gradle.kts +++ b/buildSrc/settings.gradle.kts @@ -3,15 +3,6 @@ dependencyResolutionManagement { create("libs") { from(files("../gradle/libs.versions.toml")) } - create("androidx") { - from(files("../gradle/androidx.versions.toml")) - } - create("compose") { - from(files("../gradle/compose.versions.toml")) - } - create("kotlinx") { - from(files("../gradle/kotlinx.versions.toml")) - } } } diff --git a/buildSrc/src/main/kotlin/mihon.code.lint.gradle.kts b/buildSrc/src/main/kotlin/mihon.code.lint.gradle.kts index 99c3e99a1..ad36c0334 100644 --- a/buildSrc/src/main/kotlin/mihon.code.lint.gradle.kts +++ b/buildSrc/src/main/kotlin/mihon.code.lint.gradle.kts @@ -22,7 +22,7 @@ spotless { kotlin { target("**/*.kt", "**/*.kts") targetExclude("**/build/**/*.kt") - ktlint(libs.ktlint.core.get().version) + ktlint(libs.ktlint.bom.get().version) trimTrailingWhitespace() endWithNewline() } diff --git a/buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt b/buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt index a4f5577d3..572936bd0 100644 --- a/buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt +++ b/buildSrc/src/main/kotlin/mihon/buildlogic/ProjectExtensions.kt @@ -1,9 +1,6 @@ package mihon.buildlogic import com.android.build.api.dsl.CommonExtension -import org.gradle.accessors.dm.LibrariesForAndroidx -import org.gradle.accessors.dm.LibrariesForCompose -import org.gradle.accessors.dm.LibrariesForKotlinx import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.api.Project import org.gradle.api.tasks.testing.Test @@ -17,9 +14,6 @@ import org.jetbrains.kotlin.compose.compiler.gradle.ComposeCompilerGradlePluginE import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.io.File -val Project.androidx get() = the() -val Project.compose get() = the() -val Project.kotlinx get() = the() val Project.libs get() = the() internal fun Project.configureAndroid(commonExtension: CommonExtension<*, *, *, *, *, *>) { @@ -54,12 +48,12 @@ internal fun Project.configureAndroid(commonExtension: CommonExtension<*, *, *, } dependencies { - "coreLibraryDesugaring"(libs.desugar) + "coreLibraryDesugaring"(libs.android.desugar) } } internal fun Project.configureCompose(commonExtension: CommonExtension<*, *, *, *, *, *>) { - pluginManager.apply(kotlinx.plugins.compose.compiler.get().pluginId) + pluginManager.apply(libs.plugins.kotlin.compose.compiler.get().pluginId) commonExtension.apply { buildFeatures { @@ -67,7 +61,7 @@ internal fun Project.configureCompose(commonExtension: CommonExtension<*, *, *, } dependencies { - "implementation"(platform(compose.bom)) + "implementation"(platform(libs.androidx.compose.bom)) } } diff --git a/core-metadata/build.gradle.kts b/core-metadata/build.gradle.kts index dfb3c1943..358d4f6d0 100644 --- a/core-metadata/build.gradle.kts +++ b/core-metadata/build.gradle.kts @@ -16,5 +16,5 @@ android { dependencies { implementation(projects.sourceApi) - implementation(kotlinx.bundles.serialization) + implementation(libs.bundles.serialization) } diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index 8d6b01cf3..ea4b3c300 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -26,24 +26,24 @@ dependencies { api(libs.logcat) - api(libs.rxjava) + api(libs.rxJava) api(libs.okhttp.core) api(libs.okhttp.logging) api(libs.okhttp.brotli) - api(libs.okhttp.dnsoverhttps) + api(libs.okhttp.dnsOverHttps) api(libs.okio) implementation(libs.image.decoder) implementation(libs.unifile) - implementation(libs.libarchive) + implementation(libs.archive) - api(kotlinx.coroutines.core) - api(kotlinx.serialization.json) - api(kotlinx.serialization.json.okio) + api(libs.kotlinx.coroutines.core) + api(libs.kotlinx.serialization.json) + api(libs.kotlinx.serialization.jsonOkio) - api(libs.preferencektx) + api(libs.androidx.preference) implementation(libs.jsoup) @@ -51,7 +51,7 @@ dependencies { implementation(libs.natural.comparator) // JavaScript engine - implementation(libs.bundles.js.engine) + implementation(libs.quickJs) testImplementation(libs.bundles.test) testRuntimeOnly(libs.junit.platform.launcher) diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 552bae9b3..3e4abe5f8 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -16,7 +16,7 @@ android { databases { create("Database") { packageName.set("tachiyomi.data") - dialect(libs.sqldelight.dialects.sql) + dialect(libs.sqldelight.sqliteDialect338) schemaOutputDirectory.set(project.file("./src/main/sqldelight")) } } diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 63e5fbe68..8caca3222 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -23,21 +23,20 @@ dependencies { implementation(projects.sourceApi) implementation(projects.core.common) - implementation(platform(kotlinx.coroutines.bom)) - implementation(kotlinx.bundles.coroutines) - implementation(kotlinx.bundles.serialization) + implementation(libs.bundles.kotlinx.coroutines) + implementation(libs.bundles.serialization) implementation(libs.unifile) - api(libs.sqldelight.android.paging) + api(libs.sqldelight.androidxPaging) - compileOnly(compose.runtime.annotation) + compileOnly(libs.androidx.compose.runtimeAnnotation) // SY --> implementation(libs.injekt) // SY <-- testImplementation(libs.bundles.test) - testImplementation(kotlinx.coroutines.test) + testImplementation(libs.kotlinx.coroutines.test) testRuntimeOnly(libs.junit.platform.launcher) } diff --git a/gradle/androidx.versions.toml b/gradle/androidx.versions.toml deleted file mode 100644 index 43296b647..000000000 --- a/gradle/androidx.versions.toml +++ /dev/null @@ -1,40 +0,0 @@ -[versions] -agp_version = "8.13.2" -lifecycle_version = "2.10.0" -paging_version = "3.4.2" -interpolator_version = "1.0.0" -sqlite = "2.6.2" - -[libraries] -gradle = { module = "com.android.tools.build:gradle", version.ref = "agp_version" } - -annotation = "androidx.annotation:annotation:1.9.1" -appcompat = "androidx.appcompat:appcompat:1.7.1" -biometricktx = "androidx.biometric:biometric-ktx:1.2.0-alpha05" -constraintlayout = "androidx.constraintlayout:constraintlayout:2.2.1" -corektx = "androidx.core:core-ktx:1.18.0" -splashscreen = "androidx.core:core-splashscreen:1.2.0" -recyclerview = "androidx.recyclerview:recyclerview:1.4.0" -viewpager = "androidx.viewpager:viewpager:1.1.0" -profileinstaller = "androidx.profileinstaller:profileinstaller:1.4.1" - -lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "lifecycle_version" } -lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "lifecycle_version" } -lifecycle-runtimektx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle_version" } - -workmanager = "androidx.work:work-runtime:2.11.1" - -paging-runtime = { module = "androidx.paging:paging-runtime", version.ref = "paging_version" } -paging-compose = { module = "androidx.paging:paging-compose", version.ref = "paging_version" } - -interpolator = { group = "androidx.interpolator", name = "interpolator", version.ref = "interpolator_version" } - -benchmark-macro = "androidx.benchmark:benchmark-macro-junit4:1.4.1" -test-ext = "androidx.test.ext:junit-ktx:1.3.0" -test-espresso-core = "androidx.test.espresso:espresso-core:3.7.0" -test-uiautomator = "androidx.test.uiautomator:uiautomator:2.3.0" - -sqlite-bundled = { module = "androidx.sqlite:sqlite-bundled", version.ref = "sqlite" } - -[bundles] -lifecycle = ["lifecycle-common", "lifecycle-process", "lifecycle-runtimektx"] diff --git a/gradle/compose.versions.toml b/gradle/compose.versions.toml deleted file mode 100644 index 03f7285aa..000000000 --- a/gradle/compose.versions.toml +++ /dev/null @@ -1,19 +0,0 @@ -[versions] -compose-bom = "2026.03.00" - -[libraries] -activity = "androidx.activity:activity-compose:1.13.0" -bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" } -foundation = { module = "androidx.compose.foundation:foundation" } -animation = { module = "androidx.compose.animation:animation" } -animation-graphics = { module = "androidx.compose.animation:animation-graphics" } -runtime = { module = "androidx.compose.runtime:runtime" } -runtime-annotation = { module = "androidx.compose.runtime:runtime-annotation" } -ui-tooling = { module = "androidx.compose.ui:ui-tooling" } -ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } -ui-util = { module = "androidx.compose.ui:ui-util" } - -material3-core = { module = "androidx.compose.material3:material3" } -material-icons = { module = "androidx.compose.material:material-icons-extended" } - -glance = "androidx.glance:glance-appwidget:1.1.1" diff --git a/gradle/kotlinx.versions.toml b/gradle/kotlinx.versions.toml deleted file mode 100644 index 83ea539e8..000000000 --- a/gradle/kotlinx.versions.toml +++ /dev/null @@ -1,33 +0,0 @@ -[versions] -kotlin_version = "2.3.20" -serialization_version = "1.10.0" -xml_serialization_version = "0.91.3" - -[libraries] -reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin_version" } -gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin_version" } -compose-compiler-gradle = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin_version" } - -immutables = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version = "0.4.0" } - -coroutines-bom = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-bom", version = "1.10.2" } -coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core" } -coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android" } -coroutines-guava = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-guava" } -coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test" } - -serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization_version" } -serialization-json-okio = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json-okio", version.ref = "serialization_version" } -serialization-protobuf = { module = "org.jetbrains.kotlinx:kotlinx-serialization-protobuf", version.ref = "serialization_version" } - -serialization-xml-core = { module = "io.github.pdvrieze.xmlutil:core-android", version.ref = "xml_serialization_version" } -serialization-xml = { module = "io.github.pdvrieze.xmlutil:serialization", version.ref = "xml_serialization_version" } - -[bundles] -coroutines = ["coroutines-core", "coroutines-android", "coroutines-guava"] -serialization = ["serialization-json", "serialization-json-okio", "serialization-protobuf", "serialization-xml-core", "serialization-xml"] - -[plugins] -android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin_version" } -compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin_version" } -serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin_version" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bf4ea0eea..2f072716a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,123 +1,207 @@ [versions] -aboutlib_version = "13.2.1" -leakcanary = "2.14" -moko = "0.26.1" -okhttp_version = "5.3.2" -shizuku_version = "13.1.5" -sqldelight = "2.3.2" -voyager = "1.1.0-beta03" -spotless = "8.4.0" -ktlint-core = "1.8.0" +aboutLibraries = "13.2.1" +android-desugar = "2.1.5" +android-gradle = "8.13.2" +android-shortcut = "0.1.2" +androidx-activity-compose = "1.13.0" +androidx-annotation = "1.9.1" +androidx-appCompat = "1.7.1" +androidx-benchmark = "1.4.1" +androidx-biometric = "1.2.0-alpha05" +androidx-compose-bom = "2026.03.00" +androidx-constraintLayout = "2.2.1" +androidx-core = "1.18.0" +androidx-coreSplashScreen = "1.2.0" +androidx-glance = "1.1.1" +androidx-interpolator = "1.0.0" +androidx-lifecycle = "2.10.0" +androidx-paging = "3.4.2" +androidx-preference = "1.2.1" +androidx-profileInstaller = "1.4.1" +androidx-recyclerView = "1.4.0" +androidx-sqlite = "2.6.2" +androidx-test-espresso = "3.7.0" +androidx-test-junit = "1.3.0" +androidx-test-uiautomator = "2.3.0" +androidx-viewPager = "1.1.0" +androidx-work = "2.11.1" +archive = "1.1.6" +coil = "3.4.0" +composeGrid = "1.2.2" +composeMaterialMotion = "2.0.1" +composeRichEditor = "1.0.0-rc13" +composeWebview = "0.33.6" +conscrypt = "2.5.3" +directionalViewPager = "1.0.0" +diskLruCache = "2.0.2" firebase-bom = "34.11.0" -markdown = "0.39.2" +firebase-crashlytics = "3.0.6" +flexibleAdapter = "c8013533" +google-services = "4.4.4" +image-decoder = "41c059e540" +injekt = "ee267b2e27" +jsoup = "1.22.1" junit = "6.0.3" +kotest-assertions = "6.1.7" +kotlin-gradle = "2.3.20" +kotlinx-collections-immutable = "0.4.0" +kotlinx-coroutines = "1.10.2" +kotlinx-serialization = "1.10.0" +ktlint = "1.8.0" +leakCanary = "2.14" +logcat = "0.4" +markdown = "0.39.2" +material = "1.12.0" materialKolor = "5.0.0-alpha07" +mockk = "1.14.9" +moko-resources = "0.26.1" +okhttp = "5.3.2" +okio = "3.17.0" +photoView = "2.3.0" +quickJs = "547f5b1597" +reorderable = "3.0.0" +rxJava = "1.3.8" +shizuku = "13.1.5" +spotless = "8.4.0" +sqldelight = "2.3.2" +sqldelight-androidx-driver = "0.0.17" +stringSimilarity = "0.1.0" +subsamplingScaleImageView = "66e0db195d" +swipe = "1.3.0" +unifile = "e0def6b3dc" +voyager = "1.1.0-beta03" +xmlutil = "0.91.3" [libraries] -desugar = "com.android.tools:desugar_jdk_libs:2.1.5" -android-shortcut-gradle = "com.github.zellius:android-shortcut-gradle-plugin:0.1.2" - -rxjava = "io.reactivex:rxjava:1.3.8" - -okhttp-core = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp_version" } -okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp_version" } -okhttp-brotli = { module = "com.squareup.okhttp3:okhttp-brotli", version.ref = "okhttp_version" } -okhttp-dnsoverhttps = { module = "com.squareup.okhttp3:okhttp-dnsoverhttps", version.ref = "okhttp_version" } -okio = "com.squareup.okio:okio:3.17.0" - -conscrypt-android = "org.conscrypt:conscrypt-android:2.5.3" - -quickjs-android = { group = "com.github.zhanghai.quickjs-java", name = "quickjs-android", version = "547f5b1597" } - -jsoup = "org.jsoup:jsoup:1.22.1" - -disklrucache = "com.jakewharton:disklrucache:2.0.2" -unifile = "com.github.tachiyomiorg:unifile:e0def6b3dc" -libarchive = "me.zhanghai.android.libarchive:library:1.1.6" - -preferencektx = "androidx.preference:preference-ktx:1.2.1" - -injekt = "com.github.null2264:injekt-koin:ee267b2e27" - -coil-bom = { module = "io.coil-kt.coil3:coil-bom", version = "3.4.0" } -coil-core = { module = "io.coil-kt.coil3:coil" } -coil-gif = { module = "io.coil-kt.coil3:coil-gif" } -coil-compose = { module = "io.coil-kt.coil3:coil-compose" } -coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp" } - -subsamplingscaleimageview = "com.github.tachiyomiorg:subsampling-scale-image-view:66e0db195d" -image-decoder = "com.github.tachiyomiorg:image-decoder:41c059e540" - -natural-comparator = "com.github.gpanther:java-nat-sort:natural-comparator-1.1" - -richeditor-compose = "com.mohamedrejeb.richeditor:richeditor-compose:1.0.0-rc13" - -material = "com.google.android.material:material:1.12.0" -flexible-adapter-core = "com.github.arkon.FlexibleAdapter:flexible-adapter:c8013533" -photoview = "com.github.chrisbanes:PhotoView:2.3.0" -directionalviewpager = "com.github.tachiyomiorg:DirectionalViewPager:1.0.0" -compose-materialmotion = "io.github.fornewid:material-motion-compose-core:2.0.1" -compose-webview = "io.github.kevinnzou:compose-webview:0.33.6" -compose-grid = "io.woong.compose.grid:grid:1.2.2" -reorderable = { module = "sh.calvin.reorderable:reorderable", version = "3.0.0" } - -swipe = "me.saket.swipe:swipe:1.3.0" - -moko-core = { module = "dev.icerock.moko:resources", version.ref = "moko" } - -logcat = "com.squareup.logcat:logcat:0.4" - -firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebase-bom" } +aboutLibraries-compose = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "aboutLibraries" } +android-desugar = { module = "com.android.tools:desugar_jdk_libs", version.ref = "android-desugar" } +android-gradle = { module = "com.android.tools.build:gradle", version.ref = "android-gradle" } +android-shortcut-gradle = { module = "com.github.zellius:android-shortcut-gradle-plugin", version.ref = "android-shortcut" } +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" } +androidx-annotation = { module = "androidx.annotation:annotation", version.ref = "androidx-annotation" } +androidx-appCompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appCompat" } +androidx-benchmark-macroJunit4 = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "androidx-benchmark" } +androidx-biometric = { module = "androidx.biometric:biometric-ktx", version.ref = "androidx-biometric" } +androidx-compose-animation = { module = "androidx.compose.animation:animation" } +androidx-compose-animationGraphics = { module = "androidx.compose.animation:animation-graphics" } +androidx-compose-bom = { module = "androidx.compose:compose-bom-beta", version.ref = "androidx-compose-bom" } +androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" } +androidx-compose-material3 = { module = "androidx.compose.material3:material3" } +androidx-compose-materialIcons = { module = "androidx.compose.material:material-icons-extended" } +androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } +androidx-compose-runtimeAnnotation = { module = "androidx.compose.runtime:runtime-annotation" } +androidx-compose-uiTooling = { module = "androidx.compose.ui:ui-tooling" } +androidx-compose-uiToolingPreview = { module = "androidx.compose.ui:ui-tooling-preview" } +androidx-compose-uiUtil = { module = "androidx.compose.ui:ui-util" } +androidx-constraintLayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintLayout" } +androidx-core = { module = "androidx.core:core-ktx", version.ref = "androidx-core" } +androidx-coreSplashScreen = { module = "androidx.core:core-splashscreen", version.ref = "androidx-coreSplashScreen" } +androidx-glance-appWidget = { module = "androidx.glance:glance-appwidget", version.ref = "androidx-glance" } +androidx-interpolator = { module = "androidx.interpolator:interpolator", version.ref = "androidx-interpolator" } +androidx-lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "androidx-lifecycle" } +androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidx-lifecycle" } +androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" } +androidx-paging-compose = { module = "androidx.paging:paging-compose", version.ref = "androidx-paging" } +androidx-paging-runtime = { module = "androidx.paging:paging-runtime", version.ref = "androidx-paging" } +androidx-preference = { module = "androidx.preference:preference-ktx", version.ref = "androidx-preference" } +androidx-profileInstaller = { module = "androidx.profileinstaller:profileinstaller", version.ref = "androidx-profileInstaller" } +androidx-recyclerView = { module = "androidx.recyclerview:recyclerview", version.ref = "androidx-recyclerView" } +androidx-sqlite-bundled = { module = "androidx.sqlite:sqlite-bundled", version.ref = "androidx-sqlite" } +androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-test-espresso" } +androidx-test-junit = { module = "androidx.test.ext:junit-ktx", version.ref = "androidx-test-junit" } +androidx-test-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "androidx-test-uiautomator" } +androidx-viewPager = { module = "androidx.viewpager:viewpager", version.ref = "androidx-viewPager" } +androidx-work = { module = "androidx.work:work-runtime", version.ref = "androidx-work" } +archive = { module = "me.zhanghai.android.libarchive:library", version.ref = "archive" } +coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" } +coil-core = { module = "io.coil-kt.coil3:coil", version.ref = "coil" } +coil-gif = { module = "io.coil-kt.coil3:coil-gif", version.ref = "coil" } +coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" } +composeGrid = { module = "io.woong.compose.grid:grid", version.ref = "composeGrid" } +composeMaterialMotion = { module = "io.github.fornewid:material-motion-compose-core", version.ref = "composeMaterialMotion" } +composeRichEditor = { module = "com.mohamedrejeb.richeditor:richeditor-compose", version.ref = "composeRichEditor" } +composeWebview = { module = "io.github.kevinnzou:compose-webview", version.ref = "composeWebview" } +conscrypt = { module = "org.conscrypt:conscrypt-android", version.ref = "conscrypt" } +directionalViewPager = { module = "com.github.tachiyomiorg:DirectionalViewPager", version.ref = "directionalViewPager" } +diskLruCache = { module = "com.jakewharton:disklrucache", version.ref = "diskLruCache" } firebase-analytics = { module = "com.google.firebase:firebase-analytics" } +firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebase-bom" } firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics" } - -aboutLibraries-compose = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "aboutlib_version" } - -shizuku-api = { module = "dev.rikka.shizuku:api", version.ref = "shizuku_version" } -shizuku-provider = { module = "dev.rikka.shizuku:provider", version.ref = "shizuku_version" } - -leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" } -leakcanary-plumber = { module = "com.squareup.leakcanary:plumber-android", version.ref = "leakcanary" } - -sqldelight-android-driver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } -sqldelight-androidx-driver = { module = "com.eygraber:sqldelight-androidx-driver", version = "0.0.17" } -sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" } -sqldelight-android-paging = { module = "app.cash.sqldelight:androidx-paging3-extensions", version.ref = "sqldelight" } -sqldelight-dialects-sql = { module = "app.cash.sqldelight:sqlite-3-38-dialect", version.ref = "sqldelight" } - +flexibleAdapter = { module = "com.github.arkon.FlexibleAdapter:flexible-adapter", version.ref = "flexibleAdapter" } +image-decoder = { module = "com.github.tachiyomiorg:image-decoder", version.ref = "image-decoder" } +injekt = { module = "com.github.null2264:injekt-koin", version.ref = "injekt" } +jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" } -kotest-assertions = "io.kotest:kotest-assertions-core:6.1.7" -mockk = "io.mockk:mockk:1.14.9" - -voyager-navigator = { module = "cafe.adriel.voyager:voyager-navigator", version.ref = "voyager" } -voyager-screenmodel = { module = "cafe.adriel.voyager:voyager-screenmodel", version.ref = "voyager" } -voyager-tab-navigator = { module = "cafe.adriel.voyager:voyager-tab-navigator", version.ref = "voyager" } -voyager-transitions = { module = "cafe.adriel.voyager:voyager-transitions", version.ref = "voyager" } - -spotless-gradle = { group = "com.diffplug.spotless", name = "spotless-plugin-gradle", version.ref = "spotless" } -ktlint-core = { module = "com.pinterest.ktlint:ktlint-cli", version.ref = "ktlint-core" } - -markdown-core = { module = "com.mikepenz:multiplatform-markdown-renderer", version.ref = "markdown" } +kotest-assertions = { module = "io.kotest:kotest-assertions-core", version.ref = "kotest-assertions" } +kotlin-compose-compiler-gradle = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin-gradle" } +kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin-gradle" } +kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin-gradle" } +kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinx-collections-immutable" } +kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } +kotlinx-coroutines-guava = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-guava", version.ref = "kotlinx-coroutines" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } +kotlinx-serialization-jsonOkio = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json-okio", version.ref = "kotlinx-serialization" } +kotlinx-serialization-protobuf = { module = "org.jetbrains.kotlinx:kotlinx-serialization-protobuf", version.ref = "kotlinx-serialization" } +ktlint-bom = { module = "com.pinterest.ktlint:ktlint-bom", version.ref = "ktlint" } +leakCanary-core = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakCanary" } +leakCanary-plumber = { module = "com.squareup.leakcanary:plumber-android", version.ref = "leakCanary" } +logcat = { module = "com.squareup.logcat:logcat", version.ref = "logcat" } markdown-coil = { module = "com.mikepenz:multiplatform-markdown-renderer-coil3", version.ref = "markdown" } - -stringSimilarity = { module = "com.aallam.similarity:string-similarity-kotlin", version = "0.1.0" } - +markdown-core = { module = "com.mikepenz:multiplatform-markdown-renderer", version.ref = "markdown" } +material = { module = "com.google.android.material:material", version.ref = "material" } materialKolor = { module = "com.materialkolor:material-kolor", version.ref = "materialKolor" } +mockk = { module = "io.mockk:mockk", version.ref = "mockk" } +moko-resources = { module = "dev.icerock.moko:resources", version.ref = "moko-resources" } +natural-comparator = { module = "com.github.gpanther:java-nat-sort", version = "natural-comparator-1.1" } +okhttp-brotli = { module = "com.squareup.okhttp3:okhttp-brotli", version.ref = "okhttp" } +okhttp-core = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +okhttp-dnsOverHttps = { module = "com.squareup.okhttp3:okhttp-dnsoverhttps", version.ref = "okhttp" } +okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } +okio = { module = "com.squareup.okio:okio", version.ref = "okio" } +photoView = { module = "com.github.chrisbanes:PhotoView", version.ref = "photoView" } +quickJs = { module = "com.github.zhanghai.quickjs-java:quickjs-android", version.ref = "quickJs" } +reorderable = { module = "sh.calvin.reorderable:reorderable", version.ref = "reorderable" } +rxJava = { module = "io.reactivex:rxjava", version.ref = "rxJava" } +shizuku-api = { module = "dev.rikka.shizuku:api", version.ref = "shizuku" } +shizuku-provider = { module = "dev.rikka.shizuku:provider", version.ref = "shizuku" } +spotless-gradle = { module = "com.diffplug.spotless:spotless-plugin-gradle", version.ref = "spotless" } +sqldelight-androidDriver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } +sqldelight-androidxDriver = { module = "com.eygraber:sqldelight-androidx-driver", version.ref = "sqldelight-androidx-driver" } +sqldelight-androidxPaging = { module = "app.cash.sqldelight:androidx-paging3-extensions", version.ref = "sqldelight" } +sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" } +sqldelight-sqliteDialect338 = { module = "app.cash.sqldelight:sqlite-3-38-dialect", version.ref = "sqldelight" } +stringSimilarity = { module = "com.aallam.similarity:string-similarity-kotlin", version.ref = "stringSimilarity" } +subsamplingScaleImageView = { module = "com.github.tachiyomiorg:subsampling-scale-image-view", version.ref = "subsamplingScaleImageView" } +swipe = { module = "me.saket.swipe:swipe", version.ref = "swipe" } +unifile = { module = "com.github.tachiyomiorg:unifile", version.ref = "unifile" } +voyager-navigator = { module = "cafe.adriel.voyager:voyager-navigator", version.ref = "voyager" } +voyager-screenModel = { module = "cafe.adriel.voyager:voyager-screenmodel", version.ref = "voyager" } +voyager-tabNavigator = { module = "cafe.adriel.voyager:voyager-tab-navigator", version.ref = "voyager" } +voyager-transitions = { module = "cafe.adriel.voyager:voyager-transitions", version.ref = "voyager" } +xmlutil-core = { module = "io.github.pdvrieze.xmlutil:core-android", version.ref = "xmlutil" } +xmlutil-serialization = { module = "io.github.pdvrieze.xmlutil:serialization", version.ref = "xmlutil" } [plugins] -google-services = { id = "com.google.gms.google-services", version = "4.4.4" } -aboutLibraries = { id = "com.mikepenz.aboutlibraries.plugin.android", version.ref = "aboutlib_version" } +aboutLibraries = { id = "com.mikepenz.aboutlibraries.plugin.android", version.ref = "aboutLibraries" } +firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase-crashlytics" } +google-services = { id = "com.google.gms.google-services", version.ref = "google-services" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin-gradle" } +kotlin-compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin-gradle" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin-gradle" } +moko-resources = { id = "dev.icerock.mobile.multiplatform-resources", version.ref = "moko-resources" } sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } -moko = { id = "dev.icerock.mobile.multiplatform-resources", version.ref = "moko" } -firebase-crashlytics = { id = "com.google.firebase.crashlytics", version = "3.0.6" } [bundles] -okhttp = ["okhttp-core", "okhttp-logging", "okhttp-brotli", "okhttp-dnsoverhttps"] -js-engine = ["quickjs-android"] +androidx-lifecycle = ["androidx-lifecycle-common", "androidx-lifecycle-process", "androidx-lifecycle-runtime"] coil = ["coil-core", "coil-gif", "coil-compose", "coil-network-okhttp"] -shizuku = ["shizuku-api", "shizuku-provider"] -sqldelight = ["sqldelight-android-driver", "sqldelight-androidx-driver", "sqldelight-coroutines", "sqldelight-android-paging"] -voyager = ["voyager-navigator", "voyager-screenmodel", "voyager-tab-navigator", "voyager-transitions"] -test = ["junit-jupiter", "kotest-assertions", "mockk"] +kotlinx-coroutines = ["kotlinx-coroutines-core", "kotlinx-coroutines-android", "kotlinx-coroutines-guava"] markdown = ["markdown-core", "markdown-coil"] +okhttp = ["okhttp-core", "okhttp-logging", "okhttp-brotli", "okhttp-dnsOverHttps"] +serialization = ["kotlinx-serialization-json", "kotlinx-serialization-jsonOkio", "kotlinx-serialization-protobuf", "xmlutil-core", "xmlutil-serialization"] +shizuku = ["shizuku-api", "shizuku-provider"] +sqldelight = ["sqldelight-androidDriver", "sqldelight-androidxDriver", "sqldelight-coroutines", "sqldelight-androidxPaging"] +test = ["junit-jupiter", "kotest-assertions", "mockk"] +voyager = ["voyager-navigator", "voyager-screenModel", "voyager-tabNavigator", "voyager-transitions"] diff --git a/i18n-sy/build.gradle.kts b/i18n-sy/build.gradle.kts index 6fb043544..bf53a2b75 100644 --- a/i18n-sy/build.gradle.kts +++ b/i18n-sy/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("mihon.library") kotlin("multiplatform") - alias(libs.plugins.moko) + alias(libs.plugins.moko.resources) id("com.github.ben-manes.versions") } @@ -13,7 +13,7 @@ kotlin { sourceSets { commonMain { dependencies { - api(libs.moko.core) + api(libs.moko.resources) } } } diff --git a/i18n/build.gradle.kts b/i18n/build.gradle.kts index 82b11658d..71d0347e2 100644 --- a/i18n/build.gradle.kts +++ b/i18n/build.gradle.kts @@ -5,7 +5,7 @@ import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi plugins { id("mihon.library") kotlin("multiplatform") - alias(libs.plugins.moko) + alias(libs.plugins.moko.resources) id("com.github.ben-manes.versions") } @@ -17,7 +17,7 @@ kotlin { sourceSets { commonMain { dependencies { - api(libs.moko.core) + api(libs.moko.resources) } } } diff --git a/macrobenchmark/build.gradle.kts b/macrobenchmark/build.gradle.kts index ec2d049a5..b74c26bdd 100644 --- a/macrobenchmark/build.gradle.kts +++ b/macrobenchmark/build.gradle.kts @@ -26,10 +26,10 @@ android { } dependencies { - implementation(androidx.test.ext) - implementation(androidx.test.espresso.core) - implementation(androidx.test.uiautomator) - implementation(androidx.benchmark.macro) + implementation(libs.androidx.test.junit) + implementation(libs.androidx.test.espresso.core) + implementation(libs.androidx.test.uiautomator) + implementation(libs.androidx.benchmark.macroJunit4) } androidComponents { diff --git a/presentation-core/build.gradle.kts b/presentation-core/build.gradle.kts index 64b3e6649..62bf55807 100644 --- a/presentation-core/build.gradle.kts +++ b/presentation-core/build.gradle.kts @@ -35,17 +35,17 @@ dependencies { // SY <-- // Compose - implementation(compose.activity) - implementation(compose.foundation) - implementation(compose.material3.core) - implementation(compose.material.icons) - implementation(compose.animation) - implementation(compose.animation.graphics) - debugImplementation(compose.ui.tooling) - implementation(compose.ui.tooling.preview) - implementation(compose.ui.util) + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.compose.foundation) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.compose.materialIcons) + implementation(libs.androidx.compose.animation) + implementation(libs.androidx.compose.animationGraphics) + debugImplementation(libs.androidx.compose.uiTooling) + implementation(libs.androidx.compose.uiToolingPreview) + implementation(libs.androidx.compose.uiUtil) - implementation(androidx.paging.runtime) - implementation(androidx.paging.compose) - implementation(kotlinx.immutables) + implementation(libs.androidx.paging.runtime) + implementation(libs.androidx.paging.compose) + implementation(libs.kotlinx.collections.immutable) } diff --git a/presentation-widget/build.gradle.kts b/presentation-widget/build.gradle.kts index f22188ea9..3f525c446 100644 --- a/presentation-widget/build.gradle.kts +++ b/presentation-widget/build.gradle.kts @@ -19,12 +19,11 @@ dependencies { implementation(projects.presentationCore) api(projects.i18n) - implementation(compose.glance) + implementation(libs.androidx.glance.appWidget) implementation(libs.material) - implementation(kotlinx.immutables) + implementation(libs.kotlinx.collections.immutable) - implementation(platform(libs.coil.bom)) implementation(libs.coil.core) // SY --> diff --git a/settings.gradle.kts b/settings.gradle.kts index 0a651c873..cd988894c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,15 +17,6 @@ pluginManagement { dependencyResolutionManagement { versionCatalogs { - create("kotlinx") { - from(files("gradle/kotlinx.versions.toml")) - } - create("androidx") { - from(files("gradle/androidx.versions.toml")) - } - create("compose") { - from(files("gradle/compose.versions.toml")) - } create("sylibs") { from(files("gradle/sy.versions.toml")) } diff --git a/source-api/build.gradle.kts b/source-api/build.gradle.kts index ef23ca59b..3164ec162 100644 --- a/source-api/build.gradle.kts +++ b/source-api/build.gradle.kts @@ -12,29 +12,28 @@ kotlin { sourceSets { val commonMain by getting { dependencies { - api(kotlinx.serialization.json) + api(libs.kotlinx.serialization.json) api(libs.injekt) - api(libs.rxjava) + api(libs.rxJava) api(libs.jsoup) - implementation(project.dependencies.platform(compose.bom)) - implementation(compose.runtime) + implementation(project.dependencies.platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.runtime) // SY --> api(projects.i18n) api(projects.i18nSy) - api(kotlinx.reflect) + api(libs.kotlin.reflect) // SY <-- } } val androidMain by getting { dependencies { implementation(projects.core.common) - api(libs.preferencektx) + api(libs.androidx.preference) // Workaround for https://youtrack.jetbrains.com/issue/KT-57605 - implementation(kotlinx.coroutines.android) - implementation(project.dependencies.platform(kotlinx.coroutines.bom)) + implementation(libs.kotlinx.coroutines.android) } } } diff --git a/source-local/build.gradle.kts b/source-local/build.gradle.kts index 71817aed6..c4e5d8a66 100644 --- a/source-local/build.gradle.kts +++ b/source-local/build.gradle.kts @@ -27,7 +27,7 @@ kotlin { // Move ChapterRecognition to separate module? implementation(projects.domain) - implementation(kotlinx.bundles.serialization) + implementation(libs.bundles.serialization) } } }