From 4006501d4103fce67cefc0cb25bb60b6492dc1db Mon Sep 17 00:00:00 2001 From: mcarare Date: Tue, 28 Apr 2020 15:14:52 +0300 Subject: [PATCH] For #9728: Add actionbar search for language list. --- .../advanced/LocaleSettingsFragment.kt | 28 +++++++++++++++++++ .../settings/advanced/LocaleSettingsView.kt | 12 -------- .../res/layout/component_locale_settings.xml | 19 +------------ app/src/main/res/menu/languages_list.xml | 14 ++++++++++ 4 files changed, 43 insertions(+), 30 deletions(-) create mode 100644 app/src/main/res/menu/languages_list.xml diff --git a/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt index 37ab0f053..ea5df963e 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt @@ -6,8 +6,12 @@ package org.mozilla.fenix.settings.advanced import android.os.Bundle import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater import android.view.View import android.view.ViewGroup +import android.view.inputmethod.EditorInfo +import androidx.appcompat.widget.SearchView import androidx.fragment.app.Fragment import kotlinx.android.synthetic.main.fragment_locale_settings.view.* import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -24,6 +28,11 @@ class LocaleSettingsFragment : Fragment() { private lateinit var interactor: LocaleSettingsInteractor private lateinit var localeView: LocaleSettingsView + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setHasOptionsMenu(true) + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -42,6 +51,25 @@ class LocaleSettingsFragment : Fragment() { return view } + override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { + inflater.inflate(R.menu.languages_list, menu) + val searchItem = menu.findItem(R.id.search) + val searchView: SearchView = searchItem.actionView as SearchView + searchView.imeOptions = EditorInfo.IME_ACTION_DONE + searchView.queryHint = getString(R.string.locale_search_hint) + + searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { + override fun onQueryTextSubmit(query: String): Boolean { + return false + } + + override fun onQueryTextChange(newText: String): Boolean { + interactor.onSearchQueryTyped(newText) + return false + } + }) + } + override fun onResume() { super.onResume() localeView.onResume() diff --git a/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsView.kt b/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsView.kt index 17e37cc56..acef1e947 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsView.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsView.kt @@ -7,7 +7,6 @@ package org.mozilla.fenix.settings.advanced import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.SearchView import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.component_locale_settings.view.* import org.mozilla.fenix.R @@ -38,17 +37,6 @@ class LocaleSettingsView( adapter = localeAdapter layoutManager = LinearLayoutManager(context) } - val searchView: SearchView = view.toolbar_container - searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { - override fun onQueryTextSubmit(query: String): Boolean { - return false - } - - override fun onQueryTextChange(newText: String): Boolean { - interactor.onSearchQueryTyped(newText) - return false - } - }) } fun update(state: LocaleSettingsState) { diff --git a/app/src/main/res/layout/component_locale_settings.xml b/app/src/main/res/layout/component_locale_settings.xml index bdb330d4e..98ccd27cd 100644 --- a/app/src/main/res/layout/component_locale_settings.xml +++ b/app/src/main/res/layout/component_locale_settings.xml @@ -6,23 +6,6 @@ android:focusable="true" android:focusableInTouchMode="true"> - - + app:layout_constraintTop_toTopOf="parent" /> \ No newline at end of file diff --git a/app/src/main/res/menu/languages_list.xml b/app/src/main/res/menu/languages_list.xml new file mode 100644 index 000000000..f3d854c2c --- /dev/null +++ b/app/src/main/res/menu/languages_list.xml @@ -0,0 +1,14 @@ + + + +