Updates searchView in SearchActivity to clear focus after search (#4578)

Addresses issue #4573. Updates searchView in SearchActivity to clear
focus when a user makes a search. This allows the keyboard to not keep
popping up after a user goes back to search screen after clicking on a
searched item.
This commit is contained in:
andrewhamilton0 2024-07-20 04:29:44 -04:00 committed by GitHub
parent bd09b197f0
commit 0f3dd64c79
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 7 additions and 4 deletions

View File

@ -42,6 +42,8 @@ class SearchActivity : BottomSheetActivity(), MenuProvider, SearchView.OnQueryTe
private val binding by viewBinding(ActivitySearchBinding::inflate)
private lateinit var searchView: SearchView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
@ -78,8 +80,8 @@ class SearchActivity : BottomSheetActivity(), MenuProvider, SearchView.OnQueryTe
menuInflater.inflate(R.menu.search_toolbar, menu)
val searchViewMenuItem = menu.findItem(R.id.action_search)
searchViewMenuItem.expandActionView()
val searchView = searchViewMenuItem.actionView as SearchView
setupSearchView(searchView)
searchView = searchViewMenuItem.actionView as SearchView
setupSearchView()
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
@ -99,10 +101,11 @@ class SearchActivity : BottomSheetActivity(), MenuProvider, SearchView.OnQueryTe
if (Intent.ACTION_SEARCH == intent.action) {
viewModel.currentQuery = intent.getStringExtra(SearchManager.QUERY).orEmpty()
viewModel.search(viewModel.currentQuery)
searchView.clearFocus()
}
}
private fun setupSearchView(searchView: SearchView) {
private fun setupSearchView() {
searchView.setIconifiedByDefault(false)
searchView.setSearchableInfo(
(
@ -143,7 +146,7 @@ class SearchActivity : BottomSheetActivity(), MenuProvider, SearchView.OnQueryTe
searchView.setOnQueryTextListener(this)
searchView.setQuery(viewModel.currentSearchFieldContent ?: "", false)
searchView.requestFocus()
if (viewModel.currentSearchFieldContent == "") searchView.requestFocus()
}
override fun onQueryTextSubmit(query: String?): Boolean {