From 373f21e247dbcba21e4bf77c5e2f5a5915a8d825 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sat, 26 Dec 2020 22:01:23 -0600 Subject: [PATCH] Simplify CommandRunner and convert it to Kotlin --- .../common/dialogs/HistoryEditorDialog.java | 2 +- .../habits/edit/EditHabitActivity.kt | 2 +- .../habits/list/ListHabitsScreen.kt | 10 +- .../habits/show/ShowHabitActivity.kt | 2 +- .../isoron/uhabits/widgets/WidgetUpdater.kt | 8 +- .../uhabits/core/commands/CommandRunner.java | 94 ------------------- .../uhabits/core/commands/CommandRunner.kt | 59 ++++++++++++ .../uhabits/core/io/LoopDBImporter.java | 11 ++- .../core/reminders/ReminderScheduler.java | 3 +- .../isoron/uhabits/core/sync/SyncManager.kt | 2 +- .../uhabits/core/ui/NotificationTray.java | 3 +- .../habits/list/HabitCardListCache.java | 12 ++- .../habits/list/ListHabitsBehavior.java | 12 +-- .../list/ListHabitsSelectionMenuBehavior.java | 18 ++-- .../screens/habits/show/ShowHabitBehavior.kt | 6 +- .../habits/show/ShowHabitMenuBehavior.kt | 2 +- .../core/ui/widgets/WidgetBehavior.java | 6 +- .../habits/list/HabitCardListCacheTest.java | 8 +- .../core/ui/widgets/WidgetBehaviorTest.java | 30 +++--- 19 files changed, 130 insertions(+), 160 deletions(-) delete mode 100644 android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.java create mode 100644 android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.kt diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/HistoryEditorDialog.java b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/HistoryEditorDialog.java index 4e27b52ef..04561d174 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/HistoryEditorDialog.java +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/dialogs/HistoryEditorDialog.java @@ -166,7 +166,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment } @Override - public void onCommandExecuted(@Nullable Command command, @Nullable Long refreshKey) + public void onCommandFinished(@NonNull Command command) { refreshData(); } diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt index 7259014c1..843f5a9e6 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt @@ -228,7 +228,7 @@ class EditHabitActivity : AppCompatActivity() { } else { component.createHabitCommandFactory.create(component.habitList, habit) } - component.commandRunner.execute(command, null) + component.commandRunner.run(command) finish() } diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt index 0ff0857e3..8ba6039e3 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.kt @@ -90,12 +90,10 @@ class ListHabitsScreen commandRunner.removeListener(this) } - override fun onCommandExecuted(command: Command?, refreshKey: Long?) { - if (command != null) { - val stringId = getExecuteString(command) - if (stringId != null) - activity.showMessage(stringId) - } + override fun onCommandFinished(command: Command) { + val stringId = getExecuteString(command) + if (stringId != null) + activity.showMessage(stringId) } fun onResult(requestCode: Int, resultCode: Int, data: Intent?) { diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt index b0de0f21c..3b167cf8c 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt @@ -115,7 +115,7 @@ class ShowHabitActivity : AppCompatActivity(), CommandRunner.Listener { super.onPause() } - override fun onCommandExecuted(command: Command?, refreshKey: Long?) { + override fun onCommandFinished(command: Command) { refresh() } diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt index 64573ad26..5a1f5a065 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/WidgetUpdater.kt @@ -42,8 +42,12 @@ class WidgetUpdater private val intentScheduler: IntentScheduler ) : CommandRunner.Listener { - override fun onCommandExecuted(command: Command?, refreshKey: Long?) { - updateWidgets(refreshKey) + override fun onCommandFinished(command: Command) { + if (command is CreateRepetitionCommand) { + updateWidgets(command.habit.id) + } else { + updateWidgets() + } } /** diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.java deleted file mode 100644 index 7b20ade23..000000000 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 2016 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.core.commands; - -import androidx.annotation.*; - -import org.isoron.uhabits.core.*; -import org.isoron.uhabits.core.tasks.*; - -import java.util.*; - -import javax.inject.*; - -/** - * A CommandRunner executes and undoes commands. - *

- * CommandRunners also allows objects to subscribe to it, and receive events - * whenever a command is performed. - */ -@AppScope -public class CommandRunner -{ - private final TaskRunner taskRunner; - - private final LinkedList listeners; - - @Inject - public CommandRunner(@NonNull TaskRunner taskRunner) - { - this.taskRunner = taskRunner; - listeners = new LinkedList<>(); - } - - public void addListener(Listener l) - { - listeners.add(l); - } - - public void execute(final Command command, final Long refreshKey) - { - taskRunner.execute(new Task() - { - @Override - public void doInBackground() - { - command.execute(); - } - - @Override - public void onPostExecute() - { - notifyListeners(command, refreshKey); - } - }); - } - - public void notifyListeners(Command command, Long refreshKey) - { - for (Listener l : listeners) - l.onCommandExecuted(command, refreshKey); - } - - public void removeListener(Listener l) - { - listeners.remove(l); - } - - /** - * Interface implemented by objects that want to receive an event whenever a - * command is executed. - */ - public interface Listener - { - void onCommandExecuted(@Nullable Command command, - @Nullable Long refreshKey); - } -} diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.kt b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.kt new file mode 100644 index 000000000..3fe97c371 --- /dev/null +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/CommandRunner.kt @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ +package org.isoron.uhabits.core.commands + +import org.isoron.uhabits.core.* +import org.isoron.uhabits.core.tasks.* +import java.util.* +import javax.inject.Inject + +@AppScope +open class CommandRunner +@Inject constructor( + private val taskRunner: TaskRunner, +) { + private val listeners: LinkedList = LinkedList() + + open fun run(command: Command) { + taskRunner.execute(object : Task { + override fun doInBackground() { + command.execute() + } + override fun onPostExecute() { + notifyListeners(command) + } + }) + } + + fun addListener(l: Listener) { + listeners.add(l) + } + + fun notifyListeners(command: Command) { + for (l in listeners) l.onCommandFinished(command) + } + + fun removeListener(l: Listener) { + listeners.remove(l) + } + + interface Listener { + fun onCommandFinished(command: Command) + } +} \ No newline at end of file diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/io/LoopDBImporter.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/io/LoopDBImporter.java index 2419f9cd7..861298c66 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/io/LoopDBImporter.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/io/LoopDBImporter.java @@ -109,19 +109,22 @@ public class LoopDBImporter extends AbstractImporter habitRecord.id.toString()); Habit habit = habitList.getByUUID(habitRecord.uuid); + Command command; if (habit == null) { habit = modelFactory.buildHabit(); habitRecord.id = null; habitRecord.copyTo(habit); - new CreateHabitCommand(modelFactory, habitList, habit).execute(); + command = new CreateHabitCommand(modelFactory, habitList, habit); + command.execute(); } else { Habit modified = modelFactory.buildHabit(); habitRecord.id = habit.getId(); habitRecord.copyTo(modified); - new EditHabitCommand(modelFactory, habitList, habit, modified).execute(); + command = new EditHabitCommand(modelFactory, habitList, habit, modified); + command.execute(); } // Reload saved version of the habit @@ -134,9 +137,9 @@ public class LoopDBImporter extends AbstractImporter if (existingEntry.getValue() != r.value) new CreateRepetitionCommand(habitList, habit, t, r.value).execute(); } - } - runner.notifyListeners(null, null); + runner.notifyListeners(command); + } db.close(); } } diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java index da35d71da..575945377 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/reminders/ReminderScheduler.java @@ -56,8 +56,7 @@ public class ReminderScheduler implements CommandRunner.Listener } @Override - public synchronized void onCommandExecuted(@Nullable Command command, - @Nullable Long refreshKey) + public synchronized void onCommandFinished(@Nullable Command command) { if (command instanceof CreateRepetitionCommand) return; if (command instanceof ChangeHabitColorCommand) return; diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/sync/SyncManager.kt b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/sync/SyncManager.kt index 0974090c6..98a71de12 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/sync/SyncManager.kt +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/sync/SyncManager.kt @@ -160,7 +160,7 @@ class SyncManager @Inject constructor( connected = false } - override fun onCommandExecuted(command: Command?, refreshKey: Long?) { + override fun onCommandFinished(command: Command) { if (!dirty) setCurrentVersion(currVersion + 1) dirty = true } diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/NotificationTray.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/NotificationTray.java index 4bea74ffd..e0720bf38 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/NotificationTray.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/NotificationTray.java @@ -74,8 +74,7 @@ public class NotificationTray } @Override - public void onCommandExecuted(@Nullable Command command, - @Nullable Long refreshKey) + public void onCommandFinished(@Nullable Command command) { if (command instanceof CreateRepetitionCommand) { diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java index b4dc5e2dc..976348ebd 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java @@ -138,11 +138,15 @@ public class HabitCardListCache implements CommandRunner.Listener } @Override - public synchronized void onCommandExecuted(@Nullable Command command, - @Nullable Long refreshKey) + public synchronized void onCommandFinished(@Nullable Command command) { - if (refreshKey == null) refreshAllHabits(); - else refreshHabit(refreshKey); + if (command instanceof CreateRepetitionCommand) { + Habit h = ((CreateRepetitionCommand) command).getHabit(); + Long id = h.getId(); + if (id != null) refreshHabit(id); + } else { + refreshAllHabits(); + } } public synchronized void onDetached() diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.java index a1eaa16ff..e9223e7d9 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.java @@ -88,9 +88,9 @@ public class ListHabitsBehavior screen.showNumberPicker(oldValue / 1000, habit.getUnit(), newValue -> { newValue = Math.round(newValue * 1000); - commandRunner.execute( - new CreateRepetitionCommand(habitList, habit, timestamp, (int) newValue), - habit.getId()); + commandRunner.run( + new CreateRepetitionCommand(habitList, habit, timestamp, (int) newValue) + ); }); } @@ -153,9 +153,9 @@ public class ListHabitsBehavior public void onToggle(@NonNull Habit habit, Timestamp timestamp, int value) { - commandRunner.execute( - new CreateRepetitionCommand(habitList, habit, timestamp, value), - habit.getId()); + commandRunner.run( + new CreateRepetitionCommand(habitList, habit, timestamp, value) + ); } public void onSyncKeyOffer(@NotNull String syncKey, @NotNull String encryptionKey) diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.java index b3ed88394..b4e9b3f3c 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsSelectionMenuBehavior.java @@ -78,8 +78,8 @@ public class ListHabitsSelectionMenuBehavior public void onArchiveHabits() { - commandRunner.execute( - new ArchiveHabitsCommand(habitList, adapter.getSelected()), null); + commandRunner.run( + new ArchiveHabitsCommand(habitList, adapter.getSelected())); adapter.clearSelection(); } @@ -90,9 +90,9 @@ public class ListHabitsSelectionMenuBehavior screen.showColorPicker(first.getColor(), selectedColor -> { - commandRunner.execute( - new ChangeHabitColorCommand(habitList, selected, selectedColor), - null); + commandRunner.run( + new ChangeHabitColorCommand(habitList, selected, selectedColor) + ); adapter.clearSelection(); }); } @@ -103,8 +103,8 @@ public class ListHabitsSelectionMenuBehavior screen.showDeleteConfirmationScreen(() -> { adapter.performRemove(selected); - commandRunner.execute(new DeleteHabitsCommand(habitList, selected), - null); + commandRunner.run(new DeleteHabitsCommand(habitList, selected) + ); adapter.clearSelection(); }); } @@ -117,8 +117,8 @@ public class ListHabitsSelectionMenuBehavior public void onUnarchiveHabits() { - commandRunner.execute( - new UnarchiveHabitsCommand(habitList, adapter.getSelected()), null); + commandRunner.run( + new UnarchiveHabitsCommand(habitList, adapter.getSelected())); adapter.clearSelection(); } diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitBehavior.kt b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitBehavior.kt index 35d1ef6e9..b71a6d8fc 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitBehavior.kt +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitBehavior.kt @@ -61,25 +61,23 @@ class ShowHabitBehavior( val oldValue = entries.get(timestamp).value screen.showNumberPicker(oldValue / 1000.0, habit.unit) { newValue: Double -> val thousands = (newValue * 1000).roundToInt() - commandRunner.execute( + commandRunner.run( CreateRepetitionCommand( habitList, habit, timestamp, thousands, ), - habit.id, ) } } else { - commandRunner.execute( + commandRunner.run( CreateRepetitionCommand( habitList, habit, timestamp, value, ), - null, ) } } diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitMenuBehavior.kt b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitMenuBehavior.kt index c6669cbae..a6da3e710 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitMenuBehavior.kt +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/show/ShowHabitMenuBehavior.kt @@ -51,7 +51,7 @@ class ShowHabitMenuBehavior( fun onDeleteHabit() { screen.showDeleteConfirmationScreen { - commandRunner.execute(DeleteHabitsCommand(habitList, listOf(habit)), null) + commandRunner.run(DeleteHabitsCommand(habitList, listOf(habit))) screen.close() } } diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java index e2b48756a..99fb7aced 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java @@ -93,8 +93,8 @@ public class WidgetBehavior } public void setValue(@NonNull Habit habit, Timestamp timestamp, int newValue) { - commandRunner.execute( - new CreateRepetitionCommand(habitList, habit, timestamp, newValue), - habit.getId()); + commandRunner.run( + new CreateRepetitionCommand(habitList, habit, timestamp, newValue) + ); } } diff --git a/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCacheTest.java b/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCacheTest.java index a51e237c5..bd69f7642 100644 --- a/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCacheTest.java +++ b/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCacheTest.java @@ -70,9 +70,9 @@ public class HabitCardListCacheTest extends BaseUnitTest assertThat(cache.getHabitCount(), equalTo(10)); Habit h = habitList.getByPosition(0); - commandRunner.execute( - new DeleteHabitsCommand(habitList, Collections.singletonList(h)), - null); + commandRunner.run( + new DeleteHabitsCommand(habitList, Collections.singletonList(h)) + ); verify(listener).onItemRemoved(0); verify(listener).onRefreshFinished(); @@ -84,7 +84,7 @@ public class HabitCardListCacheTest extends BaseUnitTest { Habit h2 = habitList.getByPosition(2); Timestamp today = DateUtils.getToday(); - commandRunner.execute(new CreateRepetitionCommand(habitList, h2, today, Entry.NO), h2.getId()); + commandRunner.run(new CreateRepetitionCommand(habitList, h2, today, Entry.NO)); verify(listener).onItemChanged(2); verify(listener).onRefreshFinished(); verifyNoMoreInteractions(listener); diff --git a/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/widgets/WidgetBehaviorTest.java b/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/widgets/WidgetBehaviorTest.java index 6aec0f051..d91a14d4f 100644 --- a/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/widgets/WidgetBehaviorTest.java +++ b/android/uhabits-core/src/test/java/org/isoron/uhabits/core/ui/widgets/WidgetBehaviorTest.java @@ -61,9 +61,9 @@ public class WidgetBehaviorTest extends BaseUnitTest public void testOnAddRepetition() { behavior.onAddRepetition(habit, timestamp); - verify(commandRunner).execute( - new CreateRepetitionCommand(habitList, habit, timestamp, YES_MANUAL), - habit.getId()); + verify(commandRunner).run( + new CreateRepetitionCommand(habitList, habit, timestamp, YES_MANUAL) + ); verify(notificationTray).cancel(habit); verifyZeroInteractions(preferences); } @@ -72,9 +72,9 @@ public class WidgetBehaviorTest extends BaseUnitTest public void testOnRemoveRepetition() { behavior.onRemoveRepetition(habit, timestamp); - verify(commandRunner).execute( - new CreateRepetitionCommand(habitList, habit, timestamp, NO), - habit.getId()); + verify(commandRunner).run( + new CreateRepetitionCommand(habitList, habit, timestamp, NO) + ); verify(notificationTray).cancel(habit); verifyZeroInteractions(preferences); } @@ -94,9 +94,9 @@ public class WidgetBehaviorTest extends BaseUnitTest habit.getOriginalEntries().add(new Entry(timestamp, currentValue)); behavior.onToggleRepetition(habit, timestamp); verify(preferences).isSkipEnabled(); - verify(commandRunner).execute( - new CreateRepetitionCommand(habitList, habit, timestamp, nextValue), - habit.getId()); + verify(commandRunner).run( + new CreateRepetitionCommand(habitList, habit, timestamp, nextValue) + ); verify(notificationTray).cancel(habit); reset(preferences, commandRunner, notificationTray); } @@ -110,9 +110,9 @@ public class WidgetBehaviorTest extends BaseUnitTest habit.recompute(); behavior.onIncrement(habit, timestamp, 100); - verify(commandRunner).execute( - new CreateRepetitionCommand(habitList, habit, timestamp, 600), - habit.getId()); + verify(commandRunner).run( + new CreateRepetitionCommand(habitList, habit, timestamp, 600) + ); verify(notificationTray).cancel(habit); verifyZeroInteractions(preferences); } @@ -125,9 +125,9 @@ public class WidgetBehaviorTest extends BaseUnitTest habit.recompute(); behavior.onDecrement(habit, timestamp, 100); - verify(commandRunner).execute( - new CreateRepetitionCommand(habitList, habit, timestamp, 400), - habit.getId()); + verify(commandRunner).run( + new CreateRepetitionCommand(habitList, habit, timestamp, 400) + ); verify(notificationTray).cancel(habit); verifyZeroInteractions(preferences); }