From acef44f55cd276ede9e5435ab9ed96062c526a79 Mon Sep 17 00:00:00 2001 From: Two-Ai <81279822+Two-Ai@users.noreply.github.com> Date: Tue, 21 Feb 2023 18:21:00 -0500 Subject: [PATCH] Fix download queue page count display bug (#9126) When restarting a download, the page count would display as 0 until the first page download completion, after all the existing pages were rechecked. To fix, calculate downloadedImages from pages instead of relying on the downloader to reset and increment the count. (cherry picked from commit 779df32e98f2a020ca6a4f79c0748dd9f5b16873) --- .../java/eu/kanade/tachiyomi/data/download/Downloader.kt | 2 -- .../java/eu/kanade/tachiyomi/data/download/model/Download.kt | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index e5ec430f3..920ae5f6d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -351,7 +351,6 @@ class Downloader( ?.filter { it.name!!.endsWith(".tmp") } ?.forEach { it.delete() } - download.downloadedImages = 0 download.status = Download.State.DOWNLOADING } // Get all the URLs to the source images, fetch pages if necessary @@ -415,7 +414,6 @@ class Downloader( } page.uri = file.uri page.progress = 100 - download.downloadedImages++ page.status = Page.State.READY } .map { page } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt index 6d85720ff..74b999770 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/Download.kt @@ -28,9 +28,8 @@ data class Download( val totalProgress: Int get() = pages?.sumOf(Page::progress) ?: 0 - @Volatile - @Transient - var downloadedImages: Int = 0 + val downloadedImages: Int + get() = pages?.count { it.status == Page.State.READY } ?: 0 @Transient private val _statusFlow = MutableStateFlow(State.NOT_DOWNLOADED)