From d9486b1e0679f446d5aa2006be4598443696cb8c Mon Sep 17 00:00:00 2001
From: Febon <32780971+Febon@users.noreply.github.com>
Date: Wed, 20 May 2020 21:56:54 +0300
Subject: [PATCH] Added Habit reset Class
Immplemented a class that erases the repetitions of a habit "clearing its history"
---
.../src/main/res/xml/preferences.xml | 1 +
.../core/commands/ResetHabitsCommand.java | 45 +++++++++++++++++++
2 files changed, 46 insertions(+)
create mode 100644 android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/ResetHabitsCommand.java
diff --git a/android/uhabits-android/src/main/res/xml/preferences.xml b/android/uhabits-android/src/main/res/xml/preferences.xml
index 7688dcee9..2cef2f84d 100644
--- a/android/uhabits-android/src/main/res/xml/preferences.xml
+++ b/android/uhabits-android/src/main/res/xml/preferences.xml
@@ -127,6 +127,7 @@
diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/ResetHabitsCommand.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/ResetHabitsCommand.java
new file mode 100644
index 000000000..cf070c67b
--- /dev/null
+++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/commands/ResetHabitsCommand.java
@@ -0,0 +1,45 @@
+package org.isoron.uhabits.core.commands;
+
+import androidx.annotation.NonNull;
+
+import org.isoron.uhabits.core.models.Habit;
+import org.isoron.uhabits.core.models.HabitList;
+import org.isoron.uhabits.core.models.RepetitionList;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+public class ResetHabitsCommand extends Command
+{
+ @NonNull
+ final HabitList habitList;
+
+ @NonNull
+ final List selected;
+
+ public ResetHabitsCommand(@NonNull HabitList habitList, @NonNull List selected) {
+ this.habitList = habitList;
+ this.selected = new LinkedList<>(selected);
+ }
+
+ @Override
+ public void execute()
+ {
+ for (Habit h : selected) {
+ RepetitionList repetitionList = h.getRepetitions();
+ repetitionList.removeAll();
+ }
+ }
+ public List getSelected()
+ {
+ return Collections.unmodifiableList(selected);
+ }
+
+ @NonNull
+ @Override
+ public Object toRecord() { return null;}
+
+ @Override
+ public void undo() { throw new UnsupportedOperationException();}
+}