From 4cd9c81b92b3fb550a5ff71a668c14b4f111fb8c Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Sat, 17 Dec 2022 03:07:07 -0500 Subject: [PATCH] Fix stats count not being accurate when filtering categories only happens when manga are in multiple categories --- .../ui/more/stats/details/StatsDetailsPresenter.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt index 71d470f2c3..a7876ed0ef 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt @@ -399,11 +399,11 @@ class StatsDetailsPresenter( * Filter the stat data according to the chips selected */ private fun List.filterByChip(): List { - return this.filterBySeriesType(selectedStat == Stats.SERIES_TYPE) + return this.filterByCategory(selectedStat == Stats.CATEGORY) + .filterBySeriesType(selectedStat == Stats.SERIES_TYPE) .filterByStatus(selectedStat == Stats.STATUS) .filterByLanguage(selectedStat == Stats.LANGUAGE || (selectedStat != Stats.SOURCE && selectedSource.isNotEmpty())) .filterBySource(selectedStat in listOf(Stats.SOURCE, Stats.LANGUAGE) || selectedLanguage.isNotEmpty()) - .filterByCategory(selectedStat == Stats.CATEGORY) } private fun List.filterBySeriesType(noFilter: Boolean = false): List { @@ -450,9 +450,9 @@ class StatsDetailsPresenter( return if (noFilter || selectedCategory.isEmpty()) { this } else { - filter { manga -> + libraryMangas.filter { manga -> manga.category in selectedCategory.map { it.id } - } + }.distinct() } }