Fix multiple issues with saved searches
This commit is contained in:
parent
2d2f5cdc66
commit
22abd02641
@ -29,7 +29,6 @@ import eu.kanade.tachiyomi.util.lang.launchUI
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.widget.materialdialogs.setTextInput
|
||||
import exh.savedsearches.EXHSavedSearch
|
||||
import exh.util.nullIfBlank
|
||||
|
||||
open class BrowseSourceController(bundle: Bundle) :
|
||||
FullComposeController<BrowseSourcePresenter>(bundle) {
|
||||
@ -231,7 +230,11 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
}
|
||||
.setPositiveButton(R.string.action_save) { _, _ ->
|
||||
if (searchName.isNotBlank() && searchName !in names) {
|
||||
presenter.saveSearch(searchName.trim(), presenter.searchQuery.orEmpty(), presenter.filters)
|
||||
presenter.saveSearch(
|
||||
name = searchName.trim(),
|
||||
query = presenter.currentFilter.query,
|
||||
filterList = presenter.currentFilter.filters.ifEmpty { presenter.source!!.getFilterList() },
|
||||
)
|
||||
} else {
|
||||
it.toast(R.string.save_search_invalid_name)
|
||||
}
|
||||
@ -263,10 +266,6 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
val allDefault = search.filterList != null && presenter.filters == presenter.source!!.getFilterList()
|
||||
filterSheet?.dismiss()
|
||||
|
||||
presenter.searchQuery = search.query.nullIfBlank()
|
||||
if (search.filterList != null) {
|
||||
filterSheet?.setFilters(search.filterList.toItems())
|
||||
}
|
||||
presenter.search(
|
||||
query = search.query,
|
||||
filters = if (allDefault) null else search.filterList,
|
||||
|
@ -217,6 +217,11 @@ open class BrowseSourcePresenter(
|
||||
}
|
||||
|
||||
fun search(query: String? = null, filters: FilterList? = null) {
|
||||
// SY -->
|
||||
if (filters != null && filters !== state.filters) {
|
||||
state.filters = filters
|
||||
}
|
||||
// SY <--
|
||||
Filter.valueOf(query ?: "").let {
|
||||
if (it !is Filter.UserInput) {
|
||||
state.currentFilter = it
|
||||
@ -247,8 +252,7 @@ open class BrowseSourcePresenter(
|
||||
if (savedSearchFilters != null) {
|
||||
val savedSearch = runBlocking { getExhSavedSearch.awaitOne(savedSearchFilters) { filters } }
|
||||
if (savedSearch != null) {
|
||||
state.searchQuery = savedSearch.query.nullIfBlank()
|
||||
search(query = savedSearch.query, filters = savedSearch.filterList)
|
||||
search(query = savedSearch.query.nullIfBlank(), filters = savedSearch.filterList)
|
||||
}
|
||||
} else if (jsonFilters != null) {
|
||||
runCatching {
|
||||
|
Loading…
x
Reference in New Issue
Block a user