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

Commit 642830a1 authored by András Kurucz's avatar András Kurucz Committed by Android (Google) Code Review
Browse files

Merge "Revert "Add translateY animation to the removed HUNs animating away"" into main

parents 37a101e6 f0ac2beb
Loading
Loading
Loading
Loading
+14 −27
Original line number Diff line number Diff line
@@ -470,8 +470,15 @@ public class StackStateAnimator {
                mHeadsUpAppearChildren.add(changingView);

                mTmpState.copyFrom(changingView.getViewState());
                // translate the HUN in from the top, or the bottom of the screen
                mTmpState.setYTranslation(getHeadsUpYTranslationStart(event.headsUpFromBottom));
                if (event.headsUpFromBottom) {
                    // start from the bottom of the screen
                    mTmpState.setYTranslation(
                            mHeadsUpAppearHeightBottom + mHeadsUpAppearStartAboveScreen);
                } else {
                    // start from the top of the screen
                    mTmpState.setYTranslation(
                            -mStackTopMargin - mHeadsUpAppearStartAboveScreen);
                }
                // set the height and the initial position
                mTmpState.applyToView(changingView);
                mAnimationProperties.setCustomInterpolator(View.TRANSLATION_Y,
@@ -515,20 +522,12 @@ public class StackStateAnimator {
                    || event.animationType == ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK) {
                mHeadsUpDisappearChildren.add(changingView);
                Runnable endRunnable = null;
                mTmpState.copyFrom(changingView.getViewState());
                if (changingView.getParent() == null) {
                    // This notification was actually removed, so we need to add it
                    // transiently
                    mHostLayout.addTransientView(changingView, 0);
                    changingView.setTransientContainer(mHostLayout);
                    if (NotificationsImprovedHunAnimation.isEnabled()) {
                        // StackScrollAlgorithm cannot find this view because it has been removed
                        // from the NSSL. To correctly translate the view to the top or bottom of
                        // the screen (where it animated from), we need to update its translation.
                        mTmpState.setYTranslation(
                                getHeadsUpYTranslationStart(event.headsUpFromBottom)
                        );
                    }
                    mTmpState.initFrom(changingView);
                    endRunnable = changingView::removeFromTransientContainer;
                }

@@ -576,19 +575,16 @@ public class StackStateAnimator {
                            changingView.setInRemovalAnimation(true);
                        };
                    }
                    if (NotificationsImprovedHunAnimation.isEnabled()) {
                        mAnimationProperties.setCustomInterpolator(View.TRANSLATION_Y,
                                Interpolators.FAST_OUT_SLOW_IN_REVERSE);
                    }
                    long removeAnimationDelay = changingView.performRemoveAnimation(
                            ANIMATION_DURATION_HEADS_UP_DISAPPEAR,
                            0, 0.0f, true /* isHeadsUpAppear */,
                            startAnimation, postAnimation,
                            getGlobalAnimationFinishedListener());
                    mAnimationProperties.delay += removeAnimationDelay;
                    if (NotificationsImprovedHunAnimation.isEnabled()) {
                        mAnimationProperties.duration = ANIMATION_DURATION_HEADS_UP_DISAPPEAR;
                        mAnimationProperties.setCustomInterpolator(View.TRANSLATION_Y,
                                Interpolators.FAST_OUT_SLOW_IN_REVERSE);
                        mAnimationProperties.getAnimationFilter().animateY = true;
                        mTmpState.animateTo(changingView, mAnimationProperties);
                    }
                } else if (endRunnable != null) {
                    endRunnable.run();
                }
@@ -599,15 +595,6 @@ public class StackStateAnimator {
        return needsCustomAnimation;
    }

    private float getHeadsUpYTranslationStart(boolean headsUpFromBottom) {
        if (headsUpFromBottom) {
            // start from the bottom of the screen
            return mHeadsUpAppearHeightBottom + mHeadsUpAppearStartAboveScreen;
        }
        // start from the top of the screen
        return -mStackTopMargin - mHeadsUpAppearStartAboveScreen;
    }

    public void animateOverScrollToAmount(float targetAmount, final boolean onTop,
            final boolean isRubberbanded) {
        final float startOverScrollAmount = mHostLayout.getCurrentOverScrollAmount(onTop);
+0 −2
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.systemui.statusbar.notification.stack

import android.platform.test.annotations.EnableFlags
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper.RunWithLooper
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.res.R
@@ -46,7 +45,6 @@ private const val HEADS_UP_ABOVE_SCREEN = 80

@SmallTest
@RunWith(AndroidTestingRunner::class)
@RunWithLooper
class StackStateAnimatorTest : SysuiTestCase() {

    private lateinit var stackStateAnimator: StackStateAnimator