Disable uninstall update option for secondary users.

Change-Id: Ib3146d37be82dae36392d71b43aa5331762d4684
Fixes: 110249550
Test: manual
This commit is contained in:
Fan Zhang
2018-06-18 13:34:21 -07:00
parent 2c6cccb90c
commit eee80ff489
2 changed files with 7 additions and 7 deletions

View File

@@ -331,8 +331,10 @@ public class AppInfoDashboardFragment extends DashboardFragment
final MenuItem uninstallUpdatesItem = menu.findItem(UNINSTALL_UPDATES);
final boolean uninstallUpdateDisabled = getContext().getResources().getBoolean(
R.bool.config_disable_uninstall_update);
uninstallUpdatesItem.setVisible(
mUpdatedSysApp && !mAppsControlDisallowedBySystem && !uninstallUpdateDisabled);
uninstallUpdatesItem.setVisible(mUserManager.isAdminUser()
&& mUpdatedSysApp
&& !mAppsControlDisallowedBySystem
&& !uninstallUpdateDisabled);
if (uninstallUpdatesItem.isVisible()) {
RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getActivity(),
uninstallUpdatesItem, mAppsControlDisallowedAdmin);

View File

@@ -91,7 +91,9 @@ public final class AppInfoDashboardFragmentTest {
doReturn(mActivity).when(mFragment).getActivity();
doReturn(mShadowContext).when(mFragment).getContext();
doReturn(mPackageManager).when(mActivity).getPackageManager();
when(mUserManager.isAdminUser()).thenReturn(true);
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
// Default to not considering any apps to be instant (individual tests can override this).
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
(InstantAppDataProvider) (i -> false));
@@ -102,7 +104,7 @@ public final class AppInfoDashboardFragmentTest {
when(mDevicePolicyManager.packageHasActiveAdmins(nullable(String.class))).thenReturn(false);
when(mUserManager.getUsers().size()).thenReturn(2);
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
final ApplicationInfo info = new ApplicationInfo();
info.enabled = true;
final AppEntry appEntry = mock(AppEntry.class);
@@ -118,7 +120,6 @@ public final class AppInfoDashboardFragmentTest {
when(mDevicePolicyManager.packageHasActiveAdmins(nullable(String.class))).thenReturn(false);
when(mUserManager.getUsers().size()).thenReturn(2);
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
final ApplicationInfo info = new ApplicationInfo();
info.flags = ApplicationInfo.FLAG_INSTALLED;
info.enabled = true;
@@ -217,7 +218,6 @@ public final class AppInfoDashboardFragmentTest {
final PackageInfo packageInfo = mock(PackageInfo.class);
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
ReflectionHelpers.setField(mFragment, "mPackageInfo", packageInfo);
assertThat(mFragment.shouldShowUninstallForAll(appEntry)).isFalse();
@@ -249,7 +249,6 @@ public final class AppInfoDashboardFragmentTest {
userInfos.add(new UserInfo(userID1, "User1", UserInfo.FLAG_PRIMARY));
userInfos.add(new UserInfo(userID2, "yue", UserInfo.FLAG_GUEST));
when(mUserManager.getUsers(true)).thenReturn(userInfos);
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
final ApplicationInfo appInfo = new ApplicationInfo();
appInfo.flags = ApplicationInfo.FLAG_INSTALLED;
when(mPackageManager.getApplicationInfoAsUser(
@@ -273,7 +272,6 @@ public final class AppInfoDashboardFragmentTest {
userInfos.add(new UserInfo(userID1, "User1", UserInfo.FLAG_PRIMARY));
userInfos.add(new UserInfo(userID2, "yue", UserInfo.FLAG_GUEST));
when(mUserManager.getUsers(true)).thenReturn(userInfos);
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
final ApplicationInfo appInfo = new ApplicationInfo();
appInfo.flags = ApplicationInfo.FLAG_INSTALLED;
when(mPackageManager.getApplicationInfoAsUser(