From ef1242d067b216d2c711b9fe315b22b332230fec Mon Sep 17 00:00:00 2001
From: arkon <eugcheung94@gmail.com>
Date: Fri, 28 Oct 2022 21:29:25 -0400
Subject: [PATCH] Consider downloaded only mode when getting download counts in
 library

Fixes #8318

(cherry picked from commit ad107860b91d5b91f3e127904a0bd81c957f87c4)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
---
 .../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 b1e31cd56..e42273b60 100755
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
@@ -205,12 +205,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
@@ -479,13 +476,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) {
                             // SY -->
                             if (libraryManga.manga.source == MERGED_SOURCE_ID) {
                                 runBlocking {