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

Commit 1f553cfc authored by Selim Cinek's avatar Selim Cinek
Browse files

Removed always running preDrawListener

Replaced a always running preDrawListener with one which is just posted on
demand.

Change-Id: Ie7667302d848fe4a109c04dc91376f0b44d3acd3
parent 319bdc45
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -106,15 +106,14 @@ public class NotificationStackScrollLayout extends ViewGroup
    private ExpandableView.OnHeightChangedListener mOnHeightChangedListener;
    private boolean mChildHierarchyDirty;
    private boolean mIsExpanded = true;
    private boolean mChildrenNeedUpdate;
    private ViewTreeObserver.OnPreDrawListener mPreDrawListener
    private boolean mChildrenUpdateRequested;
    private ViewTreeObserver.OnPreDrawListener mChildrenUpdater
            = new ViewTreeObserver.OnPreDrawListener() {
        @Override
        public boolean onPreDraw() {
            if (mChildrenNeedUpdate) {
            updateChildren();
                mChildrenNeedUpdate = false;
            }
            mChildrenUpdateRequested = false;
            getViewTreeObserver().removeOnPreDrawListener(this);
            return true;
        }
    };
@@ -181,7 +180,6 @@ public class NotificationStackScrollLayout extends ViewGroup
        mPaddingBetweenElements = context.getResources()
                .getDimensionPixelSize(R.dimen.notification_padding);
        mStackScrollAlgorithm = new StackScrollAlgorithm(context);
        getViewTreeObserver().addOnPreDrawListener(mPreDrawListener);
    }

    @Override
@@ -275,9 +273,12 @@ public class NotificationStackScrollLayout extends ViewGroup
    }

    private void requestChildrenUpdate() {
        mChildrenNeedUpdate = true;
        if (!mChildrenUpdateRequested) {
            getViewTreeObserver().addOnPreDrawListener(mChildrenUpdater);
            mChildrenUpdateRequested = true;
            invalidate();
        }
    }

    private boolean isCurrentlyAnimating() {
        return mStateAnimator.isRunning();