1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-20 23:41:45 +02:00

Use correct value when evaluating measurement

Fix #279
This commit is contained in:
Erik Johansson
2018-05-29 11:06:47 +02:00
parent 1c3dfebee1
commit 3eacf0d85b

View File

@@ -151,7 +151,7 @@ public abstract class FloatMeasurementView extends MeasurementView {
setValueView(formatValue(value, true), callListener);
if (getMeasurementMode() != MeasurementViewMode.ADD) {
final float evalValue = maybeConvertValue(value);
final float evalValue = maybeConvertToOriginalValue(value);
EvaluationSheet evalSheet = new EvaluationSheet(getScaleUser(), dateTime);
evaluationResult = evaluateSheet(evalSheet, evalValue);
@@ -318,6 +318,17 @@ public abstract class FloatMeasurementView extends MeasurementView {
return value;
}
private float maybeConvertToOriginalValue(float value) {
if (shouldConvertAbsoluteWeightToPercentage()){
return makeAbsoluteWeight(value);
}
if (shouldConvertPercentageToAbsoluteWeight()) {
return makeRelativeWeight(value);
}
return value;
}
private void updateUserConvertedWeight(ScaleMeasurement measurement) {
if (shouldConvert()) {
// Make sure weight is never 0 to avoid division by 0
@@ -367,18 +378,10 @@ public abstract class FloatMeasurementView extends MeasurementView {
if (shouldConvert()) {
// Make sure to use the current weight to get a correct value
updateUserConvertedWeight(measurement);
}
// Need to convert back to original value before setting
if (shouldConvertPercentageToAbsoluteWeight()) {
setMeasurementValue(makeRelativeWeight(value), measurement);
}
else if (shouldConvertAbsoluteWeightToPercentage()){
setMeasurementValue(makeAbsoluteWeight(value), measurement);
}
}
else {
setMeasurementValue(value, measurement);
}
// May need to convert back to original value before saving
setMeasurementValue(maybeConvertToOriginalValue(value), measurement);
}
}