From ad107860b91d5b91f3e127904a0bd81c957f87c4 Mon Sep 17 00:00:00 2001 From: arkon Date: Fri, 28 Oct 2022 21:29:25 -0400 Subject: [PATCH] Consider downloaded only mode when getting download counts in library Fixes #8318 --- .../tachiyomi/ui/library/LibraryPresenter.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index 738e620b99..8ae33d93ac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -119,12 +119,9 @@ class LibraryPresenter( subscribeLibrary() } - /** - * Subscribes to library if needed. - */ fun subscribeLibrary() { /** - * TODO: Move this to a coroutine world + * TODO: * - Move filter and sort to getMangaForCategory and only filter and sort the current display category instead of whole library as some has 5000+ items in the library * - Create new db view and new query to just fetch the current category save as needed to instance variable * - Fetch badges to maps and retrieve as needed instead of fetching all of them at once @@ -325,13 +322,18 @@ class LibraryPresenter( getLibraryManga.subscribe(), libraryPreferences.downloadBadge().changes(), libraryPreferences.filterDownloaded().changes(), + preferences.downloadedOnly().changes(), downloadCache.changes, - ) { libraryMangaList, downloadBadgePref, filterDownloadedPref, _ -> + ) { libraryMangaList, downloadBadgePref, filterDownloadedPref, downloadedOnly, _ -> libraryMangaList .map { libraryManga -> + val needsDownloadCounts = downloadBadgePref || + filterDownloadedPref != State.IGNORE.value || + downloadedOnly + // Display mode based on user preference: take it from global library setting or category LibraryItem(libraryManga).apply { - downloadCount = if (downloadBadgePref || filterDownloadedPref != State.IGNORE.value) { + downloadCount = if (needsDownloadCounts) { downloadManager.getDownloadCount(libraryManga.manga).toLong() } else { 0