private void drawDays(Canvas canvas){
  final TextPaint p=mDayPaint;
  final int headerHeight=mMonthHeight + mDayOfWeekHeight;
  final int rowHeight=mDayHeight;
  final int colWidth=mCellWidth;
  final float halfLineHeight=(p.ascent() + p.descent()) / 2f;
  int rowCenter=headerHeight + rowHeight / 2;
  for (int day=1, col=findDayOffset(); day <= mDaysInMonth; day++) {
    final int colCenter=colWidth * col + colWidth / 2;
    final int colCenterRtl;
    if (ViewCompatUtils.isLayoutRtl(this)) {
      colCenterRtl=mPaddedWidth - colCenter;
    }
 else {
      colCenterRtl=colCenter;
    }
    int state=0;
    final boolean isDayEnabled=isDayEnabled(day);
    final boolean isDayActivated=mActivatedDay == day;
    if (isDayActivated) {
      state=VIEW_STATE_SELECTED;
      canvas.drawCircle(colCenterRtl,rowCenter,mDaySelectorRadius,mDaySelectorPaint);
    }
 else     if (mTouchedItem == day) {
      state=VIEW_STATE_PRESSED;
      if (isDayEnabled) {
        canvas.drawCircle(colCenterRtl,rowCenter,mDaySelectorRadius,mDayHighlightPaint);
      }
    }
    final boolean isDayToday=mToday == day;
    final int dayTextColor;
    if (isDayToday && !isDayActivated) {
      dayTextColor=mDaySelectorPaint.getColor();
    }
 else {
      final int[] stateSet=buildState(isDayEnabled,state);
      dayTextColor=mDayTextColor.getColorForState(stateSet,0);
    }
    p.setColor(dayTextColor);
    canvas.drawText(mDayFormatter.format(day),colCenterRtl,rowCenter - halfLineHeight,p);
    col++;
    if (col == DAYS_IN_WEEK) {
      col=0;
      rowCenter+=rowHeight;
    }
  }
}

private void drawDays ( Canvas canvas ) { final TextPaint p = mDayPaint ; final int headerHeight = mMonthHeight + mDayOfWeekHeight ; final int rowHeight = mDayHeight ; final int colWidth = mCellWidth ; final float halfLineHeight = ( p . ascent ( ) + p . descent ( ) ) / 2f ; int rowCenter = headerHeight + rowHeight / 2 ; for ( int day = 1 , col = findDayOffset ( ) ; day <= mDaysInMonth ; day ++ ) { final int colCenter = colWidth * col + colWidth / 2 ; final int colCenterRtl ; if ( ViewCompatUtils . isLayoutRtl ( this ) ) { colCenterRtl = mPaddedWidth - colCenter ; } else { colCenterRtl = colCenter ; } int state = 0 ; final boolean isDayEnabled = isDayEnabled ( day ) ; final boolean isDayActivated = mActivatedDay == day ; if ( isDayActivated ) { state = VIEW_STATE_SELECTED ; canvas . drawCircle ( colCenterRtl , rowCenter , mDaySelectorRadius , mDaySelectorPaint ) ; } else if ( mTouchedItem == day ) { state = VIEW_STATE_PRESSED ; if ( isDayEnabled ) { canvas . drawCircle ( colCenterRtl , rowCenter , mDaySelectorRadius , mDayHighlightPaint ) ; } } final boolean isDayToday = mToday == day ; final int dayTextColor ; if ( isDayToday && ! isDayActivated ) { dayTextColor = mDaySelectorPaint . getColor ( ) ; } else { final int [ ] stateSet = buildState ( isDayEnabled , state ) ; dayTextColor = mDayTextColor . getColorForState ( stateSet , 0 ) ; } p . setColor ( dayTextColor ) ; canvas . drawText ( mDayFormatter . format ( day ) , colCenterRtl , rowCenter - halfLineHeight , p ) ; col ++ ; if ( col == DAYS_IN_WEEK ) { col = 0 ; rowCenter += rowHeight ; } } }
draws the month days .
