Refactor SearchMenuProvider

devel
Koitharu 6 months ago
parent 119b7c2ac7
commit 0e98dd8695
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -94,7 +94,7 @@ class SearchActivity :
setDisplayHomeAsUp(isEnabled = true, showUpAsClose = false) setDisplayHomeAsUp(isEnabled = true, showUpAsClose = false)
supportActionBar?.setSubtitle(R.string.search_results) supportActionBar?.setSubtitle(R.string.search_results)
addMenuProvider(SearchKindMenuProvider(this, viewModel, viewModel.query, viewModel.kind)) addMenuProvider(SearchMenuProvider(this, viewModel))
viewModel.list.observe(this, adapter) viewModel.list.observe(this, adapter)
viewModel.onError.observeEvent(this, SnackbarErrorObserver(viewBinding.recyclerView, null)) viewModel.onError.observeEvent(this, SnackbarErrorObserver(viewBinding.recyclerView, null))

@ -9,11 +9,9 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.nav.router import org.koitharu.kotatsu.core.nav.router
import org.koitharu.kotatsu.search.domain.SearchKind import org.koitharu.kotatsu.search.domain.SearchKind
class SearchKindMenuProvider( class SearchMenuProvider(
private val activity: SearchActivity, private val activity: SearchActivity,
private val viewModel: SearchViewModel, private val viewModel: SearchViewModel,
private val query: String,
private val kind: SearchKind,
) : MenuProvider { ) : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
@ -23,7 +21,7 @@ class SearchKindMenuProvider(
override fun onPrepareMenu(menu: Menu) { override fun onPrepareMenu(menu: Menu) {
super.onPrepareMenu(menu) super.onPrepareMenu(menu)
menu.findItem( menu.findItem(
when (kind) { when (viewModel.kind) {
SearchKind.SIMPLE -> R.id.action_kind_simple SearchKind.SIMPLE -> R.id.action_kind_simple
SearchKind.TITLE -> R.id.action_kind_title SearchKind.TITLE -> R.id.action_kind_title
SearchKind.AUTHOR -> R.id.action_kind_author SearchKind.AUTHOR -> R.id.action_kind_author
@ -54,9 +52,9 @@ class SearchKindMenuProvider(
R.id.action_kind_tag -> SearchKind.TAG R.id.action_kind_tag -> SearchKind.TAG
else -> return false else -> return false
} }
if (newKind != kind) { if (newKind != viewModel.kind) {
activity.router.openSearch( activity.router.openSearch(
query = query, query = viewModel.query,
kind = newKind, kind = newKind,
) )
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
Loading…
Cancel
Save