summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Aaron Liu <aaronjli@google.com> 2022-04-25 16:15:50 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-04-25 16:15:50 +0000
commitf4f2376cbca1e455a42ae9ce2f855c9aa0a96bbd (patch)
tree3ef4141b0b47e0a87086836c000b27dee12da648
parentcac95d57ad43c37ec10a2996c3359f6c04649790 (diff)
parent61e0b31bfa45c38f6e057965d42b584fa4707df0 (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.java27
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);