Merge "Expand uninstallForAll to Admins" into main
This commit is contained in:
@@ -572,7 +572,7 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
|||||||
showIt = false;
|
showIt = false;
|
||||||
} else if (mPackageInfo == null || mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
|
} else if (mPackageInfo == null || mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
|
||||||
showIt = false;
|
showIt = false;
|
||||||
} else if (UserHandle.myUserId() != 0) {
|
} else if (!mUserManager.isAdminUser()) {
|
||||||
showIt = false;
|
showIt = false;
|
||||||
} else if (mUserManager.getUsers().size() < 2) {
|
} else if (mUserManager.getUsers().size() < 2) {
|
||||||
showIt = false;
|
showIt = false;
|
||||||
|
@@ -167,7 +167,7 @@ private fun ApplicationInfo.isShowUninstallUpdates(context: Context): Boolean =
|
|||||||
private fun ApplicationInfo.isShowUninstallForAllUsers(
|
private fun ApplicationInfo.isShowUninstallForAllUsers(
|
||||||
userManager: UserManager,
|
userManager: UserManager,
|
||||||
packageManagers: IPackageManagers,
|
packageManagers: IPackageManagers,
|
||||||
): Boolean = userId == 0 && !isSystemApp && !isInstantApp &&
|
): Boolean = userManager.isUserAdmin(userId) && !isSystemApp && !isInstantApp &&
|
||||||
isOtherUserHasInstallPackage(userManager, packageManagers)
|
isOtherUserHasInstallPackage(userManager, packageManagers)
|
||||||
|
|
||||||
private fun ApplicationInfo.isOtherUserHasInstallPackage(
|
private fun ApplicationInfo.isOtherUserHasInstallPackage(
|
||||||
|
@@ -159,6 +159,7 @@ class AppInfoSettingsMoreOptionsTest {
|
|||||||
packageName = PACKAGE_NAME
|
packageName = PACKAGE_NAME
|
||||||
uid = UID
|
uid = UID
|
||||||
}
|
}
|
||||||
|
whenever(userManager.isUserAdmin(app.userId)).thenReturn(true)
|
||||||
whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER))
|
whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER))
|
||||||
whenever(packageManagers.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID))
|
whenever(packageManagers.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID))
|
||||||
.thenReturn(true)
|
.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
|
@Test
|
||||||
fun uninstallForAllUsers_appHiddenNotInQuietModeAndPrimaryUser_displayed() {
|
fun uninstallForAllUsers_appHiddenNotInQuietModeAndPrimaryUser_displayed() {
|
||||||
val app = ApplicationInfo().apply {
|
val app = ApplicationInfo().apply {
|
||||||
packageName = PACKAGE_NAME
|
packageName = PACKAGE_NAME
|
||||||
uid = UID
|
uid = UID
|
||||||
}
|
}
|
||||||
|
whenever(userManager.isUserAdmin(app.userId)).thenReturn(true)
|
||||||
whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER))
|
whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER))
|
||||||
whenever(packageManagers
|
whenever(packageManagers
|
||||||
.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID))
|
.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID))
|
||||||
@@ -198,6 +217,7 @@ class AppInfoSettingsMoreOptionsTest {
|
|||||||
packageName = PACKAGE_NAME
|
packageName = PACKAGE_NAME
|
||||||
uid = UID
|
uid = UID
|
||||||
}
|
}
|
||||||
|
whenever(userManager.isUserAdmin(app.userId)).thenReturn(true)
|
||||||
whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER))
|
whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER))
|
||||||
whenever(packageManagers
|
whenever(packageManagers
|
||||||
.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID))
|
.isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID))
|
||||||
|
Reference in New Issue
Block a user