private void onModeSelected(int mode) { int oldMode = mRecurring.getRepeatMode(); mRecurring.setRepeatMode(mode); updatePeriodUnit(); mRecurring.setRepeatSetting(0); if (mode == Recurring.REPEAT_NONE) { mPeriodEditText.setEnabled(false); mEndSpinner.setEnabled(false); mEndNumEditText.setEnabled(false); mEndDateButton.setEnabled(false); mSameDayRadioButton.setEnabled(false); mSameWeekdayRadioButton.setEnabled(false); mWeekView.setEnabled(false); } else { if (oldMode == Recurring.REPEAT_NONE) { mPeriodEditText.setEnabled(true); mEndSpinner.setEnabled(true); mEndNumEditText.setEnabled(true); mEndDateButton.setEnabled(true); mSameDayRadioButton.setEnabled(true); mSameWeekdayRadioButton.setEnabled(true); mWeekView.setEnabled(true); } switch (mode) { case Recurring.REPEAT_DAILY: case Recurring.REPEAT_YEARLY: animOut(mSameDayRadioButton, true, true); animOut(mSameWeekdayRadioButton, true, true); animOut(mWeekView, true, true); break; case Recurring.REPEAT_MONTHLY: animIn(mSameDayRadioButton, false); animIn(mSameWeekdayRadioButton, false); animOut(mWeekView, true, true); mRecurring.setMonthRepeatType( mSameDayRadioButton.isChecked() ? Recurring.MONTH_SAME_DAY : Recurring.MONTH_SAME_WEEKDAY); break; case Recurring.REPEAT_WEEKLY: animOut(mSameDayRadioButton, true, true); animOut(mSameWeekdayRadioButton, true, true); animIn(mWeekView, false); for (int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) mRecurring.setEnabledWeekday(i, mWeekView.isSelected(i)); break; } } }