For #11365: Reorganizes 'SettingsFragment' items
Moved all the functionality form 'DefaultBrowserSettingsFragment' to 'SettingsFragment'.
This commit is contained in:
parent
11697c1363
commit
bc53296603
|
@ -24,7 +24,6 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) {
|
|||
FromExceptions(R.id.exceptionsFragment),
|
||||
FromAbout(R.id.aboutFragment),
|
||||
FromTrackingProtection(R.id.trackingProtectionFragment),
|
||||
FromDefaultBrowserSettingsFragment(R.id.defaultBrowserSettingsFragment),
|
||||
FromSavedLoginsFragment(R.id.savedLoginsFragment),
|
||||
FromAddNewDeviceFragment(R.id.addNewDeviceFragment),
|
||||
FromAddSearchEngineFragment(R.id.addSearchEngineFragment),
|
||||
|
|
|
@ -70,7 +70,6 @@ import org.mozilla.fenix.library.history.HistoryFragmentDirections
|
|||
import org.mozilla.fenix.perf.Performance
|
||||
import org.mozilla.fenix.perf.StartupTimeline
|
||||
import org.mozilla.fenix.search.SearchFragmentDirections
|
||||
import org.mozilla.fenix.settings.DefaultBrowserSettingsFragmentDirections
|
||||
import org.mozilla.fenix.settings.SettingsFragmentDirections
|
||||
import org.mozilla.fenix.settings.TrackingProtectionFragmentDirections
|
||||
import org.mozilla.fenix.settings.about.AboutFragmentDirections
|
||||
|
@ -384,8 +383,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity() {
|
|||
AboutFragmentDirections.actionGlobalBrowser(customTabSessionId)
|
||||
BrowserDirection.FromTrackingProtection ->
|
||||
TrackingProtectionFragmentDirections.actionGlobalBrowser(customTabSessionId)
|
||||
BrowserDirection.FromDefaultBrowserSettingsFragment ->
|
||||
DefaultBrowserSettingsFragmentDirections.actionGlobalBrowser(customTabSessionId)
|
||||
BrowserDirection.FromSavedLoginsFragment ->
|
||||
SavedLoginsAuthFragmentDirections.actionGlobalBrowser(customTabSessionId)
|
||||
BrowserDirection.FromAddNewDeviceFragment ->
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
/* 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
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Build.VERSION.SDK_INT
|
||||
import android.os.Bundle
|
||||
import android.provider.Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import org.mozilla.fenix.BrowserDirection
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.ext.getPreferenceKey
|
||||
import org.mozilla.fenix.ext.showToolbar
|
||||
|
||||
/**
|
||||
* Lets the user control their default browser preferences
|
||||
*/
|
||||
class DefaultBrowserSettingsFragment : PreferenceFragmentCompat() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
val makeDefaultBrowserKey = getPreferenceKey(R.string.pref_key_make_default_browser)
|
||||
val preferenceMakeDefaultBrowser = findPreference<Preference>(makeDefaultBrowserKey)
|
||||
|
||||
preferenceMakeDefaultBrowser?.onPreferenceClickListener =
|
||||
getClickListenerForMakeDefaultBrowser()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
showToolbar(getString(R.string.preferences_set_as_default_browser))
|
||||
|
||||
updatePreferences()
|
||||
}
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.default_browser_preferences, rootKey)
|
||||
updatePreferences()
|
||||
}
|
||||
|
||||
private fun updatePreferences() {
|
||||
findPreference<DefaultBrowserPreference>(getPreferenceKey(R.string.pref_key_make_default_browser))
|
||||
?.updateSwitch()
|
||||
}
|
||||
|
||||
private fun getClickListenerForMakeDefaultBrowser(): Preference.OnPreferenceClickListener {
|
||||
return if (SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Preference.OnPreferenceClickListener {
|
||||
val intent = Intent(ACTION_MANAGE_DEFAULT_APPS_SETTINGS)
|
||||
startActivity(intent)
|
||||
true
|
||||
}
|
||||
} else {
|
||||
Preference.OnPreferenceClickListener {
|
||||
(activity as HomeActivity).openToBrowserAndLoad(
|
||||
searchTermOrURL = SupportUtils.getSumoURLForTopic(
|
||||
requireContext(),
|
||||
SupportUtils.SumoTopic.SET_AS_DEFAULT_BROWSER
|
||||
),
|
||||
newTab = true,
|
||||
from = BrowserDirection.FromDefaultBrowserSettingsFragment
|
||||
)
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,8 +8,10 @@ import android.content.ActivityNotFoundException
|
|||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.provider.Settings
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
|
@ -114,6 +116,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.preferences, rootKey)
|
||||
updateMakeDefaultBrowserPreference()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
@ -173,6 +176,8 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
requireComponents.backgroundServices.accountManager.accountProfile()
|
||||
)
|
||||
}
|
||||
|
||||
updateMakeDefaultBrowserPreference()
|
||||
}
|
||||
|
||||
@Suppress("ComplexMethod", "LongMethod")
|
||||
|
@ -208,9 +213,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
requireContext().metrics.track(Event.AddonsOpenInSettings)
|
||||
SettingsFragmentDirections.actionSettingsFragmentToAddonsFragment()
|
||||
}
|
||||
resources.getString(R.string.pref_key_make_default_browser) -> {
|
||||
SettingsFragmentDirections.actionSettingsFragmentToDefaultBrowserSettingsFragment()
|
||||
}
|
||||
resources.getString(R.string.pref_key_data_choices) -> {
|
||||
SettingsFragmentDirections.actionSettingsFragmentToDataChoicesFragment()
|
||||
}
|
||||
|
@ -289,9 +291,11 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
private fun setupPreferences() {
|
||||
val leakKey = getPreferenceKey(R.string.pref_key_leakcanary)
|
||||
val debuggingKey = getPreferenceKey(R.string.pref_key_remote_debugging)
|
||||
val makeDefaultBrowserKey = getPreferenceKey(R.string.pref_key_make_default_browser)
|
||||
|
||||
val preferenceLeakCanary = findPreference<Preference>(leakKey)
|
||||
val preferenceRemoteDebugging = findPreference<Preference>(debuggingKey)
|
||||
val preferenceMakeDefaultBrowser = findPreference<Preference>(makeDefaultBrowserKey)
|
||||
|
||||
if (!Config.channel.isReleased) {
|
||||
preferenceLeakCanary?.setOnPreferenceChangeListener { _, newValue ->
|
||||
|
@ -308,6 +312,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
true
|
||||
}
|
||||
|
||||
preferenceMakeDefaultBrowser?.onPreferenceClickListener =
|
||||
getClickListenerForMakeDefaultBrowser()
|
||||
|
||||
val preferenceFxAOverride =
|
||||
findPreference<Preference>(getPreferenceKey(R.string.pref_key_override_fxa_server))
|
||||
val preferenceSyncOverride =
|
||||
|
@ -335,6 +342,33 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
)?.isVisible = requireContext().settings().showSecretDebugMenuThisSession
|
||||
}
|
||||
|
||||
private fun getClickListenerForMakeDefaultBrowser(): Preference.OnPreferenceClickListener {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Preference.OnPreferenceClickListener {
|
||||
val intent = Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)
|
||||
startActivity(intent)
|
||||
true
|
||||
}
|
||||
} else {
|
||||
Preference.OnPreferenceClickListener {
|
||||
(activity as HomeActivity).openToBrowserAndLoad(
|
||||
searchTermOrURL = SupportUtils.getSumoURLForTopic(
|
||||
requireContext(),
|
||||
SupportUtils.SumoTopic.SET_AS_DEFAULT_BROWSER
|
||||
),
|
||||
newTab = true,
|
||||
from = BrowserDirection.FromSettings
|
||||
)
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateMakeDefaultBrowserPreference() {
|
||||
findPreference<DefaultBrowserPreference>(getPreferenceKey(R.string.pref_key_make_default_browser))
|
||||
?.updateSwitch()
|
||||
}
|
||||
|
||||
private fun navigateFromSettings(directions: NavDirections) {
|
||||
view?.findNavController()?.let { navController ->
|
||||
if (navController.currentDestination?.id == R.id.settingsFragment) {
|
||||
|
|
|
@ -446,13 +446,6 @@
|
|||
app:popEnterAnim="@anim/slide_in_left"
|
||||
app:popExitAnim="@anim/slide_out_right"
|
||||
app:destination="@id/deleteBrowsingDataOnQuitFragment" />
|
||||
<action
|
||||
android:id="@+id/action_settingsFragment_to_defaultBrowserSettingsFragment"
|
||||
app:enterAnim="@anim/slide_in_right"
|
||||
app:exitAnim="@anim/slide_out_left"
|
||||
app:popEnterAnim="@anim/slide_in_left"
|
||||
app:popExitAnim="@anim/slide_out_right"
|
||||
app:destination="@id/defaultBrowserSettingsFragment" />
|
||||
<action
|
||||
android:id="@+id/action_settingsFragment_to_localeSettingsFragment"
|
||||
app:enterAnim="@anim/slide_in_right"
|
||||
|
@ -709,9 +702,6 @@
|
|||
<fragment
|
||||
android:id="@+id/addNewDeviceFragment"
|
||||
android:name="org.mozilla.fenix.share.AddNewDeviceFragment" />
|
||||
<fragment
|
||||
android:id="@+id/defaultBrowserSettingsFragment"
|
||||
android:name="org.mozilla.fenix.settings.DefaultBrowserSettingsFragment"/>
|
||||
<fragment
|
||||
android:id="@+id/addSearchEngineFragment"
|
||||
android:name="org.mozilla.fenix.settings.search.AddSearchEngineFragment" />
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 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/. -->
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<org.mozilla.fenix.settings.DefaultBrowserPreference
|
||||
android:key="@string/pref_key_make_default_browser"
|
||||
android:title="@string/preferences_set_as_default_browser"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceScreen>
|
|
@ -73,7 +73,7 @@
|
|||
android:key="@string/pref_key_language"
|
||||
android:title="@string/preferences_language" />
|
||||
|
||||
<androidx.preference.Preference
|
||||
<org.mozilla.fenix.settings.DefaultBrowserPreference
|
||||
android:icon="@drawable/ic_internet"
|
||||
android:key="@string/pref_key_make_default_browser"
|
||||
android:title="@string/preferences_set_as_default_browser" />
|
||||
|
@ -114,12 +114,6 @@
|
|||
android:key="@string/pref_key_data_choices"
|
||||
android:title="@string/preferences_data_collection" />
|
||||
|
||||
<androidx.preference.SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_app_links"
|
||||
android:key="@string/pref_key_open_links_in_external_app"
|
||||
android:title="@string/preferences_open_links_in_apps" />
|
||||
|
||||
</androidx.preference.PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
|
@ -132,6 +126,12 @@
|
|||
android:key="@string/pref_key_addons"
|
||||
android:title="@string/preferences_addons" />
|
||||
|
||||
<androidx.preference.SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_app_links"
|
||||
android:key="@string/pref_key_open_links_in_external_app"
|
||||
android:title="@string/preferences_open_links_in_apps" />
|
||||
|
||||
<androidx.preference.SwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:icon="@drawable/ic_info"
|
||||
|
|
Loading…
Reference in New Issue
Block a user