Bug 1312686 - Link "default browser" setting to app info screen on Android 7+; r=sebastian

Added support for changing default browser by opening settings screen in API Levels >=24.

MozReview-Commit-ID: 5rxJm6hQQ4A

--HG--
extra : rebase_source : e8fc23bc658e216c04c27e10067c16abf2b0cd5c
This commit is contained in:
brainbreaker 2017-02-15 02:27:26 +05:30
Родитель d0d9f70792
Коммит a8343a4b4b
2 изменённых файлов: 15 добавлений и 4 удалений

Просмотреть файл

@ -52,6 +52,7 @@ public class AppConstants {
public static final boolean feature19Plus = MIN_SDK_VERSION >= 19 || (MAX_SDK_VERSION >= 19 && Build.VERSION.SDK_INT >= 19);
public static final boolean feature20Plus = MIN_SDK_VERSION >= 20 || (MAX_SDK_VERSION >= 20 && Build.VERSION.SDK_INT >= 20);
public static final boolean feature21Plus = MIN_SDK_VERSION >= 21 || (MAX_SDK_VERSION >= 21 && Build.VERSION.SDK_INT >= 21);
public static final boolean feature24Plus = MIN_SDK_VERSION >= 24 || (MAX_SDK_VERSION >= 24 && Build.VERSION.SDK_INT >= 24);
/*
* If our MIN_SDK_VERSION is 14 or higher, we must be an ICS device.

Просмотреть файл

@ -5,12 +5,14 @@
package org.mozilla.gecko.preferences;
import org.mozilla.gecko.Tabs;
import android.content.Context;
import android.content.Intent;
import android.preference.Preference;
import android.util.AttributeSet;
import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.Tabs;
class LinkPreference extends Preference {
private String mUrl;
@ -27,9 +29,17 @@ 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() {
Tabs.getInstance().loadUrlInTab(mUrl);
callChangeListener(mUrl);
if (AppConstants.Versions.feature24Plus) {
Intent changeDefaultApps = new Intent("android.settings.MANAGE_DEFAULT_APPS_SETTINGS");
getContext().startActivity(changeDefaultApps);
} else {
Tabs.getInstance().loadUrlInTab(mUrl);
callChangeListener(mUrl);
}
}
}