diff options
| author | 2023-08-16 08:58:31 +0000 | |
|---|---|---|
| committer | 2023-08-18 11:42:32 +0000 | |
| commit | ad9db9cfe885e2a3b218815b4ac69741a5d2f536 (patch) | |
| tree | 2d46e3d2578a7b1fd60402f414ae30814108c314 | |
| parent | 8c45339dd418389bcf3618039ec31864b88df864 (diff) | |
Only reinflate bouncer after rotation if flag enabled
Re-inflating on orientation change is now guarded by the unreleased flag "lockscreen.enable_landscape", b/293252410, so the behaviour is back to the usual when this flag is off.
New tests to cover this case.
Bug: 295603468
Test: PinBouncerLandscapeLayout, PinBouncerPortraitLayout, PinBouncerLargeLayout
Change-Id: Ida08cc6e5c022a457e0d603ab75424d563dc0538
| -rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java | 7 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt | 45 |
2 files changed, 51 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java index 04692c48a123..9f3908a4ab92 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainerController.java @@ -27,6 +27,7 @@ import static com.android.keyguard.KeyguardSecurityContainer.USER_TYPE_PRIMARY; import static com.android.keyguard.KeyguardSecurityContainer.USER_TYPE_SECONDARY_USER; import static com.android.keyguard.KeyguardSecurityContainer.USER_TYPE_WORK_PROFILE; import static com.android.systemui.DejankUtils.whitelistIpcs; +import static com.android.systemui.flags.Flags.LOCKSCREEN_ENABLE_LANDSCAPE; import static com.android.systemui.flags.Flags.REVAMPED_BOUNCER_MESSAGES; import android.app.ActivityManager; @@ -370,8 +371,12 @@ public class KeyguardSecurityContainerController extends ViewController<Keyguard @Override public void onOrientationChanged(int orientation) { - KeyguardSecurityContainerController.this + if (mFeatureFlags.isEnabled(LOCKSCREEN_ENABLE_LANDSCAPE)) { + // TODO(b/295603468) + // Fix reinflation of views when flag is enabled. + KeyguardSecurityContainerController.this .onDensityOrFontScaleOrOrientationChanged(); + } } }; private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback = diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt index a9aed2ffd277..b5317fa6c014 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt @@ -620,6 +620,51 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() { configurationListenerArgumentCaptor.value.onUiModeChanged() verify(view).reloadColors() } + @Test + fun onOrientationChanged_landscapeKeyguardFlagDisabled_blockReinflate() { + featureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, false) + + // Run onOrientationChanged + val configurationListenerArgumentCaptor = + ArgumentCaptor.forClass(ConfigurationController.ConfigurationListener::class.java) + underTest.onViewAttached() + verify(configurationController).addCallback(configurationListenerArgumentCaptor.capture()) + clearInvocations(viewFlipperController) + configurationListenerArgumentCaptor.value.onOrientationChanged( + Configuration.ORIENTATION_LANDSCAPE + ) + // Verify view is reinflated when flag is on + verify(viewFlipperController, never()).clearViews() + verify(viewFlipperController, never()) + .asynchronouslyInflateView( + eq(SecurityMode.PIN), + any(), + onViewInflatedCallbackArgumentCaptor.capture() + ) + } + + @Test + fun onOrientationChanged_landscapeKeyguardFlagEnabled_doesReinflate() { + featureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, true) + + // Run onOrientationChanged + val configurationListenerArgumentCaptor = + ArgumentCaptor.forClass(ConfigurationController.ConfigurationListener::class.java) + underTest.onViewAttached() + verify(configurationController).addCallback(configurationListenerArgumentCaptor.capture()) + clearInvocations(viewFlipperController) + configurationListenerArgumentCaptor.value.onOrientationChanged( + Configuration.ORIENTATION_LANDSCAPE + ) + // Verify view is reinflated when flag is on + verify(viewFlipperController).clearViews() + verify(viewFlipperController) + .asynchronouslyInflateView( + eq(SecurityMode.PIN), + any(), + onViewInflatedCallbackArgumentCaptor.capture() + ) + } @Test fun hasDismissActions() { |