@Override
  public void save() {
    DayValues dayValues = null;

    if (mListener != null) {
      switch (mCurrentValues.type) {
        case DayValues.TYPE_ONE_SHOT:
          Calendar calendar = Calendar.getInstance();
          calendar.set(mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
          dayValues = new OneShotValues(calendar);
          break;

        case DayValues.TYPE_REPEAT:
          dayValues = new RepeatValues(mRepeatPicker.getSelectedDays(), Calendar.getInstance());
          break;

        case DayValues.TYPE_EVERY:
          dayValues =
              new IntervalValues(
                  mIntervalPicker.getUnit(),
                  mIntervalPicker.getNumberValue(),
                  Calendar.getInstance());
          break;
      }
      mCurrentValues = dayValues;
      mListener.onSchedulerDayChange(this, dayValues);
    }
  }
        @Override
        public void onClick(View v) {
          if (mBtnOneShot == v) {
            Calendar date = Calendar.getInstance();
            date.set(mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
            mCurrentValues = new OneShotValues(date);
          } else if (mBtnRepeat == v) {
            List<Integer> days = mRepeatPicker.getSelectedDays();
            mCurrentValues = new RepeatValues(days, Calendar.getInstance());
          } else if (mBtnEvery == v) {
            mCurrentValues =
                new IntervalValues(
                    mIntervalPicker.getUnit(),
                    mIntervalPicker.getNumberValue(),
                    Calendar.getInstance());
          }

          updateViews();
          save();
        }