public void onDraw(Canvas canvas,int centerX,int centerY){
  if (!mVisible) {
    return;
  }
  mArcBounds=new RectF(centerX - mProgressRadius,centerY - mProgressRadius,centerX + mProgressRadius,centerY + mProgressRadius);
  canvas.drawCircle(centerX,centerY,mProgressRadius,mProgressBasePaint);
  canvas.drawArc(mArcBounds,-90,mProgressAngleDegrees,false,mProgressPaint);
  if (mProgressAngleDegrees == 360 && System.currentTimeMillis() > mTimeToHide) {
    mVisible=false;
    if (mVisibilityListener != null) {
      mVisibilityListener.onHidden();
    }
  }
}

public void onDraw ( Canvas canvas , int centerX , int centerY ) { if ( ! mVisible ) { return ; } mArcBounds = new RectF ( centerX - mProgressRadius , centerY - mProgressRadius , centerX + mProgressRadius , centerY + mProgressRadius ) ; canvas . drawCircle ( centerX , centerY , mProgressRadius , mProgressBasePaint ) ; canvas . drawArc ( mArcBounds , - 90 , mProgressAngleDegrees , false , mProgressPaint ) ; if ( mProgressAngleDegrees == 360 && System . currentTimeMillis ( ) > mTimeToHide ) { mVisible = false ; if ( mVisibilityListener != null ) { mVisibilityListener . onHidden ( ) ; } } }
draw the current progress ( if < 100 % ) centered at the given location .
