diff --git a/uhabits-android/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java b/uhabits-android/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java index 69528118a..b17bbace5 100644 --- a/uhabits-android/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java +++ b/uhabits-android/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java @@ -72,7 +72,7 @@ public class ReminderControllerTest extends BaseAndroidJVMTest controller.onSnoozePressed(habit,null); - verify(reminderScheduler).scheduleAtTime(habit, nowTz + 900000); + verify(reminderScheduler).scheduleMinutesFromNow(habit, 15L); verify(notificationTray).cancel(habit); } diff --git a/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java b/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java index ce4059ae8..51423aac7 100644 --- a/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java +++ b/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java @@ -52,19 +52,21 @@ public class ReminderScheduler implements CommandRunner.Listener public void onCommandExecuted(@NonNull Command command, @Nullable Long refreshKey) { - if(command instanceof ToggleRepetitionCommand) return; - if(command instanceof ChangeHabitColorCommand) return; + if (command instanceof ToggleRepetitionCommand) return; + if (command instanceof ChangeHabitColorCommand) return; scheduleAll(); } public void schedule(@NonNull Habit habit) { + if (!habit.hasReminder()) return; Long reminderTime = habit.getReminder().getTimeInMillis(); scheduleAtTime(habit, reminderTime); } public void scheduleAtTime(@NonNull Habit habit, @NonNull Long reminderTime) { + if (reminderTime == null) throw new IllegalArgumentException(); if (!habit.hasReminder()) return; if (habit.isArchived()) return; long timestamp = getStartOfDay(removeTimezone(reminderTime)); diff --git a/uhabits-core/src/test/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.java b/uhabits-core/src/test/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.java index 480471670..82e147e16 100644 --- a/uhabits-core/src/test/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.java +++ b/uhabits-core/src/test/java/org/isoron/uhabits/core/reminders/ReminderSchedulerTest.java @@ -118,7 +118,7 @@ public class ReminderSchedulerTest extends BaseUnitTest @Test public void testSchedule_withoutReminder() { - reminderScheduler.schedule(habit, null); + reminderScheduler.schedule(habit); Mockito.verifyZeroInteractions(sys); } @@ -133,7 +133,8 @@ public class ReminderSchedulerTest extends BaseUnitTest long expectedCheckmarkTime, long expectedReminderTime) { - reminderScheduler.schedule(habit, atTime); + if(atTime == null) reminderScheduler.schedule(habit); + else reminderScheduler.scheduleAtTime(habit, atTime); verify(sys).scheduleShowReminder(expectedReminderTime, habit, expectedCheckmarkTime); }