Add function in interface to get list of genres

This commit is contained in:
arkon 2020-04-18 11:36:05 -04:00
parent 5cff247aa4
commit 42a97f8c40
3 changed files with 13 additions and 12 deletions

View File

@ -28,6 +28,10 @@ interface Manga : SManga {
return chapter_flags and SORT_MASK == SORT_DESC
}
fun getGenres(): List<String>? {
return genre?.split(", ")?.map { it.trim() }
}
// Used to display the chapter's title one way or another
var displayMode: Int
get() = chapter_flags and DISPLAY_MASK

View File

@ -70,10 +70,9 @@ class LibraryItem(val manga: LibraryManga, private val libraryAsList: Preference
(manga.artist?.contains(constraint, true) ?: false) ||
sourceManager.getOrStub(manga.source).name.contains(constraint, true) ||
if (constraint.contains(",")) {
val genres = manga.genre?.split(", ")
constraint.split(",").all { containsGenre(it.trim(), genres) }
constraint.split(",").all { containsGenre(it.trim(), manga.getGenres()) }
} else {
containsGenre(constraint, manga.genre?.split(", "))
containsGenre(constraint, manga.getGenres())
}
}

View File

@ -245,16 +245,14 @@ class MangaInfoController : NucleusController<MangaInfoPresenter>(),
if (!manga.genre.isNullOrBlank()) {
binding.mangaGenresTags.removeAllViews()
manga.genre?.split(", ").orEmpty()
.map { it.trim() }
.forEach { genre ->
val chip = Chip(view.context).apply {
text = genre
setOnClickListener { performSearch(genre) }
}
binding.mangaGenresTags.addView(chip)
manga.getGenres()?.forEach { genre ->
val chip = Chip(view.context).apply {
text = genre
setOnClickListener { performSearch(genre) }
}
binding.mangaGenresTags.addView(chip)
}
}
// Update description TextView.