Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java +14 −27 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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; } Loading Loading @@ -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(); } Loading @@ -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); Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/StackStateAnimatorTest.kt +0 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateAnimator.java +14 −27 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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; } Loading Loading @@ -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(); } Loading @@ -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); Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/StackStateAnimatorTest.kt +0 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading