Albirew/tachiyomi
Archivé
1
0
Bifurcation 0

Consider downloaded only mode when getting download counts in library

Fixes #8318
Cette révision appartient à :
arkon 2022-10-28 21:29:25 -04:00
Parent 5efb31bd71
révision ad107860b9

Voir le fichier

@ -119,12 +119,9 @@ class LibraryPresenter(
subscribeLibrary() subscribeLibrary()
} }
/**
* Subscribes to library if needed.
*/
fun subscribeLibrary() { 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 * - 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 * - 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 * - Fetch badges to maps and retrieve as needed instead of fetching all of them at once
@ -325,13 +322,18 @@ class LibraryPresenter(
getLibraryManga.subscribe(), getLibraryManga.subscribe(),
libraryPreferences.downloadBadge().changes(), libraryPreferences.downloadBadge().changes(),
libraryPreferences.filterDownloaded().changes(), libraryPreferences.filterDownloaded().changes(),
preferences.downloadedOnly().changes(),
downloadCache.changes, downloadCache.changes,
) { libraryMangaList, downloadBadgePref, filterDownloadedPref, _ -> ) { libraryMangaList, downloadBadgePref, filterDownloadedPref, downloadedOnly, _ ->
libraryMangaList libraryMangaList
.map { libraryManga -> .map { libraryManga ->
val needsDownloadCounts = downloadBadgePref ||
filterDownloadedPref != State.IGNORE.value ||
downloadedOnly
// Display mode based on user preference: take it from global library setting or category // Display mode based on user preference: take it from global library setting or category
LibraryItem(libraryManga).apply { LibraryItem(libraryManga).apply {
downloadCount = if (downloadBadgePref || filterDownloadedPref != State.IGNORE.value) { downloadCount = if (needsDownloadCounts) {
downloadManager.getDownloadCount(libraryManga.manga).toLong() downloadManager.getDownloadCount(libraryManga.manga).toLong()
} else { } else {
0 0