88package com.owncloud.android.ui.fragment
99
1010import android.Manifest
11+ import android.content.Context
1112import android.content.Intent
1213import android.os.Bundle
1314import android.view.LayoutInflater
@@ -16,6 +17,9 @@ import android.view.MenuInflater
1617import android.view.MenuItem
1718import android.view.View
1819import android.view.ViewGroup
20+ import android.view.inputmethod.EditorInfo
21+ import android.view.inputmethod.InputMethodManager
22+ import android.widget.EditText
1923import android.widget.ImageView
2024import androidx.activity.result.contract.ActivityResultContracts
2125import 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