Tweak behavior on Browse screen (#8121)

* Tweak behavior on Browse screen

- Fix system back popping controller
- Add behavior to system back to cancel search toolbar before clearing current search or popping controller

* Review changes
This commit is contained in:
Andreas
2022-10-01 16:32:41 +02:00
committed by GitHub
parent 58c47c4c50
commit 6ac17363ed
4 changed files with 24 additions and 33 deletions
@@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.browse.source.browse
import android.os.Bundle
import androidx.activity.compose.BackHandler
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.rememberCoroutineScope
@@ -52,13 +53,7 @@ open class BrowseSourceController(bundle: Bundle) :
BrowseSourceScreen(
presenter = presenter,
navigateUp = {
if (presenter.isUserQuery) {
presenter.search()
} else {
router.popCurrentController()
}
},
navigateUp = ::navigateUp,
openFilterSheet = { filterSheet?.show() },
onMangaClick = { router.pushController(MangaController(it.id, true)) },
onMangaLongClick = { manga ->
@@ -114,11 +109,21 @@ open class BrowseSourceController(bundle: Bundle) :
null -> {}
}
BackHandler(onBack = ::navigateUp)
LaunchedEffect(presenter.filters) {
initFilterSheet()
}
}
private fun navigateUp() {
when {
presenter.searchQuery != null -> presenter.searchQuery = null
presenter.isUserQuery -> presenter.search()
else -> router.popCurrentController()
}
}
open fun initFilterSheet() {
if (presenter.filters.isEmpty()) {
return
@@ -144,8 +149,7 @@ open class BrowseSourceController(bundle: Bundle) :
* @param newQuery the new query.
*/
fun searchWithQuery(newQuery: String) {
presenter.searchQuery = newQuery
presenter.search()
presenter.search(newQuery)
}
/**