private void updateRecurringData() {
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(mRecurring.getStartTime());
    int order = Recurring.getWeekDayOrderNum(cal);
    String dayOfWeek = cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
    int formattedTextId = MONTH_SAME_WEEKDAY[(order + 1) % MONTH_SAME_WEEKDAY.length];
    mSameWeekdayRadioButton.setText(
        getContext().getResources().getString(formattedTextId, dayOfWeek));

    mPeriodEditText.setText(String.valueOf(mRecurring.getPeriod()));

    if (mRecurring.getRepeatMode() == Recurring.REPEAT_WEEKLY) {
      for (int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++)
        mWeekView.setSelected(i, mRecurring.isEnabledWeekday(i), true);
    } else {
      int day = cal.get(Calendar.DAY_OF_WEEK);
      for (int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++)
        mWeekView.setSelected(i, i == day, true);

      if (mRecurring.getRepeatMode() == Recurring.REPEAT_MONTHLY) {
        mSameDayRadioButton.setCheckedImmediately(
            mRecurring.getMonthRepeatType() == Recurring.MONTH_SAME_DAY);
        mSameWeekdayRadioButton.setCheckedImmediately(
            mRecurring.getMonthRepeatType() == Recurring.MONTH_SAME_WEEKDAY);
      } else {
        mSameDayRadioButton.setCheckedImmediately(true);
        mSameWeekdayRadioButton.setCheckedImmediately(false);
      }
    }

    if (mModeSpinner.getSelectedItemPosition() != mRecurring.getRepeatMode())
      mModeSpinner.setSelection(mRecurring.getRepeatMode());
    else onModeSelected(mRecurring.getRepeatMode());

    mEndNumEditText.setText(
        String.valueOf(
            mRecurring.getEndMode() == Recurring.END_FOR_EVENT ? mRecurring.getEventNumber() : 10));

    long date =
        mRecurring.getEndMode() == Recurring.END_UNTIL_DATE
            ? mRecurring.getEndDate()
            : (Math.max(System.currentTimeMillis(), mRecurring.getStartTime()) + 86400000L * 31);
    mEndDateButton.setText(mDateFormat.format(new Date(date)));
    mEndDateButton.setTag(date);

    if (mEndSpinner.getSelectedItemPosition() != mRecurring.getEndMode())
      mEndSpinner.setSelection(mRecurring.getEndMode());
    else onEndSelected(mRecurring.getEndMode());
  }