Fix logic for searchWithGenre (#7559)

(cherry picked from commit b563e85c3b)
This commit is contained in:
MatchaSoba 2022-07-30 23:53:25 +08:00 committed by arkon
parent d4adb664cc
commit 650c2dc6e7

View file

@ -343,11 +343,11 @@ open class BrowseSourceController(bundle: Bundle) :
* @param genreName the name of the genre
*/
fun searchWithGenre(genreName: String) {
presenter.sourceFilters = presenter.source.getFilterList()
val defaultFilters = presenter.source.getFilterList()
var filterList: FilterList? = null
var genreExists = false
filter@ for (sourceFilter in presenter.sourceFilters) {
filter@ for (sourceFilter in defaultFilters) {
if (sourceFilter is Filter.Group<*>) {
for (filter in sourceFilter.state) {
if (filter is Filter<*> && filter.name.equals(genreName, true)) {
@ -356,7 +356,7 @@ open class BrowseSourceController(bundle: Bundle) :
is Filter.CheckBox -> filter.state = true
else -> {}
}
filterList = presenter.sourceFilters
genreExists = true
break@filter
}
}
@ -366,19 +366,20 @@ open class BrowseSourceController(bundle: Bundle) :
if (index != -1) {
sourceFilter.state = index
filterList = presenter.sourceFilters
genreExists = true
break
}
}
}
if (filterList != null) {
if (genreExists) {
presenter.sourceFilters = defaultFilters
filterSheet?.setFilters(presenter.filterItems)
showProgressBar()
adapter?.clear()
presenter.restartPager("", filterList)
presenter.restartPager("", defaultFilters)
} else {
searchWithQuery(genreName)
}