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
This commit is contained in:
Alejandro Nijamkin
2023-02-14 10:52:00 -08:00
committed by Ale Nijamkin
parent 9ab0eed739
commit 4bc95f88aa
2 changed files with 23 additions and 3 deletions

View File

@@ -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
}

View File

@@ -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 {