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

Commit 2821c695 authored by Johannes Gallmann's avatar Johannes Gallmann Committed by Android (Google) Code Review
Browse files

Merge "Fix notification launch animation for groups" into tm-qpr-dev

parents e98a8c76 dc5743a4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -976,10 +976,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
    /**
     * Updates states of all children.
     */
    public void updateChildrenStates(AmbientState ambientState) {
    public void updateChildrenStates() {
        if (mIsSummaryWithChildren) {
            ExpandableViewState parentState = getViewState();
            mChildrenContainer.updateState(parentState, ambientState);
            mChildrenContainer.updateState(parentState);
        }
    }

+21 −8
Original line number Diff line number Diff line
@@ -616,9 +616,8 @@ public class NotificationChildrenContainer extends ViewGroup
     * Update the state of all its children based on a linear layout algorithm.
     *
     * @param parentState  the state of the parent
     * @param ambientState the ambient state containing ambient information
     */
    public void updateState(ExpandableViewState parentState, AmbientState ambientState) {
    public void updateState(ExpandableViewState parentState) {
        int childCount = mAttachedChildren.size();
        int yPosition = mNotificationHeaderMargin + mCurrentHeaderTranslation;
        boolean firstChild = true;
@@ -661,9 +660,17 @@ public class NotificationChildrenContainer extends ViewGroup
            childState.height = intrinsicHeight;
            childState.setYTranslation(yPosition + launchTransitionCompensation);
            childState.hidden = false;
            if (child.isExpandAnimationRunning() || mContainingNotification.hasExpandingChild()) {
                // Not modifying translationZ during launch animation. The translationZ of the
                // expanding child is handled inside ExpandableNotificationRow and the translationZ
                // of the other children inside the group should remain unchanged. In particular,
                // they should not take over the translationZ of the parent, since the parent has
                // a positive translationZ set only for the expanding child to be drawn above other
                // notifications.
                childState.setZTranslation(child.getTranslationZ());
            } else if (childrenExpandedAndNotAnimating && mEnableShadowOnChildNotifications) {
                // When the group is expanded, the children cast the shadows rather than the parent
                // so use the parent's elevation here.
            if (childrenExpandedAndNotAnimating && mEnableShadowOnChildNotifications) {
                childState.setZTranslation(parentState.getZTranslation());
            } else {
                childState.setZTranslation(0);
@@ -716,9 +723,15 @@ public class NotificationChildrenContainer extends ViewGroup
                mHeaderViewState = new ViewState();
            }
            mHeaderViewState.initFrom(mNotificationHeader);
            mHeaderViewState.setZTranslation(childrenExpandedAndNotAnimating
                    ? parentState.getZTranslation()
                    : 0);

            if (mContainingNotification.hasExpandingChild()) {
                // Not modifying translationZ during expand animation.
                mHeaderViewState.setZTranslation(mNotificationHeader.getTranslationZ());
            } else if (childrenExpandedAndNotAnimating) {
                mHeaderViewState.setZTranslation(parentState.getZTranslation());
            } else {
                mHeaderViewState.setZTranslation(0);
            }
            mHeaderViewState.setYTranslation(mCurrentHeaderTranslation);
            mHeaderViewState.setAlpha(mHeaderVisibleAmount);
            // The hiding is done automatically by the alpha, otherwise we'll pick it up again
+3 −4
Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ public class StackScrollAlgorithm {
        updateSpeedBumpState(algorithmState, speedBumpIndex);
        updateShelfState(algorithmState, ambientState);
        updateAlphaState(algorithmState, ambientState);
        getNotificationChildrenStates(algorithmState, ambientState);
        getNotificationChildrenStates(algorithmState);
    }

    private void updateAlphaState(StackScrollAlgorithmState algorithmState,
@@ -231,14 +231,13 @@ public class StackScrollAlgorithm {
        }
    }

    private void getNotificationChildrenStates(StackScrollAlgorithmState algorithmState,
                                               AmbientState ambientState) {
    private void getNotificationChildrenStates(StackScrollAlgorithmState algorithmState) {
        int childCount = algorithmState.visibleChildren.size();
        for (int i = 0; i < childCount; i++) {
            ExpandableView v = algorithmState.visibleChildren.get(i);
            if (v instanceof ExpandableNotificationRow) {
                ExpandableNotificationRow row = (ExpandableNotificationRow) v;
                row.updateChildrenStates(ambientState);
                row.updateChildrenStates();
            }
        }
    }