Skip to content

Commit 87ce71c

Browse files
Merge pull request nextcloud#15091 from nextcloud/bugfix/hide-keyboard-after-search
BugFix - Hide Keyboard After Search
2 parents 2221047 + 63b6618 commit 87ce71c

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

app/src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package com.owncloud.android.ui.fragment
99

1010
import android.Manifest
11+
import android.content.Context
1112
import android.content.Intent
1213
import android.os.Bundle
1314
import android.view.LayoutInflater
@@ -16,6 +17,9 @@ import android.view.MenuInflater
1617
import android.view.MenuItem
1718
import android.view.View
1819
import android.view.ViewGroup
20+
import android.view.inputmethod.EditorInfo
21+
import android.view.inputmethod.InputMethodManager
22+
import android.widget.EditText
1923
import android.widget.ImageView
2024
import androidx.activity.result.contract.ActivityResultContracts
2125
import androidx.annotation.VisibleForTesting
@@ -180,6 +184,33 @@ class UnifiedSearchFragment :
180184
setOnQueryTextListener(this@UnifiedSearchFragment)
181185
isIconified = false
182186
clearFocus()
187+
setSearchAction(this)
188+
}
189+
}
190+
191+
private fun setSearchAction(searchView: SearchView) {
192+
val searchEditText = searchView.findViewById<EditText>(androidx.appcompat.R.id.search_src_text)
193+
searchEditText.setOnEditorActionListener { v, actionId, _ ->
194+
val isActionSearch = (actionId == EditorInfo.IME_ACTION_SEARCH)
195+
if (isActionSearch) {
196+
// Hide keyboard
197+
(requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).apply {
198+
hideSoftInputFromWindow(v.windowToken, 0)
199+
}
200+
201+
// Disable cursor
202+
searchEditText.run {
203+
isCursorVisible = false
204+
clearFocus()
205+
onQueryTextSubmit(text.toString())
206+
}
207+
}
208+
209+
isActionSearch
210+
}
211+
212+
searchView.setOnQueryTextFocusChangeListener { _, hasFocus ->
213+
searchEditText.isCursorVisible = hasFocus
183214
}
184215
}
185216

0 commit comments

Comments
 (0)