From 42d8b97f9b542ababe025764aa13137fb548fd98 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Wed, 1 Sep 2021 17:34:45 -0400 Subject: [PATCH] Improve loading display of namespace tags --- .../ui/manga/info/MangaInfoHeaderAdapter.kt | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt index 5f504c1f6..da1c416b0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt @@ -397,7 +397,7 @@ class MangaInfoHeaderAdapter( // SY --> // if (source?.getMainSource() != null) { setChipsWithNamespace( - manga.genre, + manga.getGenres(), meta ) // binding.mangaGenresTagsFullChips.isVisible = false @@ -483,7 +483,7 @@ class MangaInfoHeaderAdapter( } } - private fun setChipsWithNamespace(genre: String?, meta: RaisedSearchMetadata?) { + private fun setChipsWithNamespace(genre: List?, meta: RaisedSearchMetadata?) { val namespaceTags = when { meta != null -> { meta.tags @@ -499,7 +499,24 @@ class MangaInfoHeaderAdapter( } } genre != null -> { - listOf(NamespaceTagsItem(null, genre.split(",").map { it.trim() to null })) + if (genre.all { it.contains(':') }) { + genre + .map { tag -> + val index = tag.indexOf(':') + tag.substring(0, index).trim() to tag.substring(index + 1).trim() + } + .groupBy { + it.first + } + .mapValues { group -> + group.value.map { it.second to 0 } + } + .map { (namespace, tags) -> + NamespaceTagsItem(namespace, tags) + } + } else { + listOf(NamespaceTagsItem(null, genre.map { it to null })) + } } else -> emptyList() }