From 1e471a414cc085bc4ef471d3de7d6576be3dc22c Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Wed, 7 Oct 2026 08:59:40 +0600 Subject: [PATCH] Stop updates showing a finished chapter as still downloading --- .../eu/kanade/tachiyomi/ui/updates/UpdatesViewModel.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesViewModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesViewModel.kt index 1d2c95175..bda0b232a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesViewModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesViewModel.kt @@ -95,6 +95,13 @@ class UpdatesViewModel( private val downloadStates = MutableStateFlow(emptyMap()) + // A finished chapter leaves the queue, and its last status change can be lost with it, so its state is left to + // the queried item once it's no longer queued + private val queuedDownloadStates = combine(downloadStates, downloadManager.queueState) { states, queue -> + val queuedChapterIds = queue.mapTo(HashSet()) { it.chapter.id } + states.filterKeys { it in queuedChapterIds } + } + init { viewModelScope.launchIO { merge(downloadManager.statusFlow(), downloadManager.progressFlow()) @@ -166,7 +173,7 @@ class UpdatesViewModel( val state: StateFlow = combine( updateItems, selectedChapterIds, - downloadStates, + queuedDownloadStates, dialog, hasActiveFilters, ) { items, selectedIds, downloads, dialog, hasActiveFilters ->