Fix exclusion in library search

This commit is contained in:
Jobobby04 2020-09-06 22:43:45 -04:00
parent ced8dc750a
commit bdaf0f7492

View File

@ -199,24 +199,24 @@ class LibraryCategoryAdapter(view: LibraryCategoryView, val controller: LibraryC
val query = queryComponent.asQuery() val query = queryComponent.asQuery()
query.isBlank() || ( query.isBlank() || (
(!manga.title.contains(query, true)) && (!manga.title.contains(query, true)) &&
(manga.author == null || (manga.author?.contains(query, true) == false)) && (!(manga.author ?: "").contains(query, true)) &&
(manga.artist == null || (manga.artist?.contains(query, true) == false)) && (!(manga.artist ?: "").contains(query, true)) &&
(source == null || !source.name.contains(query, true)) && (!(source?.name ?: "").contains(query, true)) &&
(hasLoggedServices && tracks != null && !filterTracks(query, tracks)) && (!hasLoggedServices || hasLoggedServices && tracks == null || tracks != null && !filterTracks(query, tracks)) &&
(genre == null || genre.all { !it.contains(query, true) }) && ((genre ?: emptyList()).all { !it.contains(query, true) }) &&
(searchTags == null || searchTags.all { !it.name.contains(query, true) }) || ((searchTags ?: emptyList()).all { !it.name.contains(query, true) }) &&
(searchTitles == null || searchTitles.all { !it.title.contains(query, true) }) ((searchTitles ?: emptyList()).all { !it.title.contains(query, true) })
) )
} }
is Namespace -> { is Namespace -> {
val tag = queryComponent.tag?.asQuery() val searchedTag = queryComponent.tag?.asQuery()
searchTags == null || searchTags.all { searchTags == null || searchTags.all { mangaTag ->
if (tag == null || tag.isBlank()) { if (searchedTag == null || searchedTag.isBlank()) {
it.namespace == null || !it.namespace.contains(queryComponent.namespace, true) mangaTag.namespace == null || !mangaTag.namespace.contains(queryComponent.namespace, true)
} else if (it.namespace == null) { } else if (mangaTag.namespace == null) {
true true
} else { } else {
!(it.name.contains(tag, true) && it.namespace.contains(queryComponent.namespace, true)) !(mangaTag.name.contains(searchedTag, true) && mangaTag.namespace.contains(queryComponent.namespace, true))
} }
} }
} }