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

Commit a43acdab authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[Notif] Disable animations as screen is powering off" into pi-dev

parents e8479d77 8ee5365f
Loading
Loading
Loading
Loading
+23 −3
Original line number Diff line number Diff line
@@ -3023,6 +3023,11 @@ public class NotificationStackScrollLayout extends ViewGroup
    public void setAnimationsEnabled(boolean animationsEnabled) {
        mAnimationsEnabled = animationsEnabled;
        updateNotificationAnimationStates();
        if (!animationsEnabled) {
            mSwipedOutViews.clear();
            mChildrenToRemoveAnimated.clear();
            clearTemporaryViewsInGroup(this);
        }
    }

    private void updateNotificationAnimationStates() {
@@ -3090,6 +3095,21 @@ public class NotificationStackScrollLayout extends ViewGroup
    @Override
    public void changeViewPosition(View child, int newIndex) {
        int currentIndex = indexOfChild(child);

        if (currentIndex == -1) {
            boolean isTransient = false;
            if (child instanceof ExpandableNotificationRow
                    && ((ExpandableNotificationRow)child).getTransientContainer() != null) {
                isTransient = true;
            }
            Log.e(TAG, "Attempting to re-position "
                    + (isTransient ? "transient" : "")
                    + " view {"
                    + child
                    + "}");
            return;
        }

        if (child != null && child.getParent() == this && currentIndex != newIndex) {
            mChangePositionInProgress = true;
            ((ExpandableView)child).setChangingPosition(true);
@@ -3569,17 +3589,17 @@ public class NotificationStackScrollLayout extends ViewGroup

    private void clearTemporaryViews() {
        // lets make sure nothing is in the overlay / transient anymore
        clearTemporaryViews(this);
        clearTemporaryViewsInGroup(this);
        for (int i = 0; i < getChildCount(); i++) {
            ExpandableView child = (ExpandableView) getChildAt(i);
            if (child instanceof ExpandableNotificationRow) {
                ExpandableNotificationRow row = (ExpandableNotificationRow) child;
                clearTemporaryViews(row.getChildrenContainer());
                clearTemporaryViewsInGroup(row.getChildrenContainer());
            }
        }
    }

    private void clearTemporaryViews(ViewGroup viewGroup) {
    private void clearTemporaryViewsInGroup(ViewGroup viewGroup) {
        while (viewGroup != null && viewGroup.getTransientViewCount() != 0) {
            viewGroup.removeTransientView(viewGroup.getTransientView(0));
        }