diff options
2 files changed, 13 insertions, 3 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 8deaa3444bb0..2d0b0aa94131 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -338,6 +338,7 @@ public class NotificationPanelViewController extends PanelViewController { private boolean mAnimateNextPositionUpdate; private float mQuickQsHeaderHeight; private ScreenOffAnimationController mScreenOffAnimationController; + private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController; private int mTrackingPointer; private VelocityTracker mQsVelocityTracker; @@ -745,7 +746,8 @@ public class NotificationPanelViewController extends PanelViewController { KeyguardUnlockAnimationController keyguardUnlockAnimationController, NotificationListContainer notificationListContainer, PanelEventsEmitter panelEventsEmitter, - NotificationStackSizeCalculator notificationStackSizeCalculator) { + NotificationStackSizeCalculator notificationStackSizeCalculator, + UnlockedScreenOffAnimationController unlockedScreenOffAnimationController) { super(view, falsingManager, dozeLog, @@ -846,6 +848,7 @@ public class NotificationPanelViewController extends PanelViewController { mAuthController = authController; mLockIconViewController = lockIconViewController; mScreenOffAnimationController = screenOffAnimationController; + mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController; mRemoteInputManager = remoteInputManager; int currentMode = navigationModeController.addListener( @@ -1251,6 +1254,10 @@ public class NotificationPanelViewController extends PanelViewController { } } + private boolean shouldAvoidChangingNotificationsCount() { + return mHintAnimationRunning || mUnlockedScreenOffAnimationController.isAnimationPlaying(); + } + public void setKeyguardIndicationController(KeyguardIndicationController indicationController) { mKeyguardIndicationController = indicationController; mKeyguardIndicationController.setIndicationArea(mKeyguardBottomArea); @@ -4733,7 +4740,7 @@ public class NotificationPanelViewController extends PanelViewController { int oldTop, int oldRight, int oldBottom) { DejankUtils.startDetectingBlockingIpcs("NVP#onLayout"); super.onLayoutChange(v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom); - updateMaxDisplayedNotifications(true); + updateMaxDisplayedNotifications(!shouldAvoidChangingNotificationsCount()); setIsFullWidth(mNotificationStackScrollLayoutController.getWidth() == mView.getWidth()); // Update Clock Pivot 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 8f3df09d913d..09773d31de41 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 @@ -331,6 +331,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { private NotificationListContainer mNotificationListContainer; @Mock private NotificationStackSizeCalculator mNotificationStackSizeCalculator; + @Mock + private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController; private NotificationPanelViewController.PanelEventsEmitter mPanelEventsEmitter; private Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent = Optional.empty(); private SysuiStatusBarStateController mStatusBarStateController; @@ -511,7 +513,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { mKeyguardUnlockAnimationController, mNotificationListContainer, mPanelEventsEmitter, - mNotificationStackSizeCalculator); + mNotificationStackSizeCalculator, + mUnlockedScreenOffAnimationController); mNotificationPanelViewController.initDependencies( mCentralSurfaces, () -> {}, |