From 88a8fc9bdece3a91854dab46dd985de27507637c Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sun, 22 Aug 2021 09:29:42 -0600 Subject: [PATCH] search: auto-open keyboard Auto-open the keyboard on the search tab when it starts. --- .../java/org/oxycblt/auxio/search/SearchFragment.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt index 42a66db42..fb0bf311d 100644 --- a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt @@ -22,6 +22,8 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.inputmethod.InputMethodManager +import androidx.core.view.postDelayed import androidx.core.widget.addTextChangedListener import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -32,6 +34,7 @@ import com.google.android.material.appbar.AppBarLayout import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentSearchBinding import org.oxycblt.auxio.detail.DetailViewModel +import org.oxycblt.auxio.getSystemServiceSafe import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.music.Artist @@ -62,6 +65,8 @@ class SearchFragment : Fragment() { val searchAdapter = SearchAdapter(::onItemSelection, ::newMenu) + val imm = requireContext().getSystemServiceSafe(InputMethodManager::class) + val toolbarParams = binding.searchToolbar.layoutParams as AppBarLayout.LayoutParams val defaultParams = toolbarParams.scrollFlags @@ -73,6 +78,7 @@ class SearchFragment : Fragment() { menu.findItem(searchModel.filterMode.toId()).isChecked = true setNavigationOnClickListener { + requireView().rootView.clearFocus() findNavController().navigateUp() } @@ -108,6 +114,12 @@ class SearchFragment : Fragment() { } } + // Auto-open the keyboard + binding.searchEditText.requestFocus() + binding.searchEditText.postDelayed(200) { + imm.showSoftInput(binding.searchEditText, InputMethodManager.SHOW_IMPLICIT) + } + // --- VIEWMODEL SETUP --- searchModel.searchResults.observe(viewLifecycleOwner) { results ->