diff options
| author | 2022-04-25 16:15:50 +0000 | |
|---|---|---|
| committer | 2022-04-25 16:15:50 +0000 | |
| commit | f4f2376cbca1e455a42ae9ce2f855c9aa0a96bbd (patch) | |
| tree | 3ef4141b0b47e0a87086836c000b27dee12da648 | |
| parent | cac95d57ad43c37ec10a2996c3359f6c04649790 (diff) | |
| parent | 61e0b31bfa45c38f6e057965d42b584fa4707df0 (diff) | |
Merge "[Bouncer] Reset y translation and alpha" into tm-dev am: 9ebf699935 am: 61e0b31bfa
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17821773
Change-Id: I4c2964429529561774b483797a2b94e11d011e08
Ignore-AOSP-First: this is an automerge
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java b/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java index 43ec1e23daad..d19469575296 100644 --- a/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java @@ -181,10 +181,12 @@ public class AppearAnimationUtils implements AppearAnimationCreator<View> { public void createAnimation(final View view, long delay, long duration, float translationY, boolean appearing, Interpolator interpolator, final Runnable endRunnable) { if (view != null) { - view.setAlpha(appearing ? 0f : 1.0f); - view.setTranslationY(appearing ? translationY : 0); + float targetAlpha = appearing ? 1f : 0f; + float targetTranslationY = appearing ? 0 : translationY; + view.setAlpha(1.0f - targetAlpha); + view.setTranslationY(translationY - targetTranslationY); Animator alphaAnim; - float targetAlpha = appearing ? 1f : 0f; + if (view.isHardwareAccelerated()) { RenderNodeAnimator alphaAnimRt = new RenderNodeAnimator(RenderNodeAnimator.ALPHA, targetAlpha); @@ -205,14 +207,21 @@ public class AppearAnimationUtils implements AppearAnimationCreator<View> { } }); } - if (endRunnable != null) { - alphaAnim.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { + alphaAnim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationCancel(Animator animation) { + // If Animation is canceled, we want to ensure UI is reset. + view.setAlpha(targetAlpha); + view.setTranslationY(targetTranslationY); + } + + @Override + public void onAnimationEnd(Animator animation) { + if (endRunnable != null) { endRunnable.run(); } - }); - } + } + }); alphaAnim.start(); startTranslationYAnimation(view, delay, duration, appearing ? 0 : translationY, interpolator); |