diff --git a/app/src/main/java/org/isoron/uhabits/models/Habit.java b/app/src/main/java/org/isoron/uhabits/models/Habit.java index 8a87f417d..97eea4b08 100644 --- a/app/src/main/java/org/isoron/uhabits/models/Habit.java +++ b/app/src/main/java/org/isoron/uhabits/models/Habit.java @@ -28,6 +28,8 @@ import java.util.*; import javax.inject.*; +import static org.isoron.uhabits.models.Checkmark.*; + /** * The thing that the user wants to track. */ @@ -163,6 +165,13 @@ public class Habit return color; } + public boolean isCompletedToday() + { + int todayCheckmark = getCheckmarks().getTodayValue(); + if (isNumerical()) return todayCheckmark >= targetValue; + else return (todayCheckmark != UNCHECKED); + } + public void setColor(@NonNull Integer color) { this.color = color; diff --git a/app/src/main/java/org/isoron/uhabits/models/HabitMatcher.java b/app/src/main/java/org/isoron/uhabits/models/HabitMatcher.java index afc8d6ff7..17198f279 100644 --- a/app/src/main/java/org/isoron/uhabits/models/HabitMatcher.java +++ b/app/src/main/java/org/isoron/uhabits/models/HabitMatcher.java @@ -23,8 +23,6 @@ import android.support.annotation.*; import java.util.*; -import static org.isoron.uhabits.models.Checkmark.*; - public class HabitMatcher { public static final HabitMatcher WITH_ALARM = new HabitMatcherBuilder() @@ -75,14 +73,8 @@ public class HabitMatcher { if (!isArchivedAllowed() && habit.isArchived()) return false; if (isReminderRequired() && !habit.hasReminder()) return false; - - if(!isCompletedAllowed()) - { - int todayCheckmark = habit.getCheckmarks().getTodayValue(); - if (todayCheckmark != UNCHECKED) return false; - } - - if(!allowedColors.contains(habit.getColor())) return false; + if (!isCompletedAllowed() && habit.isCompletedToday()) return false; + if (!allowedColors.contains(habit.getColor())) return false; return true; } }