1
0
Fork 0

For #5898: Default browser toggle sends user to SUMO on Android 5&6 (#5918)

master
Sawyer Blatz 2019-10-10 11:16:21 -07:00 committed by GitHub
parent b6d9bbda78
commit b0d796ccee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 46 additions and 29 deletions

View File

@ -22,5 +22,6 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) {
FromHistory(R.id.historyFragment),
FromExceptions(R.id.exceptionsFragment),
FromAbout(R.id.aboutFragment),
FromTrackingProtection(R.id.trackingProtectionFragment)
FromTrackingProtection(R.id.trackingProtectionFragment),
FromDefaultBrowserSettingsFragment(R.id.defaultBrowserSettingsFragment)
}

View File

@ -54,6 +54,7 @@ import org.mozilla.fenix.library.bookmarks.BookmarkFragmentDirections
import org.mozilla.fenix.library.history.HistoryFragmentDirections
import org.mozilla.fenix.search.SearchFragmentDirections
import org.mozilla.fenix.settings.AboutFragmentDirections
import org.mozilla.fenix.settings.DefaultBrowserSettingsFragmentDirections
import org.mozilla.fenix.settings.SettingsFragmentDirections
import org.mozilla.fenix.settings.TrackingProtectionFragmentDirections
import org.mozilla.fenix.theme.DefaultThemeManager
@ -275,6 +276,10 @@ open class HomeActivity : AppCompatActivity() {
TrackingProtectionFragmentDirections.actionTrackingProtectionFragmentToBrowserFragment(
customTabSessionId
)
BrowserDirection.FromDefaultBrowserSettingsFragment ->
DefaultBrowserSettingsFragmentDirections.actionDefaultBrowserSettingsFragmentToBrowserFragment(
customTabSessionId
)
}
private fun load(

View File

@ -10,12 +10,13 @@ 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 android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.CheckBoxPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import mozilla.components.support.utils.Browsers
import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getPreferenceKey
@ -30,7 +31,11 @@ class DefaultBrowserSettingsFragment : PreferenceFragmentCompat() {
SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
when (key) {
getPreferenceKey(R.string.pref_key_telemetry) -> {
if (sharedPreferences.getBoolean(key, requireContext().settings().isTelemetryEnabled)) {
if (sharedPreferences.getBoolean(
key,
requireContext().settings().isTelemetryEnabled
)
) {
context?.components?.analytics?.metrics?.start()
} else {
context?.components?.analytics?.metrics?.stop()
@ -42,7 +47,9 @@ class DefaultBrowserSettingsFragment : PreferenceFragmentCompat() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
context?.let {
preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangeListener)
preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(
preferenceChangeListener
)
}
val makeDefaultBrowserKey = getPreferenceKey(R.string.pref_key_make_default_browser)
@ -54,7 +61,8 @@ class DefaultBrowserSettingsFragment : PreferenceFragmentCompat() {
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).title = getString(R.string.preferences_set_as_default_browser)
(activity as AppCompatActivity).title =
getString(R.string.preferences_set_as_default_browser)
(activity as AppCompatActivity).supportActionBar?.show()
updatePreferences()
@ -62,7 +70,9 @@ class DefaultBrowserSettingsFragment : PreferenceFragmentCompat() {
override fun onDestroy() {
context?.let {
preferenceManager.sharedPreferences.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener)
preferenceManager.sharedPreferences.unregisterOnSharedPreferenceChangeListener(
preferenceChangeListener
)
}
super.onDestroy()
}
@ -93,13 +103,17 @@ class DefaultBrowserSettingsFragment : PreferenceFragmentCompat() {
true
}
} else {
defaultClickListener
Preference.OnPreferenceClickListener {
(activity as HomeActivity).openToBrowserAndLoad(
searchTermOrURL = SupportUtils.getSumoURLForTopic(
context!!,
SupportUtils.SumoTopic.SET_AS_DEFAULT_BROWSER
),
newTab = true,
from = BrowserDirection.FromSettings
)
true
}
}
}
private val defaultClickListener =
Preference.OnPreferenceClickListener { preference ->
Toast.makeText(context, "${preference.title} Clicked", Toast.LENGTH_SHORT).show()
true
}
}

View File

@ -9,8 +9,6 @@ import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
import android.os.Build
import android.os.Build.VERSION.SDK_INT
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
@ -94,11 +92,6 @@ class SettingsFragment : PreferenceFragmentCompat(), AccountObserver {
updateAccountUIState(context!!, requireComponents.backgroundServices.accountManager.accountProfile())
preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangeListener)
if (SDK_INT <= Build.VERSION_CODES.M) {
findPreference<Preference>(getPreferenceKey(pref_key_make_default_browser))?.isVisible =
false
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@ -159,7 +152,7 @@ class SettingsFragment : PreferenceFragmentCompat(), AccountObserver {
ItsNotBrokenSnack(context!!).showSnackbar(issueNumber = "220")
}
resources.getString(pref_key_make_default_browser) -> {
navigateToDefaultBrowserFragment()
navigateToDefaultBrowserSettingsFragment()
}
resources.getString(pref_key_data_choices) -> {
navigateToDataChoices()
@ -281,8 +274,8 @@ class SettingsFragment : PreferenceFragmentCompat(), AccountObserver {
Navigation.findNavController(view!!).navigate(directions)
}
private fun navigateToDefaultBrowserFragment() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToDefaultBrowserFragment()
private fun navigateToDefaultBrowserSettingsFragment() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToDefaultBrowserSettingsFragment()
Navigation.findNavController(view!!).navigate(directions)
}

View File

@ -29,7 +29,8 @@ object SupportUtils {
YOUR_RIGHTS("your-rights"),
TRACKING_PROTECTION("tracking-protection-firefox-preview"),
WHATS_NEW("whats-new-firefox-preview"),
SEND_TABS("send-tab-preview")
SEND_TABS("send-tab-preview"),
SET_AS_DEFAULT_BROWSER("set-firefox-preview-default")
}
/**

View File

@ -360,8 +360,8 @@
android:id="@+id/action_settingsFragment_to_deleteBrowsingDataOnQuitFragment"
app:destination="@id/deleteBrowsingDataOnQuitFragment" />
<action
android:id="@+id/action_settingsFragment_to_defaultBrowserFragment"
app:destination="@id/defaultBrowserFragment" />
android:id="@+id/action_settingsFragment_to_defaultBrowserSettingsFragment"
app:destination="@id/defaultBrowserSettingsFragment" />
</fragment>
<fragment
android:id="@+id/dataChoicesFragment"
@ -587,7 +587,11 @@
android:name="org.mozilla.fenix.share.AddNewDeviceFragment"
android:label="AddNewDeviceFragment" />
<fragment
android:id="@+id/defaultBrowserFragment"
android:id="@+id/defaultBrowserSettingsFragment"
android:name="org.mozilla.fenix.settings.DefaultBrowserSettingsFragment"
android:label="DefaultBrowserFragment" />
android:label="DefaultBrowserSettingsFragment">
<action
android:id="@+id/action_defaultBrowserSettingsFragment_to_browserFragment"
app:destination="@id/browserFragment" />
</fragment>
</navigation>

View File

@ -161,7 +161,6 @@ object Deps {
const val leanplum = "com.leanplum:leanplum-core:${Versions.leanplum}"
const val leanplumMessaging = "com.leanplum:leanplum-fcm:${Versions.leanplum}"
const val androidx_annotation = "androidx.annotation:annotation:${Versions.androidx_annotation}"
const val androidx_fragment = "androidx.fragment:fragment-ktx:${Versions.androidx_fragment}"
const val androidx_appcompat = "androidx.appcompat:appcompat:${Versions.androidx_appcompat}"