diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index 4917663e3f7..ae40d67717f 100755 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java index 8314cb70f5d..eb478f67f9a 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java @@ -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(