From 3abfbc9a290c399ff0214adb48cb2f857617d572 Mon Sep 17 00:00:00 2001 From: kalina559 Date: Tue, 11 Feb 2025 20:28:52 +0100 Subject: [PATCH 1/2] Hiding measurabele habit if it's completed for the frequency period --- .../java/org/isoron/uhabits/core/models/Habit.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt index 4b31d2a2e..4112653cb 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt @@ -57,17 +57,25 @@ data class Habit( fun isCompletedToday(): Boolean { val today = DateUtils.getTodayWithOffset() - val value = computedEntries.get(today).value return if (isNumerical) { when (targetType) { - NumericalHabitType.AT_LEAST -> value / 1000.0 >= targetValue + NumericalHabitType.AT_LEAST -> today.getScoreForPeriod() / 1000.0 >= targetValue NumericalHabitType.AT_MOST -> false } } else { + val value = computedEntries.get(today).value value != Entry.NO && value != Entry.UNKNOWN } } + private fun Timestamp.getScoreForPeriod(): Int { + val periodFirstDay = this.minus(frequency.denominator - 1) + + return computedEntries.getByInterval(periodFirstDay, this) + .filter { entry -> entry.value != Entry.UNKNOWN} + .sumOf { entry -> entry.value } + } + fun isEnteredToday(): Boolean { val today = DateUtils.getTodayWithOffset() val value = computedEntries.get(today).value From f0ab87609769bc03557ff8cae96831cc12ce6575 Mon Sep 17 00:00:00 2001 From: kalina559 Date: Tue, 11 Feb 2025 20:36:11 +0100 Subject: [PATCH 2/2] Corrected formatting --- .../src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt index 4112653cb..ae8c670f9 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/Habit.kt @@ -72,7 +72,7 @@ data class Habit( val periodFirstDay = this.minus(frequency.denominator - 1) return computedEntries.getByInterval(periodFirstDay, this) - .filter { entry -> entry.value != Entry.UNKNOWN} + .filter { entry -> entry.value != Entry.UNKNOWN } .sumOf { entry -> entry.value } }