Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44a09803 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

Use correct stack height when bypass enabled.

Also removes the 'getPulseStackHeight' method which didn't solve any of the issues it was added to solve, and only introduced an issue when expanding a pulse on bypass device.

Fixes: 194513502
Test: on bypass device, expand QS; validate that notifications do not disappear at the bottom.
Test: on bypass device, receive pulse; unlock via bypass; validate that pulse seamlessly transitions to hun.
Test: on bypass device, expand shade from lock screen; validate that notifications all fade in at once, rather than appearing in sequence.
Test: on bypass device, receive pulse; drag to expand it; validate that other notifications appear in sequence, rather than popping in all at once. (Note, this is non-ideal behavior which has always existed, not a regression.  ideally other notifications would fade in.)
Test: on non-bypass device, receive pulse; biometric unlock; validate that notifications smoothly animate to open shade.
Change-Id: I8d0968f5a8632bba6b1db5940b933ee53b2abb8a
parent 755ca98a
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -154,15 +154,6 @@ public class AmbientState {
        return mStackHeight;
    }

    /**
     * @return Height of notifications panel, with the animation from pulseHeight accounted for.
     */
    // TODO(b/192348384): move this logic to getStackHeight, and remove this and getInnerHeight
    public float getPulseStackHeight() {
        float pulseHeight = Math.min(mPulseHeight, mStackHeight);
        return MathUtils.lerp(mStackHeight, pulseHeight, mDozeAmount);
    }

    /** Tracks the state from AlertingNotificationManager#hasNotifications() */
    private boolean mHasAlertEntries;

+10 −13
Original line number Diff line number Diff line
@@ -441,19 +441,16 @@ public class StackScrollAlgorithm {
                    // to shelf start, thereby hiding all notifications (except the first one, which
                    // we later unhide in updatePulsingState)
                    // TODO(b/192348384): merge InnerHeight with StackHeight
                    final int stackBottom;
                    if (ambientState.isBypassEnabled()) {
                        // We want to use the stackHeight when pulse expanding, since the animation
                        // isn't currently optimized if the pulseHeight is continuously changing
                        // Let's improve this when we're merging the heights above
                        stackBottom = ambientState.isPulseExpanding()
                                ? (int) ambientState.getStackHeight()
                                : ambientState.getInnerHeight();
                    } else {
                        stackBottom = !ambientState.isShadeExpanded() || ambientState.isDozing()
                    // Note: Bypass pulse looks different, but when it is not expanding, we need
                    //  to use the innerHeight which doesn't update continuously, otherwise we show
                    //  more notifications than we should during this special transitional states.
                    boolean bypassPulseNotExpanding = ambientState.isBypassEnabled()
                            && ambientState.isOnKeyguard() && !ambientState.isPulseExpanding();
                    final int stackBottom =
                            !ambientState.isShadeExpanded() || ambientState.isDozing()
                                    || bypassPulseNotExpanding
                                    ? ambientState.getInnerHeight()
                                        : (int) ambientState.getPulseStackHeight();
                    }
                                    : (int) ambientState.getStackHeight();
                    final int shelfStart =
                            stackBottom - ambientState.getShelf().getIntrinsicHeight();
                    viewState.yTranslation = Math.min(viewState.yTranslation, shelfStart);