@Override
 public void setEnabled(boolean enabled) {
   if (mDelegate.isEnabled() == enabled) {
     return;
   }
   super.setEnabled(enabled);
   mDelegate.setEnabled(enabled);
 }
 /**
  * Returns whether the {@link CalendarView} is shown.
  *
  * <p><strong>Note:</strong> This method returns {@code false} when the {@link
  * android.R.styleable#DatePicker_datePickerMode} attribute is set to {@code calendar}.
  *
  * @return {@code true} if the calendar view is shown
  * @see #getCalendarView()
  * @deprecated Not supported by Material-style {@code calendar} mode
  */
 @Deprecated
 public boolean getCalendarViewShown() {
   return mDelegate.getCalendarViewShown();
 }
 /**
  * Gets the first day of week.
  *
  * @return The first day of the week conforming to the {@link CalendarView} APIs.
  * @see Calendar#SUNDAY
  * @see Calendar#MONDAY
  * @see Calendar#TUESDAY
  * @see Calendar#WEDNESDAY
  * @see Calendar#THURSDAY
  * @see Calendar#FRIDAY
  * @see Calendar#SATURDAY
  * @attr ref android.R.styleable#DatePicker_firstDayOfWeek
  */
 public int getFirstDayOfWeek() {
   return mDelegate.getFirstDayOfWeek();
 }
 /**
  * Sets the first day of week.
  *
  * @param firstDayOfWeek The first day of the week conforming to the {@link CalendarView} APIs.
  * @see Calendar#SUNDAY
  * @see Calendar#MONDAY
  * @see Calendar#TUESDAY
  * @see Calendar#WEDNESDAY
  * @see Calendar#THURSDAY
  * @see Calendar#FRIDAY
  * @see Calendar#SATURDAY
  * @attr ref android.R.styleable#DatePicker_firstDayOfWeek
  */
 public void setFirstDayOfWeek(int firstDayOfWeek) {
   if (firstDayOfWeek < Calendar.SUNDAY || firstDayOfWeek > Calendar.SATURDAY) {
     throw new IllegalArgumentException("firstDayOfWeek must be between 1 and 7");
   }
   mDelegate.setFirstDayOfWeek(firstDayOfWeek);
 }
 @Override
 protected void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);
   mDelegate.onConfigurationChanged(newConfig);
 }
 /**
  * Update the current date.
  *
  * @param year The year.
  * @param month The month which is <strong>starting from zero</strong>.
  * @param dayOfMonth The day of the month.
  */
 public void updateDate(int year, int month, int dayOfMonth) {
   mDelegate.updateDate(year, month, dayOfMonth);
 }
 @Override
 protected Parcelable onSaveInstanceState() {
   Parcelable superState = super.onSaveInstanceState();
   return mDelegate.onSaveInstanceState(superState);
 }
 /**
  * Returns whether the spinners are shown.
  *
  * <p><strong>Note:</strong> his method returns {@code false} when the {@link
  * android.R.styleable#DatePicker_datePickerMode} attribute is set to {@code calendar}.
  *
  * @return {@code true} if the spinners are shown
  * @deprecated Not supported by Material-style {@code calendar} mode
  */
 @Deprecated
 public boolean getSpinnersShown() {
   return mDelegate.getSpinnersShown();
 }
 /**
  * Sets the callback that indicates the current date is valid.
  *
  * @param callback the callback, may be null
  * @hide
  */
 public void setValidationCallback(@Nullable ValidationCallback callback) {
   mDelegate.setValidationCallback(callback);
 }
 /**
  * Gets the maximal date supported by this {@link DatePicker} in milliseconds since January 1,
  * 1970 00:00:00 in {@link TimeZone#getDefault()} time zone.
  *
  * <p>Note: The default maximal date is 12/31/2100.
  *
  * <p>
  *
  * @return The maximal supported date.
  */
 public long getMaxDate() {
   return mDelegate.getMaxDate().getTimeInMillis();
 }
 /**
  * Sets the maximal date supported by this {@link DatePicker} in milliseconds since January 1,
  * 1970 00:00:00 in {@link TimeZone#getDefault()} time zone.
  *
  * @param maxDate The maximal supported date.
  */
 public void setMaxDate(long maxDate) {
   mDelegate.setMaxDate(maxDate);
 }
 /**
  * Sets the minimal date supported by this {@link NumberPicker} in milliseconds since January 1,
  * 1970 00:00:00 in {@link TimeZone#getDefault()} time zone.
  *
  * @param minDate The minimal supported date.
  */
 public void setMinDate(long minDate) {
   mDelegate.setMinDate(minDate);
 }
 /** @return The selected day of month. */
 public int getDayOfMonth() {
   return mDelegate.getDayOfMonth();
 }
 /** @return The selected year. */
 public int getYear() {
   return mDelegate.getYear();
 }
 /**
  * Returns the {@link CalendarView} used by this picker.
  *
  * <p><strong>Note:</strong> This method throws an {@link UnsupportedOperationException} when the
  * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set to {@code calendar}.
  *
  * @return the calendar view
  * @see #getCalendarViewShown()
  * @deprecated Not supported by Material-style {@code calendar} mode
  * @throws UnsupportedOperationException if called when the picker is displayed in {@code
  *     calendar} mode
  */
 @Deprecated
 public CalendarView getCalendarView() {
   return mDelegate.getCalendarView();
 }
 @Override
 public boolean isEnabled() {
   return mDelegate.isEnabled();
 }
 /**
  * Sets whether the {@link CalendarView} is shown.
  *
  * <p><strong>Note:</strong> Calling this method has no effect when the {@link
  * android.R.styleable#DatePicker_datePickerMode} attribute is set to {@code calendar}.
  *
  * @param shown {@code true} to show the calendar view, {@code false} to hide it
  * @deprecated Not supported by Material-style {@code calendar} mode
  */
 @Deprecated
 public void setCalendarViewShown(boolean shown) {
   mDelegate.setCalendarViewShown(shown);
 }
 /** @hide */
 @Override
 public boolean dispatchPopulateAccessibilityEventInternal(AccessibilityEvent event) {
   return mDelegate.dispatchPopulateAccessibilityEvent(event);
 }
 /**
  * Sets whether the spinners are shown.
  *
  * <p>Calling this method has no effect when the {@link
  * android.R.styleable#DatePicker_datePickerMode} attribute is set to {@code calendar}.
  *
  * @param shown {@code true} to show the spinners, {@code false} to hide them
  * @deprecated Not supported by Material-style {@code calendar} mode
  */
 @Deprecated
 public void setSpinnersShown(boolean shown) {
   mDelegate.setSpinnersShown(shown);
 }
 /** @hide */
 @Override
 public void onPopulateAccessibilityEventInternal(AccessibilityEvent event) {
   super.onPopulateAccessibilityEventInternal(event);
   mDelegate.onPopulateAccessibilityEvent(event);
 }
 @Override
 protected void onRestoreInstanceState(Parcelable state) {
   BaseSavedState ss = (BaseSavedState) state;
   super.onRestoreInstanceState(ss.getSuperState());
   mDelegate.onRestoreInstanceState(ss);
 }
 /**
  * Initialize the state. If the provided values designate an inconsistent date the values are
  * normalized before updating the spinners.
  *
  * @param year The initial year.
  * @param monthOfYear The initial month <strong>starting from zero</strong>.
  * @param dayOfMonth The initial day of the month.
  * @param onDateChangedListener How user is notified date is changed by user, can be null.
  */
 public void init(
     int year, int monthOfYear, int dayOfMonth, OnDateChangedListener onDateChangedListener) {
   mDelegate.init(year, monthOfYear, dayOfMonth, onDateChangedListener);
 }