* commit '0f36afb83b4ada36d43062ee94e0b26f8c080ca5': Fix issues with TrustDrawable
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user