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

Commit 4bc95f88 authored by Alejandro Nijamkin's avatar Alejandro Nijamkin Committed by Ale Nijamkin
Browse files

Respect KEYGUARD_DISABLE_SHORTCUTS_ALL

When DevicePolicyManager#getKeyguardDisabledFeatures includes a set bit
for the KEYGUARD_DISABLE_SHORTCUTS_ALL flag, we disable lock screen
shortcuts.

Fix: 268218507
Flag: customizable_lock_screen_quick_affordances
Test: faked the returned value and manually verified that the feature is
gone from settings, wallpaper picker, and the lock screen
Test: unit test case added

Change-Id: I6c8a2d1fd2f891c9cd483d395c8175d6e8361b1b
parent 9ab0eed7
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -415,8 +415,9 @@ constructor(
            withContext(backgroundDispatcher) {
                devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId)
            }
        val flagsToCheck = DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL
        // TODO(b/268218507): "or" with DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL
        val flagsToCheck =
            DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL or
                DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL
        return flagsToCheck and flags != 0
    }

+20 −1
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
        }

    @Test
    fun `quickAffordance - bottom end affordance is hidden when disabled by device policy`() =
    fun `quickAffordance - hidden when all features are disabled by device policy`() =
        testScope.runTest {
            whenever(devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId))
                .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL)
@@ -261,6 +261,25 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
            assertThat(collectedValue).isInstanceOf(KeyguardQuickAffordanceModel.Hidden::class.java)
        }

    @Test
    fun `quickAffordance - hidden when shortcuts feature is disabled by device policy`() =
        testScope.runTest {
            whenever(devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId))
                .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL)
            quickAccessWallet.setState(
                KeyguardQuickAffordanceConfig.LockScreenState.Visible(
                    icon = ICON,
                )
            )

            val collectedValue by
                collectLastValue(
                    underTest.quickAffordance(KeyguardQuickAffordancePosition.BOTTOM_END)
                )

            assertThat(collectedValue).isInstanceOf(KeyguardQuickAffordanceModel.Hidden::class.java)
        }

    @Test
    fun `quickAffordance - bottom start affordance hidden while dozing`() =
        testScope.runTest {