diff --git a/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java index ec6ea8cba9e..9e76ff55a10 100644 --- a/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java +++ b/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java @@ -111,7 +111,7 @@ 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, PackageManager.MATCH_ALL, userId); + BROWSE_PROBE, 0 /* flags */, userId); if (list != null) { final Set addedPackages = new ArraySet<>(); for (ResolveInfo info : list) { @@ -181,13 +181,12 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont * Whether or not the pkg is the default browser */ public boolean isBrowserDefault(String pkg, int userId) { - String defaultPackage = mPackageManager.getDefaultBrowserPackageNameAsUser(userId); + final String defaultPackage = mPackageManager.getDefaultBrowserPackageNameAsUser(userId); if (defaultPackage != null) { return defaultPackage.equals(pkg); } - final List list = mPackageManager.queryIntentActivitiesAsUser(BROWSE_PROBE, - PackageManager.MATCH_ALL, userId); + final List list = getCandidates(mPackageManager, userId); // There is only 1 app, it must be the default browser. return list != null && list.size() == 1; } 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 0ef1cf35cf8..4a482d08d25 100644 --- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java @@ -18,9 +18,9 @@ package com.android.settings.applications.defaultapps; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; @@ -133,8 +133,11 @@ public class DefaultBrowserPreferenceControllerTest { @Test public void isBrowserDefault_onlyApp_shouldReturnTrue() { when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt())).thenReturn(null); + final List resolveInfos = new ArrayList<>(); + final String PACKAGE_ONE = "pkg"; + resolveInfos.add(createResolveInfo(PACKAGE_ONE)); when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt())) - .thenReturn(Collections.singletonList(new ResolveInfo())); + .thenReturn(resolveInfos); assertThat(mController.isBrowserDefault("pkg", 0)).isTrue(); } @@ -161,6 +164,15 @@ public class DefaultBrowserPreferenceControllerTest { assertThat(defaultBrowserInfo.size()).isEqualTo(2); } + @Test + public void getCandidates_shouldQueryActivityWithFlagsEquals0() { + + mController.getCandidates(mPackageManager, 0 /* userId */); + + verify(mPackageManager).queryIntentActivitiesAsUser( + any(Intent.class), eq(0) /* flags */, eq(0) /* userId */); + } + private ResolveInfo createResolveInfo(String packageName) { final ResolveInfo info = new ResolveInfo(); info.handleAllWebDataURI = true;