diff options
| author | 2023-11-22 10:52:08 -0500 | |
|---|---|---|
| committer | 2023-12-06 19:01:01 +0000 | |
| commit | 4f341251192d1ee9cf1a662a1964be7de366755e (patch) | |
| tree | 2299328f3cdb404139312255a4448038659c3d4f | |
| parent | 0d90b89589e1b037e9b00c6938c0bcfb28632456 (diff) | |
Respect device policy for shortcuts in wallpaper picker preview
Fixes: 305000330
Test: atest KeyguardQuickAffordanceInteractorTest.kt
Flag: NONE
Change-Id: I36036bfc85d1bfae841838ecaf87ad127c566ca6
2 files changed, 31 insertions, 2 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt index bc4bae0ed959..60e9a7dd86fb 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt @@ -339,6 +339,31 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { } @Test + fun quickAffordanceAlwaysVisible_notVisible_restrictedByPolicyManager() = + testScope.runTest { + whenever(devicePolicyManager.getKeyguardDisabledFeatures(null, userTracker.userId)) + .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL) + + repository.setKeyguardShowing(false) + repository.setIsDozing(true) + homeControls.setState( + KeyguardQuickAffordanceConfig.LockScreenState.Visible( + icon = ICON, + activationState = ActivationState.Active, + ) + ) + + val collectedValue by + collectLastValue( + underTest.quickAffordanceAlwaysVisible( + KeyguardQuickAffordancePosition.BOTTOM_START + ) + ) + + assertThat(collectedValue).isInstanceOf(KeyguardQuickAffordanceModel.Hidden::class.java) + } + + @Test fun quickAffordanceAlwaysVisible_evenWhenLockScreenNotShowingAndDozing() = testScope.runTest { repository.setKeyguardShowing(false) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt index 448411edb168..0f00db9adf92 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt @@ -117,10 +117,14 @@ constructor( * This is useful for experiences like the lock screen preview mode, where the affordances must * always be visible. */ - fun quickAffordanceAlwaysVisible( + suspend fun quickAffordanceAlwaysVisible( position: KeyguardQuickAffordancePosition, ): Flow<KeyguardQuickAffordanceModel> { - return quickAffordanceInternal(position) + return if (isFeatureDisabledByDevicePolicy()) { + flowOf(KeyguardQuickAffordanceModel.Hidden) + } else { + quickAffordanceInternal(position) + } } /** |