From 49fbe1f408102e70e6f52bd969974f971b37b547 Mon Sep 17 00:00:00 2001 From: andrewhamilton0 <102604324+andrewhamilton0@users.noreply.github.com> Date: Sun, 1 Sep 2024 07:28:55 -0400 Subject: [PATCH] Minimizes keyboard on search screen (#4633) Adds feature if user clicks on toolbar, on the pages box, or on the tabs buttons that the keyboard will minimize and focus will be taken off of search bar. Further addresses issue #4573 --- .../tusky/components/search/SearchActivity.kt | 27 +++++++++++++++++++ app/src/main/res/layout/activity_search.xml | 8 +++++- 2 files changed, 34 insertions(+), 1 deletion(-) 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 615b0662e..21c0b00ec 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 @@ -22,9 +22,11 @@ import android.os.Bundle import android.view.Menu import android.view.MenuInflater import android.view.MenuItem +import android.view.MotionEvent import androidx.activity.viewModels import androidx.appcompat.widget.SearchView import androidx.core.view.MenuProvider +import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import com.keylesspalace.tusky.BottomSheetActivity import com.keylesspalace.tusky.R @@ -82,6 +84,7 @@ class SearchActivity : BottomSheetActivity(), MenuProvider, SearchView.OnQueryTe searchViewMenuItem.expandActionView() searchView = searchViewMenuItem.actionView as SearchView setupSearchView() + setupClearFocusOnClickListeners() } override fun onMenuItemSelected(menuItem: MenuItem): Boolean { @@ -105,6 +108,30 @@ class SearchActivity : BottomSheetActivity(), MenuProvider, SearchView.OnQueryTe } } + private fun setupClearFocusOnClickListeners() { + binding.overlayPagesClickView.setOnTouchListener { view, event -> + if (event.action == MotionEvent.ACTION_DOWN) { + searchView.clearFocus() + view.performClick() + } + false + } + binding.toolbar.setOnClickListener { + searchView.clearFocus() + } + binding.tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { + override fun onTabSelected(p0: TabLayout.Tab?) { + searchView.clearFocus() + } + + override fun onTabUnselected(p0: TabLayout.Tab?) {} + + override fun onTabReselected(p0: TabLayout.Tab?) { + searchView.clearFocus() + } + }) + } + private fun setupSearchView() { searchView.setIconifiedByDefault(false) searchView.setSearchableInfo( diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml index 993cad391..0651407d8 100644 --- a/app/src/main/res/layout/activity_search.xml +++ b/app/src/main/res/layout/activity_search.xml @@ -38,6 +38,12 @@ android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + + - \ No newline at end of file +