From 0f3dd64c79c86656a748527432da5d3a1a1903fa Mon Sep 17 00:00:00 2001 From: andrewhamilton0 <102604324+andrewhamilton0@users.noreply.github.com> Date: Sat, 20 Jul 2024 04:29:44 -0400 Subject: [PATCH] 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. --- .../tusky/components/search/SearchActivity.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt index 5ea724735..615b0662e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/SearchActivity.kt @@ -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 {