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
+