Bug 1342329 - Only link the "default browser" setting to the default apps screen. r?ahunt draft
authorSebastian Kaspari <s.kaspari@gmail.com>
Fri, 03 Mar 2017 11:12:48 +0100
changeset 493163 6bdd2e5a69bc9f4cd4f46a378025e895797393d0
parent 492625 b23d6277acca34a4b1be9a4c24efd3b999e47ec3
child 547767 5f012f17bbefef4dfdf56c1247465152327f0119
push id47657
push users.kaspari@gmail.com
push dateFri, 03 Mar 2017 10:13:36 +0000
reviewersahunt
bugs1342329
milestone54.0a1
Bug 1342329 - Only link the "default browser" setting to the default apps screen. r?ahunt MozReview-Commit-ID: I7mrsbXGng1
mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
mobile/android/base/java/org/mozilla/gecko/preferences/LinkPreference.java
--- a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
+++ b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
@@ -168,16 +168,17 @@ public class GeckoPreferences
     public static final String PREFS_READ_PARTNER_CUSTOMIZATIONS_PROVIDER = NON_PREF_PREFIX + "distribution.read_partner_customizations_provider";
     public static final String PREFS_READ_PARTNER_BOOKMARKS_PROVIDER = NON_PREF_PREFIX + "distribution.read_partner_bookmarks_provider";
     public static final String PREFS_CUSTOM_TABS = NON_PREF_PREFIX + "customtabs";
     public static final String PREFS_ACTIVITY_STREAM = NON_PREF_PREFIX + "activitystream";
     public static final String PREFS_CATEGORY_EXPERIMENTAL_FEATURES = NON_PREF_PREFIX + "category_experimental";
     public static final String PREFS_COMPACT_TABS = NON_PREF_PREFIX + "compact_tabs";
     public static final String PREFS_SHOW_QUIT_MENU = NON_PREF_PREFIX + "distribution.show_quit_menu";
     public static final String PREFS_SEARCH_SUGGESTIONS_ENABLED = "browser.search.suggest.enabled";
+    public static final String PREFS_DEFAULT_BROWSER = NON_PREF_PREFIX + "default_browser.link";
 
     private static final String ACTION_STUMBLER_UPLOAD_PREF = "STUMBLER_PREF";
 
 
     // This isn't a Gecko pref, even if it looks like one.
     private static final String PREFS_BROWSER_LOCALE = "locale";
 
     public static final String PREFS_RESTORE_SESSION = NON_PREF_PREFIX + "restoreSession3";
--- a/mobile/android/base/java/org/mozilla/gecko/preferences/LinkPreference.java
+++ b/mobile/android/base/java/org/mozilla/gecko/preferences/LinkPreference.java
@@ -29,17 +29,20 @@ class LinkPreference extends Preference 
         mUrl = url;
     }
 
     /**
      * Open Default apps screen of Settings for API Levels>=24. Support URL will open for lower API levels
      */
     @Override
     protected void onClick() {
-        if (AppConstants.Versions.feature24Plus) {
+        if (GeckoPreferences.PREFS_DEFAULT_BROWSER.equals(getKey()) && AppConstants.Versions.feature24Plus) {
+            // We are special casing the link to set the default browser here: On old Android versions we
+            // link to a SUMO page but on new Android versions we can link to the default app settings where
+            // the user can actually set a default browser (Bug 1312686).
             Intent changeDefaultApps = new Intent("android.settings.MANAGE_DEFAULT_APPS_SETTINGS");
             getContext().startActivity(changeDefaultApps);
         } else {
             Tabs.getInstance().loadUrlInTab(mUrl);
             callChangeListener(mUrl);
         }
     }
 }