diff options
| author | 2022-04-27 17:44:51 +0000 | |
|---|---|---|
| committer | 2022-04-27 17:44:51 +0000 | |
| commit | c5b165e8a5b54df251f3ca750911c89b023d2713 (patch) | |
| tree | 622ba0a70fd9e89d95e89ce1573d5aff57643bbe | |
| parent | 44e14e72b65cb1e91af2c588cc881ab83c7862a6 (diff) | |
| parent | 5e9e3e488b0cf9529549bbc388f2a7c5d9aa300b (diff) | |
Merge "Fix stack height jump during lockscreen=>shade and aod<=>ls" into tm-dev
2 files changed, 41 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index adf70a255b4f..0b46f07f8e8b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -1233,6 +1233,11 @@ public class NotificationPanelViewController extends PanelViewController { mKeyguardBottomArea.initQRCodeScanner(mQRCodeScannerController); } + @VisibleForTesting + void setMaxDisplayedNotifications(int maxAllowed) { + mMaxAllowedKeyguardNotifications = maxAllowed; + } + private void updateMaxDisplayedNotifications(boolean recompute) { if (recompute) { mMaxAllowedKeyguardNotifications = Math.max(computeMaxKeyguardNotifications(), 1); @@ -1463,7 +1468,11 @@ public class NotificationPanelViewController extends PanelViewController { /** * @return the maximum keyguard notifications that can fit on the screen */ - private int computeMaxKeyguardNotifications() { + @VisibleForTesting + int computeMaxKeyguardNotifications() { + if (mAmbientState.getFractionToShade() > 0 || mAmbientState.getDozeAmount() > 0) { + return mMaxAllowedKeyguardNotifications; + } float topPadding = mNotificationStackScrollLayoutController.getTopPadding(); float shelfIntrinsicHeight = mNotificationShelfController.getVisibility() == View.GONE diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java index 71f1f0b0f7cf..cad603c85bbc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java @@ -558,6 +558,37 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { } @Test + public void computeMaxKeyguardNotifications_lockscreenToShade_returnsExistingMax() { + when(mAmbientState.getFractionToShade()).thenReturn(0.5f); + mNotificationPanelViewController.setMaxDisplayedNotifications(-1); + + // computeMaxKeyguardNotifications sets maxAllowed to 0 at minimum if it updates the value + assertThat(mNotificationPanelViewController.computeMaxKeyguardNotifications()) + .isEqualTo(-1); + } + + @Test + public void computeMaxKeyguardNotifications_dozeAmountNotZero_returnsExistingMax() { + when(mAmbientState.getDozeAmount()).thenReturn(0.5f); + mNotificationPanelViewController.setMaxDisplayedNotifications(-1); + + // computeMaxKeyguardNotifications sets maxAllowed to 0 at minimum if it updates the value + assertThat(mNotificationPanelViewController.computeMaxKeyguardNotifications()) + .isEqualTo(-1); + } + + @Test + public void computeMaxKeyguardNotifications_noTransition_updatesMax() { + when(mAmbientState.getFractionToShade()).thenReturn(0f); + when(mAmbientState.getDozeAmount()).thenReturn(0f); + mNotificationPanelViewController.setMaxDisplayedNotifications(-1); + + // computeMaxKeyguardNotifications sets maxAllowed to 0 at minimum if it updates the value + assertThat(mNotificationPanelViewController.computeMaxKeyguardNotifications()) + .isNotEqualTo(-1); + } + + @Test public void testSetPanelScrimMinFraction() { mNotificationPanelViewController.setPanelScrimMinFraction(0.5f); verify(mNotificationShadeDepthController).setPanelPullDownMinFraction(eq(0.5f)); |