Merge "Expand uninstallForAll to Admins" into main
This commit is contained in:
@@ -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;
|
||||
|
@@ -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(
|
||||
|
@@ -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)
|
||||
@@ -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))
|
||||
@@ -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))
|
||||
|
Reference in New Issue
Block a user