Mark only browser as default in app detail page
Change-Id: I8112d859ba788a1dc67c44b5e0de668c0fc13169 Fix: 35307728 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -1076,8 +1076,8 @@ public class InstalledAppDetails extends AppInfoBase
|
|||||||
}
|
}
|
||||||
pref = findPreference("default_browser");
|
pref = findPreference("default_browser");
|
||||||
if (pref != null) {
|
if (pref != null) {
|
||||||
pref.setSummary(
|
pref.setSummary(new DefaultBrowserPreferenceController(context)
|
||||||
DefaultBrowserPreferenceController.isBrowserDefault(mPackageName, context)
|
.isBrowserDefault(mPackageName, mUserId)
|
||||||
? R.string.yes : R.string.no);
|
? R.string.yes : R.string.no);
|
||||||
}
|
}
|
||||||
pref = findPreference("default_phone_app");
|
pref = findPreference("default_phone_app");
|
||||||
|
@@ -21,7 +21,6 @@ import android.content.Intent;
|
|||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.UserHandle;
|
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
@@ -96,9 +95,15 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont
|
|||||||
/**
|
/**
|
||||||
* Whether or not the pkg is the default browser
|
* Whether or not the pkg is the default browser
|
||||||
*/
|
*/
|
||||||
public static boolean isBrowserDefault(String pkg, Context context) {
|
public boolean isBrowserDefault(String pkg, int userId) {
|
||||||
String defaultPackage = context.getPackageManager()
|
String defaultPackage = mPackageManager.getDefaultBrowserPackageNameAsUser(userId);
|
||||||
.getDefaultBrowserPackageNameAsUser(UserHandle.myUserId());
|
if (defaultPackage != null) {
|
||||||
return defaultPackage != null && defaultPackage.equals(pkg);
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@ package com.android.settings.applications.defaultapps;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.ResolveInfo;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
|
||||||
@@ -35,6 +36,8 @@ import org.mockito.MockitoAnnotations;
|
|||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
import org.robolectric.util.ReflectionHelpers;
|
import org.robolectric.util.ReflectionHelpers;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Matchers.anyInt;
|
import static org.mockito.Matchers.anyInt;
|
||||||
@@ -85,4 +88,15 @@ public class DefaultBrowserPreferenceControllerTest {
|
|||||||
|
|
||||||
verify(mPackageManager).getDefaultBrowserPackageNameAsUser(anyInt());
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user