Fix duplicate alarm bug

pull/795/head
Alex Baker 6 years ago
parent 7020fff332
commit a0a56b4a4b

@ -61,14 +61,13 @@ public class AlarmService {
boolean changed = false; boolean changed = false;
for (Alarm item : alarmDao.getAlarms(taskId)) { for (Alarm item : alarmDao.getAlarms(taskId)) {
if (!timestamps.contains(item.getTime())) { if (!timestamps.remove(item.getTime())) {
jobs.cancelAlarm(item.getId()); jobs.cancelAlarm(item.getId());
alarmDao.delete(item); alarmDao.delete(item);
changed = true; changed = true;
} }
} }
// everything that remains shall be written
for (Long timestamp : timestamps) { for (Long timestamp : timestamps) {
alarmDao.insert(new Alarm(taskId, timestamp)); alarmDao.insert(new Alarm(taskId, timestamp));
changed = true; changed = true;

@ -224,8 +224,9 @@ public class ReminderControlSet extends TaskEditControlFragment {
} }
private void addAlarmRow(final Long timestamp) { private void addAlarmRow(final Long timestamp) {
addAlarmRow(getLongDateStringWithTime(context, timestamp), v -> alarms.remove(timestamp)); if (alarms.add(timestamp)) {
alarms.add(timestamp); addAlarmRow(getLongDateStringWithTime(context, timestamp), v -> alarms.remove(timestamp));
}
} }
private int getFlags() { private int getFlags() {

Loading…
Cancel
Save