Making sure QS are visible when expanding shade with heads-up notification

QS was not visible because we were not updating QS expansion when heads up notification motion was in progress. Now we will do it when swiping down, so after going below starting movement position.

Fixes: 259447896
Test: show heads up notification -> swipe down on it -> QS should be visible throughout the whole down motion
Change-Id: Id54d7ac289fdd5bb527d9aa985e2bff90c4a4307
This commit is contained in:
Michal Brzezinski
2022-11-18 14:20:57 +00:00
parent c4588f708d
commit c4c5987b65

View File

@@ -463,7 +463,11 @@ public final class NotificationPanelViewController implements Dumpable {
private boolean mQsTouchAboveFalsingThreshold;
private int mQsFalsingThreshold;
/** Indicates drag starting height when swiping down or up on heads-up notifications */
/**
* Indicates drag starting height when swiping down or up on heads-up notifications.
* This usually serves as a threshold from when shade expansion should really start. Otherwise
* this value would be height of shade and it will be immediately expanded to some extent.
*/
private int mHeadsUpStartHeight;
private HeadsUpTouchHelper mHeadsUpTouchHelper;
private boolean mListenForHeadsUp;
@@ -3386,9 +3390,12 @@ public final class NotificationPanelViewController implements Dumpable {
&& mQsExpansionAnimator == null && !mQsExpansionFromOverscroll;
boolean goingBetweenClosedShadeAndExpandedQs =
mQsExpandImmediate || collapsingShadeFromExpandedQs;
// we don't want to update QS expansion when HUN is visible because then the whole shade is
// initially hidden, even though it has non-zero height
if (goingBetweenClosedShadeAndExpandedQs && !mHeadsUpManager.isTrackingHeadsUp()) {
// in split shade we react when HUN is visible only if shade height is over HUN start
// height - which means user is swiping down. Otherwise shade QS will either not show at all
// with HUN movement or it will blink when touching HUN initially
boolean qsShouldExpandWithHeadsUp = !mSplitShadeEnabled
|| (!mHeadsUpManager.isTrackingHeadsUp() || expandedHeight > mHeadsUpStartHeight);
if (goingBetweenClosedShadeAndExpandedQs && qsShouldExpandWithHeadsUp) {
float qsExpansionFraction;
if (mSplitShadeEnabled) {
qsExpansionFraction = 1;