diff --git a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt index efa5c6fc7..aebf52a37 100644 --- a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt +++ b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt @@ -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) } diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 2b32ecd25..77a49c782 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -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( diff --git a/app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserSettingsFragment.kt index 66f3ef759..02ddcb908 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/DefaultBrowserSettingsFragment.kt @@ -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 - } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt index 0c6e452ac..120173405 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt @@ -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(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) } diff --git a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt index acdd46ee8..82a83e682 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt @@ -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") } /** diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 925056f4a..9b988b619 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -360,8 +360,8 @@ android:id="@+id/action_settingsFragment_to_deleteBrowsingDataOnQuitFragment" app:destination="@id/deleteBrowsingDataOnQuitFragment" /> + android:id="@+id/action_settingsFragment_to_defaultBrowserSettingsFragment" + app:destination="@id/defaultBrowserSettingsFragment" /> + android:label="DefaultBrowserSettingsFragment"> + + diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 0c772b41a..379f5bc82 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -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}"