Loading src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +1 −1 Original line number Diff line number Diff line Loading @@ -572,7 +572,7 @@ public class AppInfoDashboardFragment extends DashboardFragment showIt = false; } else if (mPackageInfo == null || mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) { showIt = false; } else if (UserHandle.myUserId() != 0) { } else if (!mUserManager.isAdminUser()) { showIt = false; } else if (mUserManager.getUsers().size() < 2) { showIt = false; Loading src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptions.kt +1 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ private fun ApplicationInfo.isShowUninstallUpdates(context: Context): Boolean = private fun ApplicationInfo.isShowUninstallForAllUsers( userManager: UserManager, packageManagers: IPackageManagers, ): Boolean = userId == 0 && !isSystemApp && !isInstantApp && ): Boolean = userManager.isUserAdmin(userId) && !isSystemApp && !isInstantApp && isOtherUserHasInstallPackage(userManager, packageManagers) private fun ApplicationInfo.isOtherUserHasInstallPackage( Loading tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptionsTest.kt +20 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,7 @@ class AppInfoSettingsMoreOptionsTest { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(true) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) Loading @@ -171,12 +172,30 @@ class AppInfoSettingsMoreOptionsTest { ) } @Test fun uninstallForAllUsers_NotAdminUser_notDisplayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(false) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) setContent(app) composeTestRule.onRoot().performClick() composeTestRule.onRoot().assertIsNotDisplayed() } @Test fun uninstallForAllUsers_appHiddenNotInQuietModeAndPrimaryUser_displayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(true) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) Loading @@ -198,6 +217,7 @@ class AppInfoSettingsMoreOptionsTest { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(true) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) Loading Loading
src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +1 −1 Original line number Diff line number Diff line Loading @@ -572,7 +572,7 @@ public class AppInfoDashboardFragment extends DashboardFragment showIt = false; } else if (mPackageInfo == null || mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) { showIt = false; } else if (UserHandle.myUserId() != 0) { } else if (!mUserManager.isAdminUser()) { showIt = false; } else if (mUserManager.getUsers().size() < 2) { showIt = false; Loading
src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptions.kt +1 −1 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ private fun ApplicationInfo.isShowUninstallUpdates(context: Context): Boolean = private fun ApplicationInfo.isShowUninstallForAllUsers( userManager: UserManager, packageManagers: IPackageManagers, ): Boolean = userId == 0 && !isSystemApp && !isInstantApp && ): Boolean = userManager.isUserAdmin(userId) && !isSystemApp && !isInstantApp && isOtherUserHasInstallPackage(userManager, packageManagers) private fun ApplicationInfo.isOtherUserHasInstallPackage( Loading
tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptionsTest.kt +20 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,7 @@ class AppInfoSettingsMoreOptionsTest { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(true) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) Loading @@ -171,12 +172,30 @@ class AppInfoSettingsMoreOptionsTest { ) } @Test fun uninstallForAllUsers_NotAdminUser_notDisplayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(false) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) setContent(app) composeTestRule.onRoot().performClick() composeTestRule.onRoot().assertIsNotDisplayed() } @Test fun uninstallForAllUsers_appHiddenNotInQuietModeAndPrimaryUser_displayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(true) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) Loading @@ -198,6 +217,7 @@ class AppInfoSettingsMoreOptionsTest { packageName = PACKAGE_NAME uid = UID } whenever(userManager.isUserAdmin(app.userId)).thenReturn(true) whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) Loading