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

Commit bae82662 authored by Lyn Han's avatar Lyn Han Committed by Android (Google) Code Review
Browse files

Merge "Fix frozen notifications after bouncer dismissal"

parents d1bb17f1 65da9766
Loading
Loading
Loading
Loading
+35 −0
Original line number Original line Diff line number Diff line
@@ -102,6 +102,16 @@ public class AmbientState {
    /** Whether we are swiping up. */
    /** Whether we are swiping up. */
    private boolean mIsSwipingUp;
    private boolean mIsSwipingUp;


    /** Whether we are flinging the shade open or closed. */
    private boolean mIsFlinging;

    /**
     * Whether we need to do a fling down after swiping up on lockscreen.
     * True right after we swipe up on lockscreen and have not finished the fling down that follows.
     * False when we stop flinging or leave lockscreen.
     */
    private boolean mNeedFlingAfterLockscreenSwipeUp = false;

    /**
    /**
     * @return Height of the notifications panel without top padding when expansion completes.
     * @return Height of the notifications panel without top padding when expansion completes.
     */
     */
@@ -142,6 +152,10 @@ public class AmbientState {
     * @param isSwipingUp Whether we are swiping up.
     * @param isSwipingUp Whether we are swiping up.
     */
     */
    public void setSwipingUp(boolean isSwipingUp) {
    public void setSwipingUp(boolean isSwipingUp) {
        if (!isSwipingUp && mIsSwipingUp) {
            // Just stopped swiping up.
            mNeedFlingAfterLockscreenSwipeUp = true;
        }
        mIsSwipingUp = isSwipingUp;
        mIsSwipingUp = isSwipingUp;
    }
    }


@@ -152,6 +166,17 @@ public class AmbientState {
        return mIsSwipingUp;
        return mIsSwipingUp;
    }
    }


    /**
     * @param isFlinging Whether we are flinging the shade open or closed.
     */
    public void setIsFlinging(boolean isFlinging) {
        if (isOnKeyguard() && !isFlinging && mIsFlinging) {
            // Just stopped flinging.
            mNeedFlingAfterLockscreenSwipeUp = false;
        }
        mIsFlinging = isFlinging;
    }

    /**
    /**
     * @return Fraction of shade expansion.
     * @return Fraction of shade expansion.
     */
     */
@@ -459,6 +484,9 @@ public class AmbientState {
    }
    }


    public void setStatusBarState(int statusBarState) {
    public void setStatusBarState(int statusBarState) {
        if (mStatusBarState != StatusBarState.KEYGUARD) {
            mNeedFlingAfterLockscreenSwipeUp = false;
        }
        mStatusBarState = statusBarState;
        mStatusBarState = statusBarState;
    }
    }


@@ -521,6 +549,13 @@ public class AmbientState {
        return mUnlockHintRunning;
        return mUnlockHintRunning;
    }
    }


    /**
     * @return Whether we need to do a fling down after swiping up on lockscreen.
     */
    public boolean isFlingingAfterSwipeUpOnLockscreen() {
        return mIsFlinging && mNeedFlingAfterLockscreenSwipeUp;
    }

    /**
    /**
     * @return whether a view is dozing and not pulsing right now
     * @return whether a view is dozing and not pulsing right now
     */
     */
+8 −15
Original line number Original line Diff line number Diff line
@@ -202,9 +202,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
    private float mQsExpansionFraction;
    private float mQsExpansionFraction;
    private final int mSplitShadeMinContentHeight;
    private final int mSplitShadeMinContentHeight;


    /** Whether we are flinging the shade open or closed. */
    private boolean mIsFlinging;

    /**
    /**
     * The algorithm which calculates the properties for our children
     * The algorithm which calculates the properties for our children
     */
     */
@@ -1263,13 +1260,16 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
    }
    }


    /**
    /**
     * @return Whether we should skip stack height update for lockscreen swipe-up or unlock hint.
     * @return Whether we should skip stack height updates.
     * True when
     *      1) Unlock hint is running
     *      2) Swiping up on lockscreen or flinging down after swipe up
     */
     */
    private boolean shouldSkipHeightUpdate() {
    private boolean shouldSkipHeightUpdate() {
        // After the user swipes up on lockscreen and lets go,
        return mAmbientState.isOnKeyguard()
        // {@link PanelViewController) flings the shade back down.
                && (mAmbientState.isUnlockHintRunning()
        return mAmbientState.isOnKeyguard() && (
                        || mAmbientState.isSwipingUp()
                mAmbientState.isUnlockHintRunning() || mAmbientState.isSwipingUp() || mIsFlinging);
                        || mAmbientState.isFlingingAfterSwipeUpOnLockscreen());
    }
    }


    /**
    /**
@@ -5009,13 +5009,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        mAmbientState.setUnlockHintRunning(running);
        mAmbientState.setUnlockHintRunning(running);
    }
    }


    /**
     * @param isFlinging Whether we are flinging the shade open or closed.
     */
    public void setIsFlinging(boolean isFlinging) {
        mIsFlinging = isFlinging;
    }

    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    @ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
    public void setHeadsUpGoingAwayAnimationsAllowed(boolean headsUpGoingAwayAnimationsAllowed) {
    public void setHeadsUpGoingAwayAnimationsAllowed(boolean headsUpGoingAwayAnimationsAllowed) {
        mHeadsUpGoingAwayAnimationsAllowed = headsUpGoingAwayAnimationsAllowed;
        mHeadsUpGoingAwayAnimationsAllowed = headsUpGoingAwayAnimationsAllowed;
+0 −7
Original line number Original line Diff line number Diff line
@@ -1181,13 +1181,6 @@ public class NotificationStackScrollLayoutController {
        mView.setUnlockHintRunning(running);
        mView.setUnlockHintRunning(running);
    }
    }


    /**
     * @param isFlinging Whether we are flinging the shade open or close.
     */
    public void setIsFlinging(boolean isFlinging) {
        mView.setIsFlinging(isFlinging);
    }

    public boolean isFooterViewNotGone() {
    public boolean isFooterViewNotGone() {
        return mView.isFooterViewNotGone();
        return mView.isFooterViewNotGone();
    }
    }
+2 −2
Original line number Original line Diff line number Diff line
@@ -1860,14 +1860,14 @@ public class NotificationPanelViewController extends PanelViewController {
        mHeadsUpTouchHelper.notifyFling(!expand);
        mHeadsUpTouchHelper.notifyFling(!expand);
        mKeyguardStateController.notifyPanelFlingStart(!expand /* flingingToDismiss */);
        mKeyguardStateController.notifyPanelFlingStart(!expand /* flingingToDismiss */);
        setClosingWithAlphaFadeout(!expand && !isOnKeyguard() && getFadeoutAlpha() == 1.0f);
        setClosingWithAlphaFadeout(!expand && !isOnKeyguard() && getFadeoutAlpha() == 1.0f);
        mNotificationStackScrollLayoutController.setIsFlinging(true);
        mAmbientState.setIsFlinging(true);
        super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing);
        super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing);
    }
    }


    @Override
    @Override
    protected void onFlingEnd(boolean cancelled) {
    protected void onFlingEnd(boolean cancelled) {
        super.onFlingEnd(cancelled);
        super.onFlingEnd(cancelled);
        mNotificationStackScrollLayoutController.setIsFlinging(false);
        mAmbientState.setIsFlinging(false);
    }
    }


    private boolean onQsIntercept(MotionEvent event) {
    private boolean onQsIntercept(MotionEvent event) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -397,6 +397,7 @@ public abstract class PanelViewController {


    private void endMotionEvent(MotionEvent event, float x, float y, boolean forceCancel) {
    private void endMotionEvent(MotionEvent event, float x, float y, boolean forceCancel) {
        mTrackingPointer = -1;
        mTrackingPointer = -1;
        mAmbientState.setSwipingUp(false);
        if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialTouchX) > mTouchSlop
        if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialTouchX) > mTouchSlop
                || Math.abs(y - mInitialTouchY) > mTouchSlop
                || Math.abs(y - mInitialTouchY) > mTouchSlop
                || event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
                || event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
@@ -460,7 +461,6 @@ public abstract class PanelViewController {
            boolean expands = onEmptySpaceClick(mInitialTouchX);
            boolean expands = onEmptySpaceClick(mInitialTouchX);
            onTrackingStopped(expands);
            onTrackingStopped(expands);
        }
        }
        mAmbientState.setSwipingUp(false);
        mVelocityTracker.clear();
        mVelocityTracker.clear();
    }
    }