private void updateAnimation(float factor) {
        float initial = mAnimationInitialValue;
        float destination = mChecked ? 1f : 0f;
        mCurrentScale = initial + (destination - initial) * factor;

        // Values
        mCurAngle = 360 * mCurrentScale;
        int alpha = (int) (255 * mCurrentScale);
        mCurColorAlpha = Ui.modulateAlpha(Color.alpha(mCurColor), alpha);

        invalidateSelf();
    }
Initializes local dynamic properties from state. This should be called
after significant state changes, e.g. from the One True Constructor and
after inflating or applying a theme.

@param tintStateList ColorStateList
caprice/ui/src/main/java/net/qiujuer/genius/ui/drawable/CircleCheckDrawable.java