private void drawArc(Canvas canvas){
  if (mCurrentDashMode.equals(DASH_MODE.DOWNLOAD)) {
    mnIndeterminateStartPosition+=(1 - mnProgress) * mnStartSpeed;
    if ((mnIndeterminateStartPosition > CIRCULAR_FACTOR) || (mnIndeterminateStartPosition < 0)) {
      mnIndeterminateStartPosition=0;
    }
    Rect currRect=new Rect();
    getLocalVisibleRect(currRect);
    float nRingBoundaryInner=mnRingRadius - (mnRingWidth / 2) - (mnArcWidth / 2);
    mArcRect.set(mnViewCenter - nRingBoundaryInner,mnViewCenter - nRingBoundaryInner,mnViewCenter + nRingBoundaryInner,mnViewCenter + nRingBoundaryInner);
    mPaint.setColor(mArcColor);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setStrokeWidth(mnArcWidth);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
    canvas.drawArc(mArcRect,mnIndeterminateStartPosition,mnArcLength,false,mPaint);
  }
}

private void drawArc ( Canvas canvas ) { if ( mCurrentDashMode . equals ( DASH_MODE . DOWNLOAD ) ) { mnIndeterminateStartPosition += ( 1 - mnProgress ) * mnStartSpeed ; if ( ( mnIndeterminateStartPosition > CIRCULAR_FACTOR ) || ( mnIndeterminateStartPosition < 0 ) ) { mnIndeterminateStartPosition = 0 ; } Rect currRect = new Rect ( ) ; getLocalVisibleRect ( currRect ) ; float nRingBoundaryInner = mnRingRadius - ( mnRingWidth / 2 ) - ( mnArcWidth / 2 ) ; mArcRect . set ( mnViewCenter - nRingBoundaryInner , mnViewCenter - nRingBoundaryInner , mnViewCenter + nRingBoundaryInner , mnViewCenter + nRingBoundaryInner ) ; mPaint . setColor ( mArcColor ) ; mPaint . setStyle ( Paint . Style . STROKE ) ; mPaint . setStrokeWidth ( mnArcWidth ) ; mPaint . setStrokeCap ( Paint . Cap . ROUND ) ; canvas . drawArc ( mArcRect , mnIndeterminateStartPosition , mnArcLength , false , mPaint ) ; } }
draw the arc around the ring only for the download mode
