From a998a62cdbe639c7cfed6ba47f683b8fa6d6b3a2 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 11 Sep 2016 11:35:32 -0400 Subject: [PATCH] Remove notification when habit is deleted --- .../uhabits/commands/DeleteHabitsCommand.java | 19 ++++++++++------- .../notifications/NotificationTray.java | 21 +++++++++++++------ 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/commands/DeleteHabitsCommand.java b/app/src/main/java/org/isoron/uhabits/commands/DeleteHabitsCommand.java index b4da2c67..ca184d8b 100644 --- a/app/src/main/java/org/isoron/uhabits/commands/DeleteHabitsCommand.java +++ b/app/src/main/java/org/isoron/uhabits/commands/DeleteHabitsCommand.java @@ -42,25 +42,30 @@ public class DeleteHabitsCommand extends Command @Override public void execute() { - for(Habit h : habits) + for (Habit h : habits) habitList.remove(h); } - @Override - public void undo() - { - throw new UnsupportedOperationException(); - } - @Override public Integer getExecuteStringId() { return R.string.toast_habit_deleted; } + public List getHabits() + { + return new LinkedList<>(habits); + } + @Override public Integer getUndoStringId() { return R.string.toast_habit_restored; } + + @Override + public void undo() + { + throw new UnsupportedOperationException(); + } } diff --git a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java index 9ad698e5..03fed27e 100644 --- a/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java +++ b/app/src/main/java/org/isoron/uhabits/notifications/NotificationTray.java @@ -88,14 +88,23 @@ public class NotificationTray public void onCommandExecuted(@NonNull Command command, @Nullable Long refreshKey) { - if (!(command instanceof ToggleRepetitionCommand)) return; + if (command instanceof ToggleRepetitionCommand) + { + ToggleRepetitionCommand toggleCmd = + (ToggleRepetitionCommand) command; - ToggleRepetitionCommand toggleCommand = - (ToggleRepetitionCommand) command; + Habit habit = toggleCmd.getHabit(); + if (habit.getCheckmarks().getTodayValue() != Checkmark.UNCHECKED) + cancel(habit); + } - Habit habit = toggleCommand.getHabit(); - if (habit.getCheckmarks().getTodayValue() != Checkmark.UNCHECKED) - cancel(habit); + if (command instanceof DeleteHabitsCommand) + { + DeleteHabitsCommand deleteCommand = (DeleteHabitsCommand) command; + List deleted = deleteCommand.getHabits(); + for(Habit habit : deleted) + cancel(habit); + } } @Override