fix search focus

This commit is contained in:
Bnyro 2022-08-26 15:03:40 +02:00
parent 58b61c308f
commit 39f683502e
3 changed files with 30 additions and 1 deletions

View File

@ -202,7 +202,10 @@ class MainActivity : BaseActivity() {
) )
} }
private fun removeSearchFocus() { /**
* Remove the focus of the search view in the toolbar
*/
fun removeSearchFocus() {
searchView.setQuery("", false) searchView.setQuery("", false)
searchView.clearFocus() searchView.clearFocus()
searchView.onActionViewCollapsed() searchView.onActionViewCollapsed()

View File

@ -7,7 +7,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.github.libretube.R
import com.github.libretube.activities.MainActivity import com.github.libretube.activities.MainActivity
import com.github.libretube.adapters.SearchHistoryAdapter import com.github.libretube.adapters.SearchHistoryAdapter
import com.github.libretube.adapters.SearchSuggestionsAdapter import com.github.libretube.adapters.SearchSuggestionsAdapter
@ -18,6 +20,7 @@ import com.github.libretube.extensions.BaseFragment
import com.github.libretube.extensions.TAG import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.await import com.github.libretube.extensions.await
import com.github.libretube.models.SearchViewModel import com.github.libretube.models.SearchViewModel
import kotlinx.android.synthetic.main.activity_main.toolbar
import retrofit2.HttpException import retrofit2.HttpException
import java.io.IOException import java.io.IOException
@ -109,4 +112,14 @@ class SearchFragment() : BaseFragment() {
binding.historyEmpty.visibility = View.VISIBLE binding.historyEmpty.visibility = View.VISIBLE
} }
} }
override fun onStop() {
if (findNavController().currentDestination?.id != R.id.searchResultFragment) {
// remove the search focus
(activity as MainActivity)
.toolbar.menu
.findItem(R.id.action_search).collapseActionView()
}
super.onStop()
}
} }

View File

@ -6,8 +6,10 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.activities.MainActivity
import com.github.libretube.adapters.SearchAdapter import com.github.libretube.adapters.SearchAdapter
import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.RetrofitInstance
import com.github.libretube.databinding.FragmentSearchResultBinding import com.github.libretube.databinding.FragmentSearchResultBinding
@ -18,6 +20,7 @@ import com.github.libretube.extensions.TAG
import com.github.libretube.preferences.PreferenceHelper import com.github.libretube.preferences.PreferenceHelper
import com.github.libretube.preferences.PreferenceKeys import com.github.libretube.preferences.PreferenceKeys
import com.github.libretube.util.hideKeyboard import com.github.libretube.util.hideKeyboard
import kotlinx.android.synthetic.main.activity_main.toolbar
import retrofit2.HttpException import retrofit2.HttpException
import java.io.IOException import java.io.IOException
@ -141,4 +144,14 @@ class SearchResultFragment : BaseFragment() {
) )
} }
} }
override fun onStop() {
if (findNavController().currentDestination?.id != R.id.searchFragment) {
// remove the search focus
(activity as MainActivity)
.toolbar.menu
.findItem(R.id.action_search).collapseActionView()
}
super.onStop()
}
} }