Don't ignore missed snooze times

pull/574/head
Alex Baker 7 years ago
parent bec96f8ce6
commit b4e2445b0f

@ -169,18 +169,34 @@ public class ReminderServiceTest extends InjectingTestCase {
}
@Test
public void ignoreLapsedSnoozeTime() {
public void ignoreStaleSnoozeTime() {
Task task = newTask(
with(ID, 1L),
with(DUE_TIME, newDateTime()),
with(SNOOZE_TIME, newDateTime().minusMinutes(5)),
with(REMINDER_LAST, newDateTime().minusMinutes(4)),
with(REMINDERS, NOTIFY_AT_DEADLINE));
service.scheduleAlarm(null, task);
InOrder order = inOrder(jobs);
order.verify(jobs).cancelReminder(1);
order.verify(jobs).add(new Reminder(1, task.getDueDate(), ReminderService.TYPE_DUE));
}
@Test
public void dontIgnoreMissedSnoozeTime() {
DateTime dueDate = newDateTime();
Task task = newTask(
with(ID, 1L),
with(DUE_TIME, dueDate),
with(SNOOZE_TIME, dueDate.minusMinutes(4)),
with(REMINDER_LAST, dueDate.minusMinutes(5)),
with(REMINDERS, NOTIFY_AT_DEADLINE));
service.scheduleAlarm(null, task);
InOrder order = inOrder(jobs);
order.verify(jobs).cancelReminder(1);
order.verify(jobs).add(new Reminder(1, task.getReminderSnooze(), ReminderService.TYPE_SNOOZE));
}
@Test

@ -153,14 +153,8 @@ public final class ReminderService {
}
}
/**
* Calculate the next alarm time for snooze.
* <p>
* Pretty simple - if a snooze time is in the future, we use that. If it
* has already passed, we do nothing.
*/
private long calculateNextSnoozeReminder(Task task) {
if(task.getReminderSnooze() > DateUtilities.now()) {
if(task.getReminderSnooze() > task.getReminderLast()) {
return task.getReminderSnooze();
}
return NO_ALARM;

Loading…
Cancel
Save