Disable uninstall update option for secondary users.
Change-Id: Ib3146d37be82dae36392d71b43aa5331762d4684 Fixes: 110249550 Test: manual
This commit is contained in:
@@ -331,8 +331,10 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
|||||||
final MenuItem uninstallUpdatesItem = menu.findItem(UNINSTALL_UPDATES);
|
final MenuItem uninstallUpdatesItem = menu.findItem(UNINSTALL_UPDATES);
|
||||||
final boolean uninstallUpdateDisabled = getContext().getResources().getBoolean(
|
final boolean uninstallUpdateDisabled = getContext().getResources().getBoolean(
|
||||||
R.bool.config_disable_uninstall_update);
|
R.bool.config_disable_uninstall_update);
|
||||||
uninstallUpdatesItem.setVisible(
|
uninstallUpdatesItem.setVisible(mUserManager.isAdminUser()
|
||||||
mUpdatedSysApp && !mAppsControlDisallowedBySystem && !uninstallUpdateDisabled);
|
&& mUpdatedSysApp
|
||||||
|
&& !mAppsControlDisallowedBySystem
|
||||||
|
&& !uninstallUpdateDisabled);
|
||||||
if (uninstallUpdatesItem.isVisible()) {
|
if (uninstallUpdatesItem.isVisible()) {
|
||||||
RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getActivity(),
|
RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getActivity(),
|
||||||
uninstallUpdatesItem, mAppsControlDisallowedAdmin);
|
uninstallUpdatesItem, mAppsControlDisallowedAdmin);
|
||||||
|
@@ -91,7 +91,9 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
doReturn(mActivity).when(mFragment).getActivity();
|
doReturn(mActivity).when(mFragment).getActivity();
|
||||||
doReturn(mShadowContext).when(mFragment).getContext();
|
doReturn(mShadowContext).when(mFragment).getContext();
|
||||||
doReturn(mPackageManager).when(mActivity).getPackageManager();
|
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).
|
// Default to not considering any apps to be instant (individual tests can override this).
|
||||||
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
|
||||||
(InstantAppDataProvider) (i -> false));
|
(InstantAppDataProvider) (i -> false));
|
||||||
@@ -102,7 +104,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
when(mDevicePolicyManager.packageHasActiveAdmins(nullable(String.class))).thenReturn(false);
|
when(mDevicePolicyManager.packageHasActiveAdmins(nullable(String.class))).thenReturn(false);
|
||||||
when(mUserManager.getUsers().size()).thenReturn(2);
|
when(mUserManager.getUsers().size()).thenReturn(2);
|
||||||
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
|
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
|
||||||
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
|
|
||||||
final ApplicationInfo info = new ApplicationInfo();
|
final ApplicationInfo info = new ApplicationInfo();
|
||||||
info.enabled = true;
|
info.enabled = true;
|
||||||
final AppEntry appEntry = mock(AppEntry.class);
|
final AppEntry appEntry = mock(AppEntry.class);
|
||||||
@@ -118,7 +120,6 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
when(mDevicePolicyManager.packageHasActiveAdmins(nullable(String.class))).thenReturn(false);
|
when(mDevicePolicyManager.packageHasActiveAdmins(nullable(String.class))).thenReturn(false);
|
||||||
when(mUserManager.getUsers().size()).thenReturn(2);
|
when(mUserManager.getUsers().size()).thenReturn(2);
|
||||||
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
|
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
|
||||||
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
|
|
||||||
final ApplicationInfo info = new ApplicationInfo();
|
final ApplicationInfo info = new ApplicationInfo();
|
||||||
info.flags = ApplicationInfo.FLAG_INSTALLED;
|
info.flags = ApplicationInfo.FLAG_INSTALLED;
|
||||||
info.enabled = true;
|
info.enabled = true;
|
||||||
@@ -217,7 +218,6 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
final PackageInfo packageInfo = mock(PackageInfo.class);
|
final PackageInfo packageInfo = mock(PackageInfo.class);
|
||||||
|
|
||||||
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
|
ReflectionHelpers.setField(mFragment, "mDpm", mDevicePolicyManager);
|
||||||
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
|
|
||||||
ReflectionHelpers.setField(mFragment, "mPackageInfo", packageInfo);
|
ReflectionHelpers.setField(mFragment, "mPackageInfo", packageInfo);
|
||||||
|
|
||||||
assertThat(mFragment.shouldShowUninstallForAll(appEntry)).isFalse();
|
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(userID1, "User1", UserInfo.FLAG_PRIMARY));
|
||||||
userInfos.add(new UserInfo(userID2, "yue", UserInfo.FLAG_GUEST));
|
userInfos.add(new UserInfo(userID2, "yue", UserInfo.FLAG_GUEST));
|
||||||
when(mUserManager.getUsers(true)).thenReturn(userInfos);
|
when(mUserManager.getUsers(true)).thenReturn(userInfos);
|
||||||
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
|
|
||||||
final ApplicationInfo appInfo = new ApplicationInfo();
|
final ApplicationInfo appInfo = new ApplicationInfo();
|
||||||
appInfo.flags = ApplicationInfo.FLAG_INSTALLED;
|
appInfo.flags = ApplicationInfo.FLAG_INSTALLED;
|
||||||
when(mPackageManager.getApplicationInfoAsUser(
|
when(mPackageManager.getApplicationInfoAsUser(
|
||||||
@@ -273,7 +272,6 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
userInfos.add(new UserInfo(userID1, "User1", UserInfo.FLAG_PRIMARY));
|
userInfos.add(new UserInfo(userID1, "User1", UserInfo.FLAG_PRIMARY));
|
||||||
userInfos.add(new UserInfo(userID2, "yue", UserInfo.FLAG_GUEST));
|
userInfos.add(new UserInfo(userID2, "yue", UserInfo.FLAG_GUEST));
|
||||||
when(mUserManager.getUsers(true)).thenReturn(userInfos);
|
when(mUserManager.getUsers(true)).thenReturn(userInfos);
|
||||||
ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager);
|
|
||||||
final ApplicationInfo appInfo = new ApplicationInfo();
|
final ApplicationInfo appInfo = new ApplicationInfo();
|
||||||
appInfo.flags = ApplicationInfo.FLAG_INSTALLED;
|
appInfo.flags = ApplicationInfo.FLAG_INSTALLED;
|
||||||
when(mPackageManager.getApplicationInfoAsUser(
|
when(mPackageManager.getApplicationInfoAsUser(
|
||||||
|
Reference in New Issue
Block a user