diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-10-16 03:27:00 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-10-16 03:27:00 +0000 |
commit | ca91ceeb13e1cb6981bdeaedb1c21c3a7b1a58f1 (patch) | |
tree | 6d2347ca0440dc38be826030479c08669dc63285 | |
parent | 0db9cb79642dd5adaff6b1e0c79b9c782e4609fe (diff) | |
parent | cf81ce2786d7f4d20f794cb331e56a0e37b5b5c1 (diff) | |
download | base-android10-qpr1-b-s1-release.tar.gz |
Merge cherrypicks of [9558384, 9558404] into qt-qpr1-b-releaseandroid-10.0.0_r19android-10.0.0_r18android10-qpr1-b-s1-release
Change-Id: Ia6f948a6987f68c27f9c2721f82f08a1920b3cf0
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index fd3c9526149d..2f567177f814 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -590,6 +590,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo setScrimAlpha(mScrimInFront, mInFrontAlpha); setScrimAlpha(mScrimBehind, mBehindAlpha); setScrimAlpha(mScrimForBubble, mBubbleAlpha); + // The animation could have all already finished, let's call onFinished just in case + onFinished(); dispatchScrimsVisible(); } @@ -688,9 +690,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo @Override public void onAnimationEnd(Animator animation) { + scrim.setTag(TAG_KEY_ANIM, null); onFinished(lastCallback); - scrim.setTag(TAG_KEY_ANIM, null); dispatchScrimsVisible(); if (!mDeferFinishedListener && mOnAnimationFinished != null) { @@ -754,9 +756,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo } private void onFinished(Callback callback) { - if (!hasReachedFinalState(mScrimBehind) - || !hasReachedFinalState(mScrimInFront) - || !hasReachedFinalState(mScrimForBubble)) { + if (isAnimating(mScrimBehind) + || isAnimating(mScrimInFront) + || isAnimating(mScrimForBubble)) { if (callback != null && callback != mCallback) { // Since we only notify the callback that we're finished once everything has // finished, we need to make sure that any changing callbacks are also invoked @@ -789,11 +791,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo } } - private boolean hasReachedFinalState(ScrimView scrim) { - return scrim.getViewAlpha() == getCurrentScrimAlpha(scrim) - && scrim.getTint() == getCurrentScrimTint(scrim); - } - private boolean isAnimating(View scrim) { return scrim.getTag(TAG_KEY_ANIM) != null; } @@ -849,10 +846,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo } else { // update the alpha directly updateScrimColor(scrim, alpha, getCurrentScrimTint(scrim)); - onFinished(); } - } else { - onFinished(); } } |