private void setCurrentView(int currentView, boolean forceRefresh) {
   long timeInMillis = this.mCalendar.getTimeInMillis();
   switch (currentView) {
     case VIEW_DATE_PICKER_MONTH_DAY:
       ObjectAnimator monthDayAnim = Utils.getPulseAnimator(this.mMonthAndDayView, 0.9F, 1.05F);
       if (this.mDelayAnimation) {
         monthDayAnim.setStartDelay(500L);
         this.mDelayAnimation = false;
       }
       this.mDayPickerView.onDateChanged();
       if (this.mCurrentView != currentView || forceRefresh) {
         this.mMonthAndDayView.setSelected(true);
         this.mYearView.setSelected(false);
         this.mAnimator.setDisplayedChild(VIEW_DATE_PICKER_MONTH_DAY);
         this.mCurrentView = currentView;
       }
       monthDayAnim.start();
       String monthDayDesc =
           DateUtils.formatDateTime(getActivity(), timeInMillis, DateUtils.FORMAT_SHOW_DATE);
       this.mAnimator.setContentDescription(this.mDayPickerDescription + ": " + monthDayDesc);
       return;
     case VIEW_DATE_PICKER_YEAR:
       ObjectAnimator yearAnim = Utils.getPulseAnimator(this.mYearView, 0.85F, 1.1F);
       if (this.mDelayAnimation) {
         yearAnim.setStartDelay(500L);
         this.mDelayAnimation = false;
       }
       this.mYearPickerView.onDateChanged();
       if (this.mCurrentView != currentView || forceRefresh) {
         this.mMonthAndDayView.setSelected(false);
         this.mYearView.setSelected(true);
         this.mAnimator.setDisplayedChild(VIEW_DATE_PICKER_YEAR);
         this.mCurrentView = currentView;
       }
       yearAnim.start();
       String dayDesc = YEAR_FORMAT.format(Long.valueOf(timeInMillis));
       this.mAnimator.setContentDescription(this.mYearPickerDescription + ": " + dayDesc);
   }
 }
 private void adjustDayInMonthIfNeeded(int month, int year) {
   int currentDay = this.mCalendar.get(Calendar.DAY_OF_MONTH);
   int day = Utils.getDaysInMonth(month, year);
   if (currentDay > day) this.mCalendar.set(Calendar.DAY_OF_MONTH, day);
 }