From 7ff423028ada83b525ca18229002c51638be1759 Mon Sep 17 00:00:00 2001 From: Lyn Han Date: Thu, 10 Jun 2021 19:13:25 -0500 Subject: [PATCH] Enable QS open while notifications are scrolled below status bar Fixes: 190196495 Test: swipe down from qs with notifs scrolled and partially covering qs => qs opens to fullscreen, notifs pushed down offscreen with scrollY reset to 0 Change-Id: I3c1f92b71457b9cee854647b5011424f6ee2659f --- .../notification/stack/NotificationStackScrollLayout.java | 6 ++++++ .../statusbar/phone/NotificationPanelViewController.java | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index 8277fae64a628..f90b4c079c508 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -4550,6 +4550,12 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable @ShadeViewRefactor(RefactorComponent.SHADE_VIEW) public void setQsExpansionFraction(float qsExpansionFraction) { mQsExpansionFraction = qsExpansionFraction; + + // If notifications are scrolled, + // clear out scrollY by the time we push notifications offscreen + if (mOwnScrollY > 0) { + setOwnScrollY((int) MathUtils.lerp(mOwnScrollY, 0, mQsExpansionFraction)); + } } @ShadeViewRefactor(RefactorComponent.COORDINATOR) 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 b3569d0884cad..4a7534d341175 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -2200,8 +2200,9 @@ public class NotificationPanelViewController extends PanelViewController { } private void updateQSExpansionEnabledAmbient() { + final float scrollRangeToTop = mAmbientState.getTopPadding() - mQuickQsOffsetHeight; mQsExpansionEnabledAmbient = - mAmbientState.getScrollY() <= 0 && !mAmbientState.isShadeOpening(); + mAmbientState.getScrollY() <= scrollRangeToTop && !mAmbientState.isShadeOpening(); setQsExpansionEnabled(); }