From 7f102b2a55c141fcd0fd36d310e61e12b11b65d0 Mon Sep 17 00:00:00 2001 From: KristianTashkov Date: Wed, 22 Sep 2021 17:14:27 +0300 Subject: [PATCH] correctly decrease rolling sum starting from 0 on each day --- .../java/org/isoron/uhabits/core/models/ScoreList.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ScoreList.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ScoreList.kt index eff6fad7a..503be04aa 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ScoreList.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/ScoreList.kt @@ -101,10 +101,9 @@ class ScoreList { if (isNumerical) { rollingSum = defaultValue.toDouble() * denominator previousValue = numericalPercentageComplete(rollingSum) - rollingSum -= defaultValue } else if (defaultValue == Entry.YES_MANUAL) { previousValue = 1.0 - rollingSum = denominator.toDouble() - 1 + rollingSum = denominator.toDouble() } for (i in values.indices) { @@ -113,7 +112,10 @@ class ScoreList { rollingSum += values[offset] if (offset + denominator < values.size) { rollingSum -= values[offset + denominator] + } else { + rollingSum -= defaultValue } + val percentageCompleted = numericalPercentageComplete(rollingSum) previousValue = compute(freq, previousValue, percentageCompleted) } else { @@ -123,6 +125,8 @@ class ScoreList { if (offset + denominator < values.size) { if (values[offset + denominator] == Entry.YES_MANUAL) { rollingSum -= 1.0 + } else { + rollingSum -= defaultValue } } if (values[offset] != Entry.SKIP) {