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()); }