Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 544fa52e authored by Manish Singh's avatar Manish Singh Committed by Android (Google) Code Review
Browse files

Merge "Don't show uninstall for all users" into main

parents 446e0a18 9229860d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 {
+39 −0
Original line number Diff line number Diff line
@@ -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
@@ -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)