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

Commit 159ffdbf authored by Selim Cinek's avatar Selim Cinek
Browse files

Fixed an animation bug

Reposition animations were generated even if the shade is closed
or animations are disabled.

Bug: 15181880
Change-Id: I278278862f4b4837fe164ce2b769d9d50fa50ced
parent dd125329
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ public class NotificationStackScrollLayout extends ViewGroup
    private ArrayList<View> mSwipedOutViews = new ArrayList<View>();
    private final StackStateAnimator mStateAnimator = new StackStateAnimator(this);
    private boolean mAnimationsEnabled;
    private boolean mChangePositionInProgress;

    /**
     * The raw amount of the overScroll on the top, which is not rubber-banded.
@@ -1318,7 +1319,7 @@ public class NotificationStackScrollLayout extends ViewGroup
    protected void onViewRemoved(View child) {
        super.onViewRemoved(child);
        mStackScrollAlgorithm.notifyChildrenChanged(this);
        if (mChildrenChangingPositions.contains(child)) {
        if (mChangePositionInProgress) {
            // This is only a position change, don't do anything special
            return;
        }
@@ -1413,7 +1414,7 @@ public class NotificationStackScrollLayout extends ViewGroup
     * @param child The view to be added.
     */
    public void generateAddAnimation(View child) {
        if (mIsExpanded && mAnimationsEnabled && !mChildrenChangingPositions.contains(child)) {
        if (mIsExpanded && mAnimationsEnabled && !mChangePositionInProgress) {
            // Generate Animations
            mChildrenToAddAnimated.add(child);
            mNeedsAnimation = true;
@@ -1428,12 +1429,16 @@ public class NotificationStackScrollLayout extends ViewGroup
     */
    public void changeViewPosition(View child, int newIndex) {
        if (child != null && child.getParent() == this) {
            mChildrenChangingPositions.add(child);
            mChangePositionInProgress = true;
            removeView(child);
            addView(child, newIndex);
            mChangePositionInProgress = false;
            if (mIsExpanded && mAnimationsEnabled) {
                mChildrenChangingPositions.add(child);
                mNeedsAnimation = true;
            }
        }
    }

    private void startAnimationToState() {
        if (mNeedsAnimation) {