From 32170688b6ae64a428555d99fd53271ba4c599cc Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Mon, 21 Aug 2023 18:39:35 +0800 Subject: [PATCH 01/15] Support clearing image cache for specific gallery --- .../ehviewer/ui/scene/GalleryDetailScene.kt | 27 +++++++++++++++++++ app/src/main/res/values-zh-rCN/strings.xml | 3 +++ app/src/main/res/values/strings.xml | 3 +++ 3 files changed, 33 insertions(+) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index d012ec689..6c59f1afd 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -105,6 +105,7 @@ import arrow.core.partially1 import coil.imageLoader import com.google.android.material.snackbar.Snackbar import com.hippo.ehviewer.EhApplication.Companion.galleryDetailCache +import com.hippo.ehviewer.EhApplication.Companion.imageCache import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings @@ -122,6 +123,7 @@ import com.hippo.ehviewer.client.data.GalleryTagGroup import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.exception.EhException import com.hippo.ehviewer.client.exception.NoHAtHClientException +import com.hippo.ehviewer.client.getImageKey import com.hippo.ehviewer.client.parser.ArchiveParser import com.hippo.ehviewer.client.parser.HomeParser import com.hippo.ehviewer.client.parser.TorrentResult @@ -341,6 +343,24 @@ class GalleryDetailScene : BaseScene() { } } + private fun actionClearCache() { + val gd = composeBindingGD ?: return + lifecycleScope.launchIO { + dialogState.awaitPermissionOrCancel( + confirmText = R.string.clear_all, + dismissText = android.R.string.cancel, + title = R.string.clear_image_cache, + ) { + Text(text = stringResource(id = R.string.clear_image_cache_confirm)) + } + (0..刷新 刷新(原图) 在其他应用中打开 + 清除图片缓存 + 清除该画廊的所有图片缓存? + 已清除图片缓存 评分成功 评分失败 没有种子 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 161e15fab..ec57d15ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -191,6 +191,9 @@ Refresh Refresh (Original image) Open with other app + Clear image cache + Clear all cached images for this gallery? + Image cache cleared Rate successfully Rate failed No torrents From d8efff9921ba07979ea2077d95d5ec255e9a2b90 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 10:13:43 +0000 Subject: [PATCH 02/15] Update accompanist_version to v0.32.0 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bf7a96103..30af4cd15 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -213,7 +213,7 @@ dependencies { implementation("com.github.chrisbanes:PhotoView:2.3.0") // Dead Dependency implementation("com.github.tachiyomiorg:DirectionalViewPager:1.0.0") // Dead Dependency // https://github.com/google/accompanist/releases - val accompanist_version = "0.31.6-rc" + val accompanist_version = "0.32.0" implementation("com.google.accompanist:accompanist-themeadapter-material3:$accompanist_version") implementation("com.google.accompanist:accompanist-webview:$accompanist_version") implementation("com.google.android.material:material:1.11.0-alpha02") From 3fb8d3e73b64f523dcd4a52acead99cbd7edba27 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 04:54:34 +0000 Subject: [PATCH 03/15] Update plugin com.android.application to v8.1.1 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0ede20c7b..90a44e06d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("com.android.application") version "8.1.0" apply false + id("com.android.application") version "8.1.1" apply false kotlin("android") version "1.9.0" apply false kotlin("plugin.serialization") version "1.9.0" apply false id("com.google.devtools.ksp") version "1.9.0-1.0.13" apply false From f0c933d97a14aea211ea33b7ad1b7b5e7a9ac403 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 22 Aug 2023 18:55:39 +0800 Subject: [PATCH 04/15] Replace deprecated method --- app/build.gradle.kts | 2 +- build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bd5a5ec63..7285521fb 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -296,6 +296,6 @@ tasks.configureEach { if ((name == "mergeDebugJniLibFolders" || name == "mergeReleaseJniLibFolders")) { dependsOn("cargoBuild") // fix mergeDebugJniLibFolders UP-TO-DATE - inputs.dir(buildDir.resolve("rustJniLibs/android")) + inputs.dir(layout.buildDirectory.dir("rustJniLibs/android")) } } diff --git a/build.gradle.kts b/build.gradle.kts index 0ede20c7b..926ad8567 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ allprojects { } tasks.register("Delete", Delete::class) { - delete(rootProject.buildDir) + delete(rootProject.layout.buildDirectory) } buildscript { From 81609910866ac5b223d2f772edf3e190d5559004 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 22 Aug 2023 19:27:44 +0800 Subject: [PATCH 05/15] Don't respond to touch events when scrolling --- .../tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt index 9d37d2404..93cffeecb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonRecyclerView.kt @@ -57,7 +57,9 @@ class WebtoonRecyclerView @JvmOverloads constructor( } override fun onTouchEvent(e: MotionEvent): Boolean { - detector.onTouchEvent(e) + if (scrollState == SCROLL_STATE_IDLE) { + detector.onTouchEvent(e) + } return super.onTouchEvent(e) } From c00b5e6635032f9e848fc7cb5c935126293bfd57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 19:04:15 +0000 Subject: [PATCH 06/15] Update serialization to v1.6.0 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 30af4cd15..fe387ff84 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -252,7 +252,7 @@ dependencies { implementation("org.chromium.net:cronet-embedded:113.5672.61") - val serialization = "1.5.1" + val serialization = "1.6.0" implementation("org.jetbrains.kotlinx:kotlinx-serialization-cbor:$serialization") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serialization") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-okio:$serialization") From 65ffd7884407f05d2fea0266997e77b507ba5667 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 20:24:37 +0000 Subject: [PATCH 07/15] Update dependency androidx.activity:activity-compose to v1.8.0-alpha07 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fe387ff84..fdda3b8a4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -167,7 +167,7 @@ android { dependencies { // https://developer.android.com/jetpack/androidx/releases/activity - implementation("androidx.activity:activity-compose:1.8.0-alpha06") + implementation("androidx.activity:activity-compose:1.8.0-alpha07") implementation("androidx.appcompat:appcompat:1.6.1") implementation("androidx.biometric:biometric-ktx:1.2.0-alpha05") implementation("androidx.browser:browser:1.6.0") From 8f535918007e727b88c18d058f1cab9d85690191 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 23:18:39 +0000 Subject: [PATCH 08/15] Update dependency androidx.fragment:fragment-ktx to v1.7.0-alpha03 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fdda3b8a4..f15e27924 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -185,7 +185,7 @@ dependencies { implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha12") implementation("androidx.coordinatorlayout:coordinatorlayout:1.2.0") - implementation("androidx.fragment:fragment-ktx:1.7.0-alpha02") + implementation("androidx.fragment:fragment-ktx:1.7.0-alpha03") // https://developer.android.com/jetpack/androidx/releases/lifecycle implementation("androidx.lifecycle:lifecycle-process:2.6.1") From 84cf67d21aad5527e7a4537f6857282623782ba0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 01:47:42 +0000 Subject: [PATCH 09/15] Update dependency composeOptions to v1.5.2 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f15e27924..ec335c155 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -159,7 +159,7 @@ android { } composeOptions { - kotlinCompilerExtensionVersion = "1.5.1" + kotlinCompilerExtensionVersion = "1.5.2" } namespace = "com.hippo.ehviewer" From db380507f5dd403cbcf0b6fc59322c564a6519e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 03:50:06 +0000 Subject: [PATCH 10/15] Update nav_version to v2.7.1 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ec335c155..0df1a4257 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -190,7 +190,7 @@ dependencies { implementation("androidx.lifecycle:lifecycle-process:2.6.1") // https://developer.android.com/jetpack/androidx/releases/navigation - val nav_version = "2.7.0" + val nav_version = "2.7.1" implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version") implementation("androidx.navigation:navigation-compose:$nav_version") From d2f47d51f9872feb2e04ac7a65615e97f179ef85 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 07:03:46 +0000 Subject: [PATCH 11/15] Update plugin com.google.devtools.ksp to v1.9.10-1.0.13 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 90a44e06d..bb593943e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ plugins { id("com.android.application") version "8.1.1" apply false kotlin("android") version "1.9.0" apply false kotlin("plugin.serialization") version "1.9.0" apply false - id("com.google.devtools.ksp") version "1.9.0-1.0.13" apply false + id("com.google.devtools.ksp") version "1.9.10-1.0.13" apply false id("com.mikepenz.aboutlibraries.plugin") version "10.8.3" apply false id("org.mozilla.rust-android-gradle.rust-android") version "0.9.3" apply false id("dev.shreyaspatil.compose-compiler-report-generator") version "1.1.0" apply false From 46b19a9de526e82bb075ee82ebe7cc1977b0efc8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 10:16:05 +0000 Subject: [PATCH 12/15] Update room_version to v2.6.0-beta01 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0df1a4257..b537339e3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -203,7 +203,7 @@ dependencies { implementation("androidx.recyclerview:recyclerview-selection:1.2.0-alpha01") // https://developer.android.com/jetpack/androidx/releases/room - val room_version = "2.6.0-alpha03" + val room_version = "2.6.0-beta01" ksp("androidx.room:room-compiler:$room_version") implementation("androidx.room:room-paging:$room_version") From 785faf1bf499f3c9f59d8198a2c8bbd80607f3c3 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sat, 26 Aug 2023 20:31:04 +0800 Subject: [PATCH 13/15] Upgrade ndk to r26 RC 1 --- .github/workflows/ci.yml | 2 +- .github/workflows/pull_request.yml | 2 +- .github/workflows/releases.yml | 2 +- app/build.gradle.kts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7f73bc1b..785dfc341 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: - name: Install NDK run: | - echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;26.0.10404224" --channel=1 --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null + echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;26.0.10636728" --channel=1 --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null - name: Install Rust Toolchain run: rustup update && rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android && rustup component add rustfmt clippy diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 7fac5f1ee..b79e605e9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -20,7 +20,7 @@ jobs: - name: Install NDK run: | - echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;26.0.10404224" --channel=1 --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null + echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;26.0.10636728" --channel=1 --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null - name: Install Rust Toolchain run: rustup update && rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android && rustup component add rustfmt clippy diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 28d638bc0..ba1172b86 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -23,7 +23,7 @@ jobs: - name: Install NDK run: | - echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;26.0.10404224" --channel=1 --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null + echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;26.0.10636728" --channel=1 --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null - name: Install Rust Toolchain run: rustup update && rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a77d97ffe..77b07d6c9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,7 @@ plugins { android { compileSdk = 34 buildToolsVersion = "34.0.0" - ndkVersion = "26.0.10404224" + ndkVersion = "26.0.10636728" splits { abi { From a574bca48e3ae047ae1fa4c82128d0668450271f Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Wed, 30 Aug 2023 16:22:18 +0800 Subject: [PATCH 14/15] Kotlin 1.9.10 --- app/build.gradle.kts | 2 +- build.gradle.kts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 77b07d6c9..11e77cca4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -159,7 +159,7 @@ android { } composeOptions { - kotlinCompilerExtensionVersion = "1.5.2" + kotlinCompilerExtensionVersion = "1.5.3" } namespace = "com.hippo.ehviewer" diff --git a/build.gradle.kts b/build.gradle.kts index 6f62d3c90..f2852e193 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("com.android.application") version "8.1.1" apply false - kotlin("android") version "1.9.0" apply false - kotlin("plugin.serialization") version "1.9.0" apply false + kotlin("android") version "1.9.10" apply false + kotlin("plugin.serialization") version "1.9.10" apply false id("com.google.devtools.ksp") version "1.9.10-1.0.13" apply false id("com.mikepenz.aboutlibraries.plugin") version "10.8.3" apply false id("org.mozilla.rust-android-gradle.rust-android") version "0.9.3" apply false From d6a3a351f59e33228cd039a9a673a0ff643f6a43 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Wed, 30 Aug 2023 16:37:37 +0800 Subject: [PATCH 15/15] Fix UI not updating after download state changed --- .../com/hippo/ehviewer/dao/DownloadInfo.kt | 30 ++++++++++--------- .../hippo/ehviewer/ui/scene/DownloadsScene.kt | 2 +- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/dao/DownloadInfo.kt b/app/src/main/java/com/hippo/ehviewer/dao/DownloadInfo.kt index 3cc4e826e..bb6694769 100644 --- a/app/src/main/java/com/hippo/ehviewer/dao/DownloadInfo.kt +++ b/app/src/main/java/com/hippo/ehviewer/dao/DownloadInfo.kt @@ -44,21 +44,23 @@ data class DownloadEntity( @ColumnInfo(name = "POSITION") override var position: Int = 0, + + @Ignore + override var speed: Long = 0, + + @Ignore + override var remaining: Long = 0, + + @Ignore + override var finished: Int = 0, + + @Ignore + override var downloaded: Int = 0, + + @Ignore + override var total: Int = 0, ) : AbstractDownloadInfo { - @Ignore - override var speed: Long = 0 - - @Ignore - override var remaining: Long = 0 - - @Ignore - override var finished = 0 - - @Ignore - override var downloaded = 0 - - @Ignore - override var total = 0 + constructor() : this(0) } data class DownloadInfo( diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt index 370f869eb..cc6c3cf46 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt @@ -202,7 +202,7 @@ class DownloadsScene : getString(R.string.default_download_label_name) -> DownloadManager.defaultInfoList else -> DownloadManager.getLabelDownloadInfoList(mLabel) ?: DownloadManager.allInfoList.also { mLabel = null } - }.filter(::filter) + }.mapNotNull { it.takeIf(::filter)?.copy(downloadInfo = it.downloadInfo.copy()) } submitList(list) { if (mGid != -1L) { val position = list.indexOfFirst { it.gid == mGid }