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.
This commit is contained in:
Two-Ai 2023-02-21 18:21:00 -05:00 committed by GitHub
parent f4e843f114
commit 779df32e98
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 5 deletions

View file

@ -339,7 +339,6 @@ class Downloader(
?.filter { it.name!!.endsWith(".tmp") } ?.filter { it.name!!.endsWith(".tmp") }
?.forEach { it.delete() } ?.forEach { it.delete() }
download.downloadedImages = 0
download.status = Download.State.DOWNLOADING download.status = Download.State.DOWNLOADING
} }
// Get all the URLs to the source images, fetch pages if necessary // Get all the URLs to the source images, fetch pages if necessary
@ -403,7 +402,6 @@ class Downloader(
} }
page.uri = file.uri page.uri = file.uri
page.progress = 100 page.progress = 100
download.downloadedImages++
page.status = Page.State.READY page.status = Page.State.READY
} }
.map { page } .map { page }

View file

@ -28,9 +28,8 @@ data class Download(
val totalProgress: Int val totalProgress: Int
get() = pages?.sumOf(Page::progress) ?: 0 get() = pages?.sumOf(Page::progress) ?: 0
@Volatile val downloadedImages: Int
@Transient get() = pages?.count { it.status == Page.State.READY } ?: 0
var downloadedImages: Int = 0
@Transient @Transient
private val _statusFlow = MutableStateFlow(State.NOT_DOWNLOADED) private val _statusFlow = MutableStateFlow(State.NOT_DOWNLOADED)