Loading src/com/android/settings/applications/InstalledAppDetails.java +2 −2 Original line number Diff line number Diff line Loading @@ -1076,8 +1076,8 @@ public class InstalledAppDetails extends AppInfoBase } pref = findPreference("default_browser"); if (pref != null) { pref.setSummary( DefaultBrowserPreferenceController.isBrowserDefault(mPackageName, context) pref.setSummary(new DefaultBrowserPreferenceController(context) .isBrowserDefault(mPackageName, mUserId) ? R.string.yes : R.string.no); } pref = findPreference("default_phone_app"); Loading src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java +10 −5 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.UserHandle; import android.support.v7.preference.Preference; import android.text.TextUtils; Loading Loading @@ -96,9 +95,15 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont /** * Whether or not the pkg is the default browser */ public static boolean isBrowserDefault(String pkg, Context context) { String defaultPackage = context.getPackageManager() .getDefaultBrowserPackageNameAsUser(UserHandle.myUserId()); return defaultPackage != null && defaultPackage.equals(pkg); public boolean isBrowserDefault(String pkg, int userId) { String defaultPackage = mPackageManager.getDefaultBrowserPackageNameAsUser(userId); if (defaultPackage != null) { return defaultPackage.equals(pkg); } final List<ResolveInfo> list = mPackageManager.queryIntentActivitiesAsUser(BROWSE_PROBE, PackageManager.MATCH_ALL, userId); // There is only 1 app, it must be the default browser. return list != null && list.size() == 1; } } tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.applications.defaultapps; import android.content.Context; import android.content.Intent; import android.content.pm.ResolveInfo; import android.os.UserManager; import android.support.v7.preference.Preference; Loading @@ -35,6 +36,8 @@ import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import java.util.Arrays; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; Loading Loading @@ -85,4 +88,15 @@ public class DefaultBrowserPreferenceControllerTest { verify(mPackageManager).getDefaultBrowserPackageNameAsUser(anyInt()); } @Test public void isBrowserDefault_onlyApp_shouldReturnTrue() { final String testPkg = "pkg"; when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt())) .thenReturn(null); when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt())) .thenReturn(Arrays.asList(new ResolveInfo())); assertThat(mController.isBrowserDefault(testPkg, 0)).isTrue(); } } Loading
src/com/android/settings/applications/InstalledAppDetails.java +2 −2 Original line number Diff line number Diff line Loading @@ -1076,8 +1076,8 @@ public class InstalledAppDetails extends AppInfoBase } pref = findPreference("default_browser"); if (pref != null) { pref.setSummary( DefaultBrowserPreferenceController.isBrowserDefault(mPackageName, context) pref.setSummary(new DefaultBrowserPreferenceController(context) .isBrowserDefault(mPackageName, mUserId) ? R.string.yes : R.string.no); } pref = findPreference("default_phone_app"); Loading
src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java +10 −5 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.UserHandle; import android.support.v7.preference.Preference; import android.text.TextUtils; Loading Loading @@ -96,9 +95,15 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont /** * Whether or not the pkg is the default browser */ public static boolean isBrowserDefault(String pkg, Context context) { String defaultPackage = context.getPackageManager() .getDefaultBrowserPackageNameAsUser(UserHandle.myUserId()); return defaultPackage != null && defaultPackage.equals(pkg); public boolean isBrowserDefault(String pkg, int userId) { String defaultPackage = mPackageManager.getDefaultBrowserPackageNameAsUser(userId); if (defaultPackage != null) { return defaultPackage.equals(pkg); } final List<ResolveInfo> list = mPackageManager.queryIntentActivitiesAsUser(BROWSE_PROBE, PackageManager.MATCH_ALL, userId); // There is only 1 app, it must be the default browser. return list != null && list.size() == 1; } }
tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.applications.defaultapps; import android.content.Context; import android.content.Intent; import android.content.pm.ResolveInfo; import android.os.UserManager; import android.support.v7.preference.Preference; Loading @@ -35,6 +36,8 @@ import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import java.util.Arrays; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; Loading Loading @@ -85,4 +88,15 @@ public class DefaultBrowserPreferenceControllerTest { verify(mPackageManager).getDefaultBrowserPackageNameAsUser(anyInt()); } @Test public void isBrowserDefault_onlyApp_shouldReturnTrue() { final String testPkg = "pkg"; when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt())) .thenReturn(null); when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt())) .thenReturn(Arrays.asList(new ResolveInfo())); assertThat(mController.isBrowserDefault(testPkg, 0)).isTrue(); } }