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();} +}