Xiaomi: Fix reminder crash on unknown repetition

This commit is contained in:
José Rebelo
2026-04-23 22:03:29 +01:00
parent 2380f98815
commit 7f2255c00f
2 changed files with 34 additions and 30 deletions
@@ -110,25 +110,14 @@ public class GBReminderListAdapter extends RecyclerView.Adapter<GBReminderListAd
format = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
}
int stringResId = 0;
switch (reminder.getRepetition()) {
case Reminder.ONCE:
stringResId = R.string.reminder_time_once;
break;
case Reminder.EVERY_DAY:
stringResId = R.string.reminder_time_every_day;
break;
case Reminder.EVERY_WEEK:
stringResId = R.string.reminder_time_every_week;
break;
case Reminder.EVERY_MONTH:
stringResId = R.string.reminder_time_every_month;
break;
case Reminder.EVERY_YEAR:
stringResId = R.string.reminder_time_every_year;
break;
}
final int stringResId = switch (reminder.getRepetition()) {
case Reminder.ONCE -> R.string.reminder_time_once;
case Reminder.EVERY_DAY -> R.string.reminder_time_every_day;
case Reminder.EVERY_WEEK -> R.string.reminder_time_every_week;
case Reminder.EVERY_MONTH -> R.string.reminder_time_every_month;
case Reminder.EVERY_YEAR -> R.string.reminder_time_every_year;
default -> R.string.unknown;
};
final String reminderTimeText = mContext.getString(stringResId, format.format(time));
holder.reminderTime.setText(reminderTimeText);
@@ -191,14 +191,22 @@ public class XiaomiScheduleService extends AbstractXiaomiService {
gbReminder.setDate(XiaomiPreferences.toDate(reminder.getReminderDetails().getDate(), reminder.getReminderDetails().getTime()));
switch (reminder.getReminderDetails().getRepeatMode()) {
case REPETITION_ONCE:
gbReminder.setRepetition(Alarm.ALARM_ONCE);
break;
case REPETITION_DAILY:
gbReminder.setRepetition(Alarm.ALARM_DAILY);
gbReminder.setRepetition(Reminder.EVERY_DAY);
break;
case REPETITION_WEEKLY:
gbReminder.setRepetition(reminder.getReminderDetails().getRepeatFlags());
gbReminder.setRepetition(Reminder.EVERY_WEEK);
// TODO support for weekly repeat flags reminder.getReminderDetails().getRepeatFlags()
break;
case REPETITION_MONTHLY:
gbReminder.setRepetition(Reminder.EVERY_MONTH);
break;
case REPETITION_YEARLY:
gbReminder.setRepetition(Reminder.EVERY_YEAR);
break;
case REPETITION_ONCE:
default:
gbReminder.setRepetition(Reminder.ONCE);
break;
}
@@ -315,15 +323,22 @@ public class XiaomiScheduleService extends AbstractXiaomiService {
.setTitle(reminder.getMessage());
switch (reminder.getRepetition()) {
case Alarm.ALARM_ONCE:
reminderDetails.setRepeatMode(REPETITION_ONCE);
break;
case Alarm.ALARM_DAILY:
case Reminder.EVERY_DAY:
reminderDetails.setRepeatMode(REPETITION_DAILY);
break;
default:
case Reminder.EVERY_WEEK:
reminderDetails.setRepeatMode(REPETITION_WEEKLY);
reminderDetails.setRepeatFlags(reminder.getRepetition());
reminderDetails.setRepeatFlags((reminderTime.get(Calendar.DAY_OF_WEEK) + 5) % 7 + 1);
break;
case Reminder.EVERY_MONTH:
reminderDetails.setRepeatMode(REPETITION_MONTHLY);
break;
case Reminder.EVERY_YEAR:
reminderDetails.setRepeatMode(REPETITION_YEARLY);
break;
case Reminder.ONCE:
default:
reminderDetails.setRepeatMode(REPETITION_ONCE);
break;
}