Fix Manhwa filter not including webtoons

Also some optimizations to setting up series type filters

Co-Authored-By: h-hyuuga <83582211+h-hyuuga@users.noreply.github.com>
This commit is contained in:
Jays2Kings 2022-12-17 15:38:07 -05:00
parent 6468263d9f
commit 515846dcde
2 changed files with 13 additions and 8 deletions

View file

@ -362,7 +362,7 @@ class LibraryPresenter(
if (filterMangaType > 0) {
if (if (filterMangaType == Manga.TYPE_MANHWA) {
(filterMangaType != item.manga.seriesType(sourceManager = sourceManager) && filterMangaType != Manga.TYPE_WEBTOON)
item.manga.seriesType(sourceManager = sourceManager) !in arrayOf(filterMangaType, Manga.TYPE_WEBTOON)
} else {
filterMangaType != item.manga.seriesType(sourceManager = sourceManager)
}

View file

@ -307,19 +307,24 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
withIOContext {
val libraryManga = controller?.presenter?.allLibraryItems ?: return@withIOContext
checked = true
val types = mutableListOf<Int>()
if (libraryManga.any { it.manga.seriesType(sourceManager = sourceManager) == Manga.TYPE_MANHWA }) types.add(R.string.manhwa)
if (libraryManga.any { it.manga.seriesType(sourceManager = sourceManager) == Manga.TYPE_MANHUA }) types.add(R.string.manhua)
if (libraryManga.any { it.manga.seriesType(sourceManager = sourceManager) == Manga.TYPE_COMIC }) types.add(R.string.comic)
var types = mutableSetOf<Int>()
libraryManga.forEach {
when (it.manga.seriesType(sourceManager = sourceManager)) {
Manga.TYPE_MANHWA, Manga.TYPE_WEBTOON -> types.add(R.string.manhwa)
Manga.TYPE_MANHUA -> types.add(R.string.manhua)
Manga.TYPE_COMIC -> types.add(R.string.comic)
}
if (types.size == 3) return@forEach
}
val sortedTypes = arrayOf(R.string.manhwa, R.string.manhua, R.string.comic)
types = types.sortedBy { sortedTypes.indexOf(it) }.toMutableSet()
if (types.isNotEmpty()) {
launchUI {
val mangaType = inflate(R.layout.filter_tag_group) as FilterTagGroup
mangaType.setup(
this@FilterBottomSheet,
R.string.manga,
types.first(),
types.getOrNull(1),
types.getOrNull(2),
*types.toTypedArray(),
)
this@FilterBottomSheet.mangaType = mangaType
reorderFilters()