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

Commit d9acca5c authored by Selim Cinek's avatar Selim Cinek
Browse files

Stabilized the animation when going back from the locked shade

Now, independant of the notifications the shade correctly animates
back from the shade locked when clicking on the bottom.

Bug: 17345758
Change-Id: I40f6cc65d4ceb4357f648192287c08acddffdcd9
parent d2319fbe
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3772,6 +3772,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
     */
    public void goToKeyguard() {
        if (mState == StatusBarState.SHADE_LOCKED) {
            mStackScroller.onGoToKeyguard();
            setBarState(StatusBarState.KEYGUARD);
            updateKeyguardState(false /* goingToFullShade */, true /* fromShadeLocked*/);
        }
+33 −0
Original line number Diff line number Diff line
@@ -166,6 +166,7 @@ public class NotificationStackScrollLayout extends ViewGroup
    private boolean mDontReportNextOverScroll;
    private boolean mRequestViewResizeAnimationOnLayout;
    private boolean mNeedViewResizeAnimation;
    private boolean mEverythingNeedsAnimation;

    /**
     * The maximum scrollPosition which we are allowed to reach when a notification was expanded.
@@ -1619,6 +1620,7 @@ public class NotificationStackScrollLayout extends ViewGroup
        generateDarkEvent();
        generateGoToFullShadeEvent();
        generateViewResizeEvent();
        generateAnimateEverythingEvent();
        mNeedsAnimation = false;
    }

@@ -1701,6 +1703,14 @@ public class NotificationStackScrollLayout extends ViewGroup
        mActivateNeedsAnimation = false;
    }

    private void generateAnimateEverythingEvent() {
        if (mEverythingNeedsAnimation) {
            mAnimationEvents.add(
                    new AnimationEvent(null, AnimationEvent.ANIMATION_TYPE_EVERYTHING));
        }
        mEverythingNeedsAnimation = false;
    }

    private void generateDimmedEvent() {
        if (mDimmedNeedsAnimation) {
            mAnimationEvents.add(
@@ -2200,6 +2210,13 @@ public class NotificationStackScrollLayout extends ViewGroup
        this.mPhoneStatusBar = phoneStatusBar;
    }

    public void onGoToKeyguard() {
        if (mIsExpanded && mAnimationsEnabled) {
            mEverythingNeedsAnimation = true;
            requestChildrenUpdate();
        }
    }

    /**
     * A listener that is notified when some child locations might have changed.
     */
@@ -2327,6 +2344,18 @@ public class NotificationStackScrollLayout extends ViewGroup
                        .animateTopInset()
                        .animateY()
                        .animateZ(),

                // ANIMATION_TYPE_EVERYTHING
                new AnimationFilter()
                        .animateAlpha()
                        .animateDark()
                        .animateScale()
                        .animateDimmed()
                        .animateHideSensitive()
                        .animateHeight()
                        .animateTopInset()
                        .animateY()
                        .animateZ(),
        };

        static int[] LENGTHS = new int[] {
@@ -2369,6 +2398,9 @@ public class NotificationStackScrollLayout extends ViewGroup

                // ANIMATION_TYPE_VIEW_RESIZE
                StackStateAnimator.ANIMATION_DURATION_STANDARD,

                // ANIMATION_TYPE_EVERYTHING
                StackStateAnimator.ANIMATION_DURATION_STANDARD,
        };

        static final int ANIMATION_TYPE_ADD = 0;
@@ -2384,6 +2416,7 @@ public class NotificationStackScrollLayout extends ViewGroup
        static final int ANIMATION_TYPE_GO_TO_FULL_SHADE = 10;
        static final int ANIMATION_TYPE_HIDE_SENSITIVE = 11;
        static final int ANIMATION_TYPE_VIEW_RESIZE = 12;
        static final int ANIMATION_TYPE_EVERYTHING = 13;

        final long eventStartTime;
        final View changingView;