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.util.system.toast
|
||||||
import eu.kanade.tachiyomi.widget.materialdialogs.setTextInput
|
import eu.kanade.tachiyomi.widget.materialdialogs.setTextInput
|
||||||
import exh.savedsearches.EXHSavedSearch
|
import exh.savedsearches.EXHSavedSearch
|
||||||
import exh.util.nullIfBlank
|
|
||||||
|
|
||||||
open class BrowseSourceController(bundle: Bundle) :
|
open class BrowseSourceController(bundle: Bundle) :
|
||||||
FullComposeController<BrowseSourcePresenter>(bundle) {
|
FullComposeController<BrowseSourcePresenter>(bundle) {
|
||||||
@ -231,7 +230,11 @@ open class BrowseSourceController(bundle: Bundle) :
|
|||||||
}
|
}
|
||||||
.setPositiveButton(R.string.action_save) { _, _ ->
|
.setPositiveButton(R.string.action_save) { _, _ ->
|
||||||
if (searchName.isNotBlank() && searchName !in names) {
|
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 {
|
} else {
|
||||||
it.toast(R.string.save_search_invalid_name)
|
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()
|
val allDefault = search.filterList != null && presenter.filters == presenter.source!!.getFilterList()
|
||||||
filterSheet?.dismiss()
|
filterSheet?.dismiss()
|
||||||
|
|
||||||
presenter.searchQuery = search.query.nullIfBlank()
|
|
||||||
if (search.filterList != null) {
|
|
||||||
filterSheet?.setFilters(search.filterList.toItems())
|
|
||||||
}
|
|
||||||
presenter.search(
|
presenter.search(
|
||||||
query = search.query,
|
query = search.query,
|
||||||
filters = if (allDefault) null else search.filterList,
|
filters = if (allDefault) null else search.filterList,
|
||||||
|
@ -217,6 +217,11 @@ open class BrowseSourcePresenter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun search(query: String? = null, filters: FilterList? = null) {
|
fun search(query: String? = null, filters: FilterList? = null) {
|
||||||
|
// SY -->
|
||||||
|
if (filters != null && filters !== state.filters) {
|
||||||
|
state.filters = filters
|
||||||
|
}
|
||||||
|
// SY <--
|
||||||
Filter.valueOf(query ?: "").let {
|
Filter.valueOf(query ?: "").let {
|
||||||
if (it !is Filter.UserInput) {
|
if (it !is Filter.UserInput) {
|
||||||
state.currentFilter = it
|
state.currentFilter = it
|
||||||
@ -247,8 +252,7 @@ open class BrowseSourcePresenter(
|
|||||||
if (savedSearchFilters != null) {
|
if (savedSearchFilters != null) {
|
||||||
val savedSearch = runBlocking { getExhSavedSearch.awaitOne(savedSearchFilters) { filters } }
|
val savedSearch = runBlocking { getExhSavedSearch.awaitOne(savedSearchFilters) { filters } }
|
||||||
if (savedSearch != null) {
|
if (savedSearch != null) {
|
||||||
state.searchQuery = savedSearch.query.nullIfBlank()
|
search(query = savedSearch.query.nullIfBlank(), filters = savedSearch.filterList)
|
||||||
search(query = savedSearch.query, filters = savedSearch.filterList)
|
|
||||||
}
|
}
|
||||||
} else if (jsonFilters != null) {
|
} else if (jsonFilters != null) {
|
||||||
runCatching {
|
runCatching {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user