Loading core/java/android/window/BackProgressAnimator.java +2 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,6 @@ public class BackProgressAnimator implements DynamicAnimation.OnAnimationUpdateL .setStiffness(SpringForce.STIFFNESS_MEDIUM) .setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); private final SpringForce mButtonSpringForce = new SpringForce() .setStiffness(500) .setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); private final DynamicAnimation.OnAnimationEndListener mOnAnimationEndListener = (animation, canceled, value, velocity) -> { Loading Loading @@ -157,6 +156,7 @@ public class BackProgressAnimator implements DynamicAnimation.OnAnimationUpdateL /* frameTime */ System.nanoTime() / TimeUtils.NANOS_PER_MS); if (predictiveBackSwipeEdgeNoneApi()) { if (event.getSwipeEdge() == EDGE_NONE) { mButtonSpringForce.setStiffness(SpringForce.STIFFNESS_LOW); mSpring.setSpring(mButtonSpringForce); mSpring.animateToFinalPosition(SCALE_FACTOR); } else { Loading Loading @@ -228,6 +228,7 @@ public class BackProgressAnimator implements DynamicAnimation.OnAnimationUpdateL * @param finishCallback the callback to be invoked when the progress is reach to 0. */ public void onBackCancelled(@NonNull Runnable finishCallback) { mButtonSpringForce.setStiffness(SpringForce.STIFFNESS_MEDIUM); mBackCancelledFinishRunnable = finishCallback; mSpring.addEndListener(mOnAnimationEndListener); mSpring.animateToFinalPosition(0); Loading packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpec.kt +6 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,12 @@ fun BackAnimationSpec.Companion.createFloatingSurfaceAnimationSpec( val maxTranslationY = maxTranslationYByScale - maxMarginYPx val minScaleReversed = 1f - minScale val direction = if (backEvent.swipeEdge == BackEvent.EDGE_LEFT) 1 else -1 val direction = when (backEvent.swipeEdge) { BackEvent.EDGE_LEFT -> 1 BackEvent.EDGE_RIGHT -> -1 else -> 0 } val progressX = backEvent.progress val ratioTranslateX = translateXEasing.getInterpolation(progressX) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/animation/back/BackAnimationSpecTest.kt +21 −5 Original line number Diff line number Diff line Loading @@ -46,6 +46,11 @@ class BackAnimationSpecTest : SysuiTestCase() { backInput = BackInput(progressX = 1f, progressY = 0f, edge = BackEvent.EDGE_RIGHT), expected = BackTransformation(translateX = maxX, translateY = 0f, scale = minScale), ) assertBackTransformation( backAnimationSpec = backAnimationSpec, backInput = BackInput(progressX = 1f, progressY = 0f, edge = BackEvent.EDGE_NONE), expected = BackTransformation(translateX = 0f, translateY = 0f, scale = minScale), ) assertBackTransformation( backAnimationSpec = backAnimationSpec, backInput = BackInput(progressX = 1f, progressY = 1f, edge = BackEvent.EDGE_LEFT), Loading Loading @@ -77,7 +82,7 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = 1f, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( Loading @@ -88,7 +93,7 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( Loading @@ -99,7 +104,7 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( Loading @@ -110,7 +115,18 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( backAnimationSpec = backAnimationSpec, backInput = BackInput(progressX = 1f, progressY = 1f, edge = BackEvent.EDGE_NONE), expected = BackTransformation( translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) } Loading @@ -131,7 +147,7 @@ private fun assertBackTransformation( /* swipeEdge = */ backInput.edge, ), progressY = backInput.progressY, result = actual result = actual, ) val tolerance = 0f Loading Loading
core/java/android/window/BackProgressAnimator.java +2 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,6 @@ public class BackProgressAnimator implements DynamicAnimation.OnAnimationUpdateL .setStiffness(SpringForce.STIFFNESS_MEDIUM) .setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); private final SpringForce mButtonSpringForce = new SpringForce() .setStiffness(500) .setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); private final DynamicAnimation.OnAnimationEndListener mOnAnimationEndListener = (animation, canceled, value, velocity) -> { Loading Loading @@ -157,6 +156,7 @@ public class BackProgressAnimator implements DynamicAnimation.OnAnimationUpdateL /* frameTime */ System.nanoTime() / TimeUtils.NANOS_PER_MS); if (predictiveBackSwipeEdgeNoneApi()) { if (event.getSwipeEdge() == EDGE_NONE) { mButtonSpringForce.setStiffness(SpringForce.STIFFNESS_LOW); mSpring.setSpring(mButtonSpringForce); mSpring.animateToFinalPosition(SCALE_FACTOR); } else { Loading Loading @@ -228,6 +228,7 @@ public class BackProgressAnimator implements DynamicAnimation.OnAnimationUpdateL * @param finishCallback the callback to be invoked when the progress is reach to 0. */ public void onBackCancelled(@NonNull Runnable finishCallback) { mButtonSpringForce.setStiffness(SpringForce.STIFFNESS_MEDIUM); mBackCancelledFinishRunnable = finishCallback; mSpring.addEndListener(mOnAnimationEndListener); mSpring.animateToFinalPosition(0); Loading
packages/SystemUI/animation/src/com/android/systemui/animation/back/BackAnimationSpec.kt +6 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,12 @@ fun BackAnimationSpec.Companion.createFloatingSurfaceAnimationSpec( val maxTranslationY = maxTranslationYByScale - maxMarginYPx val minScaleReversed = 1f - minScale val direction = if (backEvent.swipeEdge == BackEvent.EDGE_LEFT) 1 else -1 val direction = when (backEvent.swipeEdge) { BackEvent.EDGE_LEFT -> 1 BackEvent.EDGE_RIGHT -> -1 else -> 0 } val progressX = backEvent.progress val ratioTranslateX = translateXEasing.getInterpolation(progressX) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/animation/back/BackAnimationSpecTest.kt +21 −5 Original line number Diff line number Diff line Loading @@ -46,6 +46,11 @@ class BackAnimationSpecTest : SysuiTestCase() { backInput = BackInput(progressX = 1f, progressY = 0f, edge = BackEvent.EDGE_RIGHT), expected = BackTransformation(translateX = maxX, translateY = 0f, scale = minScale), ) assertBackTransformation( backAnimationSpec = backAnimationSpec, backInput = BackInput(progressX = 1f, progressY = 0f, edge = BackEvent.EDGE_NONE), expected = BackTransformation(translateX = 0f, translateY = 0f, scale = minScale), ) assertBackTransformation( backAnimationSpec = backAnimationSpec, backInput = BackInput(progressX = 1f, progressY = 1f, edge = BackEvent.EDGE_LEFT), Loading Loading @@ -77,7 +82,7 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = 1f, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( Loading @@ -88,7 +93,7 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( Loading @@ -99,7 +104,7 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( Loading @@ -110,7 +115,18 @@ class BackAnimationSpecTest : SysuiTestCase() { translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) assertBackTransformation( backAnimationSpec = backAnimationSpec, backInput = BackInput(progressX = 1f, progressY = 1f, edge = BackEvent.EDGE_NONE), expected = BackTransformation( translateX = Float.NaN, translateY = Float.NaN, scale = minScale, scalePivotPosition = ScalePivotPosition.BOTTOM_CENTER, ), ) } Loading @@ -131,7 +147,7 @@ private fun assertBackTransformation( /* swipeEdge = */ backInput.edge, ), progressY = backInput.progressY, result = actual result = actual, ) val tolerance = 0f Loading