From 8be33e0f81273d30678fc5f258ae238bc434c77a Mon Sep 17 00:00:00 2001 From: Lee Shuen Fei <109432084+LeeSF03@users.noreply.github.com> Date: Tue, 15 Apr 2025 07:05:15 +0700 Subject: [PATCH] feat: Display the number of filtered manga in each category's header when searching in library (#387) --- .../tachiyomi/ui/library/LibraryCategoryAdapter.kt | 1 + .../tachiyomi/ui/library/LibraryHeaderHolder.kt | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt index 4bd14503bd..dc63b2db5e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt @@ -173,6 +173,7 @@ class LibraryCategoryAdapter(val controller: LibraryController?) : } isLongPressDragEnabled = libraryListener?.canDrag() == true && s.isNullOrBlank() setItemsPerCategoryMap() + notifyDataSetChanged() } private fun getFirstLetter(name: String): String { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderHolder.kt index 435c209366..85be9b426a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderHolder.kt @@ -186,7 +186,17 @@ class LibraryHeaderHolder(val view: View, val adapter: LibraryCategoryAdapter) : binding.categoryTitle.text = categoryName + if (adapter.showNumber) { - " (${adapter.itemsPerCategory[item.catId]})" + val filteredCount = adapter.currentItems.count { + it is LibraryMangaItem && it.header?.catId == item.catId + } + val totalCount = adapter.itemsPerCategory[item.catId] ?: 0 + val searchText = adapter.getFilter(String::class.java) + var countText = if (searchText.isNullOrBlank()) { + " ($totalCount)" + } else { + " ($filteredCount/$totalCount)" + } + countText } else { "" } if (category.sourceId != null) { val icon = adapter.sourceManager.get(category.sourceId!!)?.icon()