Loading src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptions.kt +1 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ private fun ApplicationInfo.isOtherUserHasInstallPackage( packageManagers: IPackageManagers, ): Boolean = userManager.aliveUsers .filter { it.id != userId } .filter { !Utils.shouldHideUser(it.userHandle, userManager) } .any { packageManagers.isPackageInstalledAsUser(packageName, it.id) } private fun ApplicationInfo.shouldShowAccessRestrictedSettings(context: Context): Boolean { Loading tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptionsTest.kt +39 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.content.Context import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.content.pm.UserInfo import android.os.UserHandle import android.os.UserManager import android.platform.test.annotations.RequiresFlagsDisabled import android.platform.test.annotations.RequiresFlagsEnabled Loading Loading @@ -170,6 +171,44 @@ class AppInfoSettingsMoreOptionsTest { ) } @Test fun uninstallForAllUsers_appHiddenNotInQuietModeAndPrimaryUser_displayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) whenever(Utils.shouldHideUser(UserHandle.of(OTHER_USER_ID), userManager)).thenReturn(false) setContent(app) composeTestRule.onRoot().performClick() composeTestRule.waitUntilExists( hasText(context.getString(R.string.uninstall_all_users_text)) ) } @Test fun uninstallForAllUsers_appHiddenInQuietModeAndPrimaryUser_notDisplayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) whenever(Utils.shouldHideUser(UserHandle.of(OTHER_USER_ID), userManager)).thenReturn(true) setContent(ApplicationInfo()) composeTestRule.onRoot().assertIsNotDisplayed() } @Test @RequiresFlagsDisabled(android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS, android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) Loading Loading
src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptions.kt +1 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ private fun ApplicationInfo.isOtherUserHasInstallPackage( packageManagers: IPackageManagers, ): Boolean = userManager.aliveUsers .filter { it.id != userId } .filter { !Utils.shouldHideUser(it.userHandle, userManager) } .any { packageManagers.isPackageInstalledAsUser(packageName, it.id) } private fun ApplicationInfo.shouldShowAccessRestrictedSettings(context: Context): Boolean { Loading
tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInfoSettingsMoreOptionsTest.kt +39 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.content.Context import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.content.pm.UserInfo import android.os.UserHandle import android.os.UserManager import android.platform.test.annotations.RequiresFlagsDisabled import android.platform.test.annotations.RequiresFlagsEnabled Loading Loading @@ -170,6 +171,44 @@ class AppInfoSettingsMoreOptionsTest { ) } @Test fun uninstallForAllUsers_appHiddenNotInQuietModeAndPrimaryUser_displayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) whenever(Utils.shouldHideUser(UserHandle.of(OTHER_USER_ID), userManager)).thenReturn(false) setContent(app) composeTestRule.onRoot().performClick() composeTestRule.waitUntilExists( hasText(context.getString(R.string.uninstall_all_users_text)) ) } @Test fun uninstallForAllUsers_appHiddenInQuietModeAndPrimaryUser_notDisplayed() { val app = ApplicationInfo().apply { packageName = PACKAGE_NAME uid = UID } whenever(userManager.aliveUsers).thenReturn(listOf(OTHER_USER)) whenever(packageManagers .isPackageInstalledAsUser(PACKAGE_NAME, OTHER_USER_ID)) .thenReturn(true) whenever(Utils.shouldHideUser(UserHandle.of(OTHER_USER_ID), userManager)).thenReturn(true) setContent(ApplicationInfo()) composeTestRule.onRoot().assertIsNotDisplayed() } @Test @RequiresFlagsDisabled(android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS, android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) Loading