From aece5028fcd8bc532c2c270d33ab4f883f38b4ee Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Mon, 21 May 2018 16:44:28 -0700 Subject: [PATCH] Bouncer shouldn't be translated when occluded Only checking if the bouncer should be scrimmed isn't enough since it might have been initialized for performance reasons, but is hidden at the bottom of the keyguard. Change-Id: If92083e2c385d51febe0ec3a5e5d3484476caf81 Fixes: 80101176 Test: atest packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java Test: manual --- .../com/android/systemui/statusbar/phone/StatusBar.java | 2 +- .../statusbar/phone/StatusBarKeyguardViewManager.java | 2 +- .../statusbar/phone/StatusBarKeyguardViewManagerTest.java | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index b0d72c5d7ce74..1b658b853f4bd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -4715,7 +4715,7 @@ public class StatusBar extends SystemUI implements DemoMode, // Bouncer needs the front scrim when it's on top of an activity, // tapping on a notification, editing QS or being dismissed by // FLAG_DISMISS_KEYGUARD_ACTIVITY. - ScrimState state = mStatusBarKeyguardViewManager.bouncerNeedsScrimming() + ScrimState state = mIsOccluded || mStatusBarKeyguardViewManager.bouncerNeedsScrimming() || mStatusBarKeyguardViewManager.willDismissWithAction() || mStatusBarKeyguardViewManager.isFullscreenBouncer() ? ScrimState.BOUNCER_SCRIMMED : ScrimState.BOUNCER; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 6a6a7dd08120f..4a0d86c2d4527 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -169,7 +169,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb // • Full-screen user switcher is displayed. if (mNotificationPanelView.isUnlockHintRunning()) { mBouncer.setExpansion(KeyguardBouncer.EXPANSION_HIDDEN); - } else if (mBouncer.willDismissWithAction() || mBouncer.isShowingScrimmed() + } else if (mOccluded || mBouncer.willDismissWithAction() || mBouncer.isShowingScrimmed() || mStatusBar.isFullScreenUserSwitcherState()) { mBouncer.setExpansion(KeyguardBouncer.EXPANSION_VISIBLE); } else if (mShowing && !mDozing) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java index e2e5b32798542..8340ab2e7935a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java @@ -162,6 +162,14 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { verify(mBouncer, never()).show(eq(false), eq(false)); } + @Test + public void onPanelExpansionChanged_neverTranslatesBouncerWhenOccluded() { + mStatusBarKeyguardViewManager.setOccluded(true /* occluded */, false /* animate */); + mStatusBarKeyguardViewManager.onPanelExpansionChanged(0.5f /* expansion */, + true /* tracking */); + verify(mBouncer, never()).setExpansion(eq(0.5f)); + } + private class TestableStatusBarKeyguardViewManager extends StatusBarKeyguardViewManager { public TestableStatusBarKeyguardViewManager(Context context,