Bug 1342329 - Only link the "default browser" setting to the default apps screen. r?ahunt
MozReview-Commit-ID: I7mrsbXGng1
--- 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);
}
}
}