diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.java index cee0dabcf..24b5fd38b 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/Habit.java @@ -23,6 +23,7 @@ import androidx.annotation.*; import org.apache.commons.lang3.builder.*; +import java.time.LocalDate; import java.util.*; import javax.annotation.concurrent.*; @@ -31,6 +32,7 @@ import javax.inject.*; import static org.isoron.uhabits.core.models.Checkmark.*; import static org.isoron.uhabits.core.utils.StringUtils.defaultToStringStyle; + /** * The thing that the user wants to track. */ @@ -66,6 +68,8 @@ public class Habit @NonNull private CheckmarkList checkmarks; + private LocalDate lastDismissed = LocalDate.MIN; + private ModelObservable observable = new ModelObservable(); /** @@ -339,6 +343,17 @@ public class Habit return data.type == NUMBER_HABIT; } + public synchronized boolean isDismissedToday() + { + LocalDate today = LocalDate.now(); + return lastDismissed.equals(today); + } + + public synchronized void dismiss() + { + lastDismissed = LocalDate.now(); + } + public HabitData getData() { return new HabitData(data); diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/HabitMatcher.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/HabitMatcher.java index d2b1801b2..693b5d2c2 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/HabitMatcher.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/HabitMatcher.java @@ -61,6 +61,7 @@ public class HabitMatcher if (!isArchivedAllowed() && habit.isArchived()) return false; if (isReminderRequired() && !habit.hasReminder()) return false; if (!isCompletedAllowed() && habit.isCompletedToday()) return false; + if (habit.isDismissedToday()) return false; return true; } }