diff options
author | Adrian Roos <roosa@google.com> | 2014-10-15 14:56:28 +0200 |
---|---|---|
committer | Adrian Roos <roosa@google.com> | 2014-10-15 15:37:59 +0000 |
commit | 1540da4624ebdf674784a970892d4d4b7b64e775 (patch) | |
tree | 9a895b5aecec7d8f026f367ebb625f61eb514aad /packages | |
parent | f55cdab4bf9f9206d77748d0774065dc8438af0f (diff) | |
download | frameworks_base-1540da4624ebdf674784a970892d4d4b7b64e775.zip frameworks_base-1540da4624ebdf674784a970892d4d4b7b64e775.tar.gz frameworks_base-1540da4624ebdf674784a970892d4d4b7b64e775.tar.bz2 |
Fix issues with TrustDrawable
Ensures that the drawable is invalidated whenever the state changes.
Also moves the mAnimating check such that we never update state when
the animation is stopped.
Bug: 17915865
Change-Id: I299597e08d4bac9a5551686cd5d987138e4b3c47
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java index dcda2c7..b89aa8f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/TrustDrawable.java @@ -133,6 +133,7 @@ public class TrustDrawable extends Drawable { if (!mAnimating) { mAnimating = true; updateState(true); + invalidateSelf(); } } @@ -146,18 +147,21 @@ public class TrustDrawable extends Drawable { mState = STATE_UNSET; mCurAlpha = 0; mCurInnerRadius = mInnerRadiusEnter; + invalidateSelf(); } } public void setTrustManaged(boolean trustManaged) { if (trustManaged == mTrustManaged && mState != STATE_UNSET) return; mTrustManaged = trustManaged; - if (mAnimating) { - updateState(true); - } + updateState(true); } - private void updateState(boolean animate) { + private void updateState(boolean allowTransientState) { + if (!mAnimating) { + return; + } + int nextState = mState; if (mState == STATE_UNSET) { nextState = mTrustManaged ? STATE_ENTERING : STATE_GONE; @@ -170,7 +174,7 @@ public class TrustDrawable extends Drawable { } else if (mState == STATE_EXITING) { if (mTrustManaged) nextState = STATE_ENTERING; } - if (!animate) { + if (!allowTransientState) { if (nextState == STATE_ENTERING) nextState = STATE_VISIBLE; if (nextState == STATE_EXITING) nextState = STATE_GONE; } @@ -200,9 +204,8 @@ public class TrustDrawable extends Drawable { mState = nextState; if (mCurAnimator != null) { mCurAnimator.start(); - } else { - invalidateSelf(); } + invalidateSelf(); } } |