From a6d003146241d13ab80b585ff178fae87e540fcc Mon Sep 17 00:00:00 2001 From: stevenyomi <95685115+stevenyomi@users.noreply.github.com> Date: Sun, 18 Dec 2022 02:21:12 +0800 Subject: [PATCH] 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 --- .../ui/browse/source/browse/BrowseSourceScreen.kt | 9 ++++++++- .../browse/source/browse/BrowseSourceScreenModel.kt | 12 ++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt index bc9c2aeaf..dcad0a8fa 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt @@ -103,6 +103,13 @@ data class BrowseSourceScreen( 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 onWebViewClick = f@{ @@ -124,7 +131,7 @@ data class BrowseSourceScreen( source = screenModel.source, displayMode = screenModel.displayMode, onDisplayModeChange = { screenModel.displayMode = it }, - navigateUp = navigator::pop, + navigateUp = navigateUp, onWebViewClick = onWebViewClick, onHelpClick = onHelpClick, onSearch = { screenModel.search(it) }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt index 91b50faf9..a620969ca 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt @@ -473,7 +473,7 @@ open class BrowseSourceScreenModel( onFilterClicked = { search(filters = state.filters) }, onResetClicked = { reset() - filterSheet?.setFilters(state.filterItems) + filterSheet?.setFilters(state.value.filterItems) }, // EXH --> onSaveClicked = { @@ -511,7 +511,7 @@ open class BrowseSourceScreenModel( // EXH <-- ) - filterSheet?.setFilters(state.filterItems) + filterSheet?.setFilters(state.value.filterItems) } sealed class Filter(open val query: String?, open val filters: FilterList) { @@ -556,12 +556,8 @@ open class BrowseSourceScreenModel( val savedSearches: List = emptyList(), // SY <-- ) { - val filterItems = filters.toItems() - val isUserQuery = currentFilter is Filter.UserInput && !currentFilter.query.isNullOrEmpty() - val searchQuery = when (currentFilter) { - is Filter.UserInput -> currentFilter.query - Filter.Latest, Filter.Popular -> null - } + val filterItems get() = filters.toItems() + val isUserQuery get() = currentFilter is Filter.UserInput && !currentFilter.query.isNullOrEmpty() } // EXH -->