private int getIndeterminateStrokeColor() {
    if (mProgressState != PROGRESS_STATE_KEEP_SHRINK || mStrokeColors.length == 1)
      return mStrokeColors[mStrokeColorIndex];

    float value =
        Math.max(
            0f,
            Math.min(
                1f, (float) (SystemClock.uptimeMillis() - mLastProgressStateTime) / mKeepDuration));
    int prev_index = mStrokeColorIndex == 0 ? mStrokeColors.length - 1 : mStrokeColorIndex - 1;

    return ColorUtil.getMiddleColor(
        mStrokeColors[prev_index], mStrokeColors[mStrokeColorIndex], value);
  }
 private int getQueryStrokeColor() {
   return ColorUtil.getColor(mStrokeColors[0], mAnimTime);
 }