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 ->