diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index bae9c3625b..545636880b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -35,7 +35,7 @@ body: required: true - label: If this is an issue with an extension, or a request for an extension, I should be contacting the extensions repository's maintainer/support for help. required: true - - label: I have updated the app to version **[1.9.7.2](https://github.com/null2264/yokai/releases/latest)**. + - label: I have updated the app to version **[1.9.7.3](https://github.com/null2264/yokai/releases/latest)**. required: true - label: I have checked through the app settings for my feature. required: true diff --git a/.github/ISSUE_TEMPLATE/issue_report.yml b/.github/ISSUE_TEMPLATE/issue_report.yml index 3c3b5d4590..a1f0593f0d 100644 --- a/.github/ISSUE_TEMPLATE/issue_report.yml +++ b/.github/ISSUE_TEMPLATE/issue_report.yml @@ -100,7 +100,7 @@ body: required: true - label: I have tried the [troubleshooting guide](https://mihon.app/docs/guides/troubleshooting/). required: true - - label: I have updated the app to version **[1.9.7.2](https://github.com/null2264/yokai/releases/latest)**. + - label: I have updated the app to version **[1.9.7.3](https://github.com/null2264/yokai/releases/latest)**. required: true - label: I have updated all installed extensions. required: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 105ff36b02..95cea8eab0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,6 @@ The format is simplified version of [Keep a Changelog](https://keepachangelog.co ### Other - Refactor Library to utilize Flow even more -- Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-bom to v1.10.1 - Refactor EmptyView to use Compose - Refactor Reader ChapterTransition to use Compose (@arkon) - [Experimental] Add modified version of LargeTopAppBar that mimic J2K's ExpandedAppBarLayout @@ -50,9 +49,47 @@ The format is simplified version of [Keep a Changelog](https://keepachangelog.co - Refactor Library to store LibraryMap instead of flatten list of LibraryItem - LibraryItem abstraction to make it easier to manage - LibraryManga no longer extend MangaImpl -- Update dependency androidx.compose:compose-bom to v2025.01.00 - Update dependency gradle to v8.12 - Update user agent (@Hiirbaf) +- Update serialization to v1.8.1 +- Update dependency io.github.fornewid:material-motion-compose-core to v1.2.1 +- Update lifecycle to v2.9.0 +- Update dependency org.jsoup:jsoup to v1.20.1 +- Update dependency org.jetbrains.kotlinx:kotlinx-collections-immutable to v0.4.0 +- Update dependency io.mockk:mockk to v1.14.2 +- Update dependency io.coil-kt.coil3:coil-bom to v3.2.0 +- Update dependency com.squareup.okio:okio to v3.12.0 +- Update dependency com.google.firebase:firebase-bom to v33.14.0 +- Update dependency com.google.accompanist:accompanist-themeadapter-material3 to v0.36.0 +- Update dependency com.github.requery:sqlite-android to v3.49.0 +- Update dependency com.getkeepsafe.taptargetview:taptargetview to v1.15.0 +- Update dependency androidx.window:window to v1.4.0 +- Update dependency androidx.webkit:webkit to v1.13.0 +- Update dependency androidx.sqlite:sqlite-ktx to v2.5.1 +- Update dependency androidx.sqlite:sqlite to v2.5.1 +- Update dependency androidx.recyclerview:recyclerview to v1.4.0 +- Update dependency androidx.core:core-ktx to v1.16.0 +- Update dependency androidx.compose:compose-bom to v2025.05.01 +- Update aboutlibraries to v11.6.3 +- Update plugin kotlinter to v5.1.0 +- Update plugin gradle-versions to v0.52.0 +- Update okhttp monorepo to v5.0.0-alpha.16 +- Update moko to v0.24.5 +- Update kotlin monorepo to v2.1.21 +- Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-bom to v1.10.2 +- Update dependency me.zhanghai.android.libarchive:library to v1.1.5 +- Update dependency io.insert-koin:koin-bom to v4.0.4 +- Update dependency com.android.tools:desugar_jdk_libs to v2.1.5 +- Update dependency androidx.work:work-runtime-ktx to v2.10.1 +- Update dependency androidx.constraintlayout:constraintlayout to v2.2.1 +- Update plugin firebase-crashlytics to v3.0.3 +- Update null2264/actions digest to 363cb9c +- Update dependency io.github.pdvrieze.xmlutil:core-android to v0.91.1 + +## [1.9.7.3] + +### Fixes +- More `Comparison method violates its general contract!` crash prevention ## [1.9.7.2] diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 44eaebc446..dc23c131b0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,7 +49,7 @@ val supportedAbis = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") android { defaultConfig { applicationId = "eu.kanade.tachiyomi" - versionCode = 157 + versionCode = 158 versionName = _versionName testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled = true diff --git a/gradle/androidx.versions.toml b/gradle/androidx.versions.toml index efae61e57b..8ca4a27c21 100644 --- a/gradle/androidx.versions.toml +++ b/gradle/androidx.versions.toml @@ -1,7 +1,7 @@ [versions] activity = "1.9.3" agp = "8.7.3" -lifecycle = "2.8.7" +lifecycle = "2.9.0" [libraries] gradle = { module = "com.android.tools.build:gradle", version.ref = "agp" } @@ -13,10 +13,10 @@ appcompat = { module = "androidx.appcompat:appcompat", version = "1.7.0" } browser = { module = "androidx.browser:browser", version = "1.8.0" } biometric = { module = "androidx.biometric:biometric", version = "1.1.0" } cardview = { module = "androidx.cardview:cardview", version = "1.0.0" } -core = { module = "androidx.core:core-ktx", version = "1.15.0" } +core = { module = "androidx.core:core-ktx", version = "1.16.0" } core-splashscreen = { module = "androidx.core:core-splashscreen", version = "1.0.1" } glance-appwidget = { module = "androidx.glance:glance-appwidget", version = "1.1.1" } -layout-constraint = { module = "androidx.constraintlayout:constraintlayout", version = "2.2.0" } +layout-constraint = { module = "androidx.constraintlayout:constraintlayout", version = "2.2.1" } layout-swiperefresh = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version = "1.1.0" } lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "lifecycle" } lifecycle-livedata = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" } @@ -27,11 +27,11 @@ lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel multidex = { module = "androidx.multidex:multidex", version = "2.0.1" } palette = { module = "androidx.palette:palette", version = "1.0.0" } preference = { module = "androidx.preference:preference-ktx", version = "1.2.1" } -recyclerview = { module = "androidx.recyclerview:recyclerview", version = "1.3.2" } -sqlite = { module = "androidx.sqlite:sqlite", version = "2.4.0" } -webkit = { module = "androidx.webkit:webkit", version = "1.12.0" } -work = { module = "androidx.work:work-runtime-ktx", version = "2.10.0" } -window = { module = "androidx.window:window", version = "1.3.0" } +recyclerview = { module = "androidx.recyclerview:recyclerview", version = "1.4.0" } +sqlite = { module = "androidx.sqlite:sqlite", version = "2.5.1" } +webkit = { module = "androidx.webkit:webkit", version = "1.13.0" } +work = { module = "androidx.work:work-runtime-ktx", version = "2.10.1" } +window = { module = "androidx.window:window", version = "1.4.0" } [bundles] androidx = [ diff --git a/gradle/compose.versions.toml b/gradle/compose.versions.toml index 4c62e2e8da..86eb7c364f 100644 --- a/gradle/compose.versions.toml +++ b/gradle/compose.versions.toml @@ -1,12 +1,12 @@ [versions] -compose = "2025.01.00" +compose = "2025.05.01" [libraries] bom = { module = "androidx.compose:compose-bom", version.ref = "compose" } animation = { module = "androidx.compose.animation:animation" } foundation = { module = "androidx.compose.foundation:foundation" } material3 = { module = "androidx.compose.material3:material3" } -material-motion = { module = "io.github.fornewid:material-motion-compose-core", version = "1.0.7" } +material-motion = { module = "io.github.fornewid:material-motion-compose-core", version = "1.2.1" } ui-tooling = { module = "androidx.compose.ui:ui-tooling" } ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } icons = { module = "androidx.compose.material:material-icons-extended" } diff --git a/gradle/kotlinx.versions.toml b/gradle/kotlinx.versions.toml index afeeadc0fe..b7fe860fd0 100644 --- a/gradle/kotlinx.versions.toml +++ b/gradle/kotlinx.versions.toml @@ -1,13 +1,13 @@ [versions] -kotlin = "2.1.0" -serialization = "1.7.3" -xml_serialization = "0.90.3" +kotlin = "2.1.21" +serialization = "1.8.1" +xml_serialization = "0.91.1" [libraries] gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } compose-compiler-gradle = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin" } -coroutines-bom = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-bom", version = "1.10.1" } +coroutines-bom = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-bom", version = "1.10.2" } coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android" } coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core" } coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test" } @@ -15,8 +15,8 @@ serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-jso serialization-json-okio = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json-okio", version.ref = "serialization" } serialization-protobuf = { module = "org.jetbrains.kotlinx:kotlinx-serialization-protobuf", version.ref = "serialization" } serialization-xml-core = { module = "io.github.pdvrieze.xmlutil:core-android", version.ref = "xml_serialization" } -serialization-xml = { module = "io.github.pdvrieze.xmlutil:serialization-android", version.ref = "xml_serialization" } -immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version = "0.3.8" } +serialization-xml = { module = "io.github.pdvrieze.xmlutil:serialization", version.ref = "xml_serialization" } +immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version = "0.4.0" } [bundles] serialization = [ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7d3fc9ec4e..5acfb13dd5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,18 +1,18 @@ [versions] -aboutlibraries = "11.2.3" +aboutlibraries = "11.6.3" chucker = "3.5.2" flexible-adapter = "c8013533" fast_adapter = "5.7.0" -moko = "0.24.4" -okhttp = "5.0.0-alpha.14" +moko = "0.24.5" +okhttp = "5.0.0-alpha.16" shizuku = "13.1.5" # FIXME: Uncomment once SQLDelight support KMP AndroidX SQLiteDriver #sqlite = "2.5.0-alpha04" -sqlite = "2.4.0" +sqlite = "2.5.1" sqldelight = "2.0.2" -junit = "5.11.3" +junit = "5.13.1" kermit = "2.0.5" -koin = "4.0.0" +koin = "4.0.4" leakcanary = "2.14" voyager = "1.1.0-beta03" @@ -21,21 +21,21 @@ aboutlibraries = { module = "com.mikepenz:aboutlibraries-compose-m3", version.re chucker-library-no-op = { module = "com.github.ChuckerTeam.Chucker:library-no-op", version.ref = "chucker" } chucker-library = { module = "com.github.ChuckerTeam.Chucker:library", version.ref = "chucker" } -coil3-bom = { module = "io.coil-kt.coil3:coil-bom", version = "3.0.4" } +coil3-bom = { module = "io.coil-kt.coil3:coil-bom", version = "3.2.0" } coil3 = { module = "io.coil-kt.coil3:coil" } coil3-svg = { module = "io.coil-kt.coil3:coil-svg" } coil3-gif = { module = "io.coil-kt.coil3:coil-gif" } coil3-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp" } -compose-theme-adapter3 = { module = "com.google.accompanist:accompanist-themeadapter-material3", version = "0.33.2-alpha" } +compose-theme-adapter3 = { module = "com.google.accompanist:accompanist-themeadapter-material3", version = "0.36.0" } conductor = { module = "com.bluelinelabs:conductor", version = "4.0.0-preview-4" } conductor-support-preference = { module = "com.github.tachiyomiorg:conductor-support-preference", version = "3.0.0" } conscrypt = { module = "org.conscrypt:conscrypt-android", version = "2.5.2" } -desugar = { module = "com.android.tools:desugar_jdk_libs", version = "2.1.3" } +desugar = { module = "com.android.tools:desugar_jdk_libs", version = "2.1.5" } directionalviewpager = { module = "com.github.tachiyomiorg:DirectionalViewPager", version = "1.0.0" } disklrucache = { module = "com.jakewharton:disklrucache", version = "2.0.2" } fastadapter-extensions-binding = { module = "com.mikepenz:fastadapter-extensions-binding", version.ref = "fast_adapter" } fastadapter = { module = "com.mikepenz:fastadapter", version.ref = "fast_adapter" } -firebase = { module = "com.google.firebase:firebase-bom", version = "33.7.0" } +firebase = { module = "com.google.firebase:firebase-bom", version = "33.14.0" } firebase-analytics = { module = "com.google.firebase:firebase-analytics-ktx" } firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics-ktx" } flexbox = { module = "com.google.android.flexbox:flexbox", version = "3.0.0" } @@ -54,22 +54,22 @@ kotest-assertions = { module = "io.kotest:kotest-assertions-core", version = "5. leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" } leakcanary-plumber = { module = "com.squareup.leakcanary:plumber-android", version.ref = "leakcanary" } -libarchive = { module = "me.zhanghai.android.libarchive:library", version = "1.1.4" } +libarchive = { module = "me.zhanghai.android.libarchive:library", version = "1.1.5" } material = { module = "com.google.android.material:material", version = "1.12.0" } markwon = { module = "io.noties.markwon:core", version = "4.6.2" } mpandroidchart = { module = "com.github.PhilJay:MPAndroidChart", version = "v3.1.0" } java-nat-sort = { module = "com.github.gpanther:java-nat-sort", version = "natural-comparator-1.1" } -jsoup = { module = "org.jsoup:jsoup", version = "1.18.3" } +jsoup = { module = "org.jsoup:jsoup", version = "1.20.1" } junit-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" } junit-android = { module = "androidx.test.ext:junit", version = "1.2.1" } -mockk = { module = "io.mockk:mockk", version = "1.13.13" } +mockk = { module = "io.mockk:mockk", version = "1.14.2" } moko-resources = { module = "dev.icerock.moko:resources", version.ref = "moko" } moko-resources-compose = { module = "dev.icerock.moko:resources-compose", version.ref = "moko" } -okio = { module = "com.squareup.okio:okio", version = "3.9.1" } +okio = { module = "com.squareup.okio:okio", version = "3.12.0" } okhttp-brotli = { module = "com.squareup.okhttp3:okhttp-brotli", version.ref = "okhttp" } okhttp-dnsoverhttps = { module = "com.squareup.okhttp3:okhttp-dnsoverhttps", version.ref = "okhttp" } okhttp-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } @@ -85,7 +85,7 @@ slice = { module = "com.github.mthli:Slice", version = "v1.2" } # FIXME: Uncomment once SQLDelight support KMP AndroidX SQLiteDriver #sqlite = { module = "androidx.sqlite:sqlite-bundled", version.ref = "sqlite" } sqlite-ktx = { module = "androidx.sqlite:sqlite-ktx", version.ref = "sqlite" } -sqlite-android = { module = "com.github.requery:sqlite-android", version = "3.45.0" } +sqlite-android = { module = "com.github.requery:sqlite-android", version = "3.49.0" } sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqldelight" } sqldelight-android-driver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } @@ -95,7 +95,7 @@ sqldelight-dialects-sql = { module = "app.cash.sqldelight:sqlite-3-38-dialect", subsamplingscaleimageview = { module = "com.github.null2264:subsampling-scale-image-view", version = "f7b674ebdd" } shizuku-api = { module = "dev.rikka.shizuku:api", version.ref = "shizuku" } shizuku-provider = { module = "dev.rikka.shizuku:provider", version.ref = "shizuku" } -taptargetview = { module = "com.getkeepsafe.taptargetview:taptargetview", version = "1.13.3" } +taptargetview = { module = "com.getkeepsafe.taptargetview:taptargetview", version = "1.15.0" } unifile = { module = "com.github.tachiyomiorg:unifile", version = "a9de196cc7" } viewstatepageradapter = { module = "com.nightlynexus.viewstatepageradapter:viewstatepageradapter", version = "1.1.0" } viewtooltip = { module = "com.github.CarlosEsco:ViewTooltip", version = "f79a8955ef" } # FIXME: Don't depends on this @@ -106,10 +106,10 @@ voyager-screenmodel = { module = "cafe.adriel.voyager:voyager-screenmodel", vers [plugins] aboutlibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" } -firebase-crashlytics = { id = "com.google.firebase.crashlytics", version = "3.0.2" } +firebase-crashlytics = { id = "com.google.firebase.crashlytics", version = "3.0.3" } google-services = { id = "com.google.gms.google-services", version = "4.4.2" } -gradle-versions = { id = "com.github.ben-manes.versions", version = "0.51.0" } -kotlinter = { id = "org.jmailen.kotlinter", version = "5.0.1" } +gradle-versions = { id = "com.github.ben-manes.versions", version = "0.52.0" } +kotlinter = { id = "org.jmailen.kotlinter", version = "5.1.0" } moko = { id = "dev.icerock.mobile.multiplatform-resources", version.ref = "moko" } sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } diff --git a/settings.gradle.kts b/settings.gradle.kts index bd2a49e70e..68a592a5f0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -24,6 +24,7 @@ dependencyResolutionManagement { google() maven("https://jitpack.io") maven("https://plugins.gradle.org/m2/") + maven("https://s01.oss.sonatype.org/content/repositories/releases/") } }