Fix multiple issues with saved searches

This commit is contained in:
Jobobby04 2022-10-14 16:52:55 -04:00
parent 2d2f5cdc66
commit 22abd02641
2 changed files with 11 additions and 8 deletions

View File

@ -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,

View File

@ -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 {