98 lines
4.2 KiB
Kotlin
98 lines
4.2 KiB
Kotlin
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
package org.mozilla.fenix.settings.search
|
|
|
|
import android.os.Bundle
|
|
import androidx.navigation.fragment.findNavController
|
|
import androidx.preference.CheckBoxPreference
|
|
import androidx.preference.Preference
|
|
import androidx.preference.PreferenceFragmentCompat
|
|
import androidx.preference.SwitchPreference
|
|
import org.mozilla.fenix.R
|
|
import org.mozilla.fenix.ext.getPreferenceKey
|
|
import org.mozilla.fenix.ext.settings
|
|
import org.mozilla.fenix.ext.showToolbar
|
|
import org.mozilla.fenix.settings.SharedPreferenceUpdater
|
|
import org.mozilla.fenix.settings.requirePreference
|
|
|
|
class SearchEngineFragment : PreferenceFragmentCompat() {
|
|
|
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
|
setPreferencesFromResource(R.xml.search_preferences, rootKey)
|
|
}
|
|
|
|
override fun onResume() {
|
|
super.onResume()
|
|
showToolbar(getString(R.string.preferences_search))
|
|
|
|
val searchSuggestionsPreference =
|
|
requirePreference<SwitchPreference>(R.string.pref_key_show_search_suggestions).apply {
|
|
isChecked = context.settings().shouldShowSearchSuggestions
|
|
}
|
|
|
|
val searchSuggestionsInPrivatePreference =
|
|
requirePreference<CheckBoxPreference>(R.string.pref_key_show_search_suggestions_in_private).apply {
|
|
isChecked = context.settings().shouldShowSearchSuggestionsInPrivate
|
|
}
|
|
|
|
val showSearchShortcuts =
|
|
requirePreference<SwitchPreference>(R.string.pref_key_show_search_engine_shortcuts).apply {
|
|
isChecked = context.settings().shouldShowSearchShortcuts
|
|
}
|
|
|
|
val showHistorySuggestions =
|
|
requirePreference<SwitchPreference>(R.string.pref_key_search_browsing_history).apply {
|
|
isChecked = context.settings().shouldShowHistorySuggestions
|
|
}
|
|
|
|
val showBookmarkSuggestions =
|
|
requirePreference<SwitchPreference>(R.string.pref_key_search_bookmarks).apply {
|
|
isChecked = context.settings().shouldShowBookmarkSuggestions
|
|
}
|
|
|
|
val showClipboardSuggestions =
|
|
requirePreference<SwitchPreference>(R.string.pref_key_show_clipboard_suggestions).apply {
|
|
isChecked = context.settings().shouldShowClipboardSuggestions
|
|
}
|
|
|
|
val searchEngineListPreference =
|
|
requirePreference<SearchEngineListPreference>(R.string.pref_key_search_engine_list)
|
|
|
|
val showVoiceSearchPreference =
|
|
requirePreference<SwitchPreference>(R.string.pref_key_show_voice_search).apply {
|
|
isChecked = context.settings().shouldShowVoiceSearch
|
|
}
|
|
|
|
searchEngineListPreference.reload(requireContext())
|
|
searchSuggestionsPreference.onPreferenceChangeListener = SharedPreferenceUpdater()
|
|
showSearchShortcuts.onPreferenceChangeListener = SharedPreferenceUpdater()
|
|
showHistorySuggestions.onPreferenceChangeListener = SharedPreferenceUpdater()
|
|
showBookmarkSuggestions.onPreferenceChangeListener = SharedPreferenceUpdater()
|
|
showClipboardSuggestions.onPreferenceChangeListener = SharedPreferenceUpdater()
|
|
searchSuggestionsInPrivatePreference.onPreferenceChangeListener = SharedPreferenceUpdater()
|
|
showVoiceSearchPreference.onPreferenceChangeListener = SharedPreferenceUpdater()
|
|
|
|
searchSuggestionsPreference.setOnPreferenceClickListener {
|
|
if (!searchSuggestionsPreference.isChecked) {
|
|
searchSuggestionsInPrivatePreference.isChecked = false
|
|
searchSuggestionsInPrivatePreference.callChangeListener(false)
|
|
}
|
|
true
|
|
}
|
|
}
|
|
|
|
override fun onPreferenceTreeClick(preference: Preference): Boolean {
|
|
when (preference.key) {
|
|
getPreferenceKey(R.string.pref_key_add_search_engine) -> {
|
|
val directions = SearchEngineFragmentDirections
|
|
.actionSearchEngineFragmentToAddSearchEngineFragment()
|
|
findNavController().navigate(directions)
|
|
}
|
|
}
|
|
|
|
return super.onPreferenceTreeClick(preference)
|
|
}
|
|
}
|