From 2a332e4a2b4c5e03e60e13e8732ba3cfa2111a7b Mon Sep 17 00:00:00 2001 From: Chris Li Date: Fri, 24 Sep 2021 11:37:10 +0800 Subject: [PATCH] Update snapshot fade out animation Based on the UX feedback: Delay: 30ms Duration: 80ms Easing: linear Bug: 196173550 Test: Test with demo app shopping mode Change-Id: I1eac73ba71f6128a54e00b25674ff731695a3dc9 --- .../embedding/TaskFragmentAnimationSpec.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationSpec.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationSpec.java index 71295900cd06a..1e64782b161ff 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationSpec.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationSpec.java @@ -32,6 +32,7 @@ import android.view.animation.AnimationSet; import android.view.animation.AnimationUtils; import android.view.animation.ClipRectAnimation; import android.view.animation.Interpolator; +import android.view.animation.LinearInterpolator; import android.view.animation.ScaleAnimation; import android.view.animation.TranslateAnimation; @@ -46,12 +47,13 @@ class TaskFragmentAnimationSpec { private static final String TAG = "TaskFragAnimationSpec"; private static final int CHANGE_ANIMATION_DURATION = 517; - private static final int CHANGE_ANIMATION_FADE_DURATION = 82; - private static final int CHANGE_ANIMATION_FADE_OFFSET = 67; + private static final int CHANGE_ANIMATION_FADE_DURATION = 80; + private static final int CHANGE_ANIMATION_FADE_OFFSET = 30; private final Context mContext; private final TransitionAnimation mTransitionAnimation; private final Interpolator mFastOutExtraSlowInInterpolator; + private final LinearInterpolator mLinearInterpolator; private float mTransitionAnimationScaleSetting; TaskFragmentAnimationSpec(@NonNull Handler handler) { @@ -61,6 +63,7 @@ class TaskFragmentAnimationSpec { AttributeCache.init(mContext); mFastOutExtraSlowInInterpolator = AnimationUtils.loadInterpolator( mContext, android.R.interpolator.fast_out_extra_slow_in); + mLinearInterpolator = new LinearInterpolator(); // The transition animation should be adjusted based on the developer option. final ContentResolver resolver = mContext.getContentResolver(); @@ -129,14 +132,15 @@ class TaskFragmentAnimationSpec { float startScaleY = 1.f / scaleY; // The start leash will be fade out. - final AnimationSet startSet = new AnimationSet(true /* shareInterpolator */); - startSet.setInterpolator(mFastOutExtraSlowInInterpolator); + final AnimationSet startSet = new AnimationSet(false /* shareInterpolator */); final Animation startAlpha = new AlphaAnimation(1f, 0f); + startAlpha.setInterpolator(mLinearInterpolator); startAlpha.setDuration(CHANGE_ANIMATION_FADE_DURATION); startAlpha.setStartOffset(CHANGE_ANIMATION_FADE_OFFSET); startSet.addAnimation(startAlpha); final Animation startScale = new ScaleAnimation(startScaleX, startScaleX, startScaleY, startScaleY); + startScale.setInterpolator(mFastOutExtraSlowInInterpolator); startScale.setDuration(CHANGE_ANIMATION_DURATION); startSet.addAnimation(startScale); startSet.initialize(startBounds.width(), startBounds.height(), endBounds.width(),