BrowseSourceScreen: fix navigate up and filter sheet (#8761)

(cherry picked from commit 817e144ff697b4c6760c0101a6995d7030eb48a0)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
This commit is contained in:
stevenyomi 2022-12-18 02:21:12 +08:00 committed by Jobobby04
parent c081efba4b
commit a6d0031462
2 changed files with 12 additions and 9 deletions

View File

@ -103,6 +103,13 @@ data class BrowseSourceScreen(
val snackbarHostState = remember { SnackbarHostState() } val snackbarHostState = remember { SnackbarHostState() }
val navigateUp: () -> Unit = {
when {
!state.isUserQuery && state.toolbarQuery != null -> screenModel.setToolbarQuery(null)
else -> navigator.pop()
}
}
val onHelpClick = { uriHandler.openUri(LocalSource.HELP_URL) } val onHelpClick = { uriHandler.openUri(LocalSource.HELP_URL) }
val onWebViewClick = f@{ val onWebViewClick = f@{
@ -124,7 +131,7 @@ data class BrowseSourceScreen(
source = screenModel.source, source = screenModel.source,
displayMode = screenModel.displayMode, displayMode = screenModel.displayMode,
onDisplayModeChange = { screenModel.displayMode = it }, onDisplayModeChange = { screenModel.displayMode = it },
navigateUp = navigator::pop, navigateUp = navigateUp,
onWebViewClick = onWebViewClick, onWebViewClick = onWebViewClick,
onHelpClick = onHelpClick, onHelpClick = onHelpClick,
onSearch = { screenModel.search(it) }, onSearch = { screenModel.search(it) },

View File

@ -473,7 +473,7 @@ open class BrowseSourceScreenModel(
onFilterClicked = { search(filters = state.filters) }, onFilterClicked = { search(filters = state.filters) },
onResetClicked = { onResetClicked = {
reset() reset()
filterSheet?.setFilters(state.filterItems) filterSheet?.setFilters(state.value.filterItems)
}, },
// EXH --> // EXH -->
onSaveClicked = { onSaveClicked = {
@ -511,7 +511,7 @@ open class BrowseSourceScreenModel(
// EXH <-- // EXH <--
) )
filterSheet?.setFilters(state.filterItems) filterSheet?.setFilters(state.value.filterItems)
} }
sealed class Filter(open val query: String?, open val filters: FilterList) { sealed class Filter(open val query: String?, open val filters: FilterList) {
@ -556,12 +556,8 @@ open class BrowseSourceScreenModel(
val savedSearches: List<EXHSavedSearch> = emptyList(), val savedSearches: List<EXHSavedSearch> = emptyList(),
// SY <-- // SY <--
) { ) {
val filterItems = filters.toItems() val filterItems get() = filters.toItems()
val isUserQuery = currentFilter is Filter.UserInput && !currentFilter.query.isNullOrEmpty() val isUserQuery get() = currentFilter is Filter.UserInput && !currentFilter.query.isNullOrEmpty()
val searchQuery = when (currentFilter) {
is Filter.UserInput -> currentFilter.query
Filter.Latest, Filter.Popular -> null
}
} }
// EXH --> // EXH -->