diff --git a/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java index 24b4dcd501e..6cd72f70db8 100644 --- a/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java +++ b/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java @@ -45,7 +45,8 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont static final Intent BROWSE_PROBE = new Intent() .setAction(Intent.ACTION_VIEW) .addCategory(Intent.CATEGORY_BROWSABLE) - .setData(Uri.parse("http:")); + .setData(Uri.parse("http:")) + .addFlags(Intent.FLAG_IGNORE_EPHEMERAL); public DefaultBrowserPreferenceController(Context context) { super(context); @@ -112,11 +113,13 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont final List candidates = new ArrayList<>(); // Resolve that intent and check that the handleAllWebDataURI boolean is set final List list = packageManager.queryIntentActivitiesAsUser( - BROWSE_PROBE, 0 /* flags */, userId); + BROWSE_PROBE, PackageManager.MATCH_ALL, userId); if (list != null) { final Set addedPackages = new ArraySet<>(); for (ResolveInfo info : list) { - if (info.activityInfo == null || !info.handleAllWebDataURI) { + if (!info.handleAllWebDataURI || info.activityInfo == null + || !info.activityInfo.enabled + || !info.activityInfo.applicationInfo.enabled) { continue; } final String packageName = info.activityInfo.packageName; diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java index 03b3867848d..1aa9f9d2c7a 100644 --- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java @@ -181,11 +181,11 @@ public class DefaultBrowserPreferenceControllerTest { } @Test - public void getCandidates_shouldQueryActivityWithFlagsEquals0() { + public void getCandidates_shouldQueryActivityWithMatchAll() { DefaultBrowserPreferenceController.getCandidates(mPackageManager, 0 /* userId */); verify(mPackageManager).queryIntentActivitiesAsUser( - any(Intent.class), eq(0) /* flags */, eq(0) /* userId */); + any(Intent.class), eq(PackageManager.MATCH_ALL), eq(0) /* userId */); } @Test @@ -221,6 +221,7 @@ public class DefaultBrowserPreferenceControllerTest { info.handleAllWebDataURI = true; info.activityInfo = new ActivityInfo(); info.activityInfo.packageName = packageName; + info.activityInfo.applicationInfo = createApplicationInfo(packageName); return info; }