diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java index 521f37b2..ddc775d1 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java @@ -43,6 +43,7 @@ import com.health.openscale.gui.views.DateMeasurementView; import com.health.openscale.gui.views.MeasurementView; import com.health.openscale.gui.views.MeasurementViewUpdateListener; import com.health.openscale.gui.views.TimeMeasurementView; +import com.health.openscale.gui.views.WeightMeasurementView; import java.text.DateFormat; import java.util.Date; @@ -446,6 +447,17 @@ public class DataEntryActivity extends AppCompatActivity { view.saveTo(scaleMeasurement); isDirty = true; + // When weight is updated we may need to re-save some values that are stored + // as percentages, but that the user may have set up to be shown as absolute. + // Otherwise that measurement (e.g. fat) may change when weight is updated. + if (view instanceof WeightMeasurementView) { + for (MeasurementView measurement : dataEntryMeasurements) { + if (measurement != view) { + measurement.saveTo(scaleMeasurement); + } + } + } + txtDataNr.setText(DateFormat.getDateTimeInstance( DateFormat.LONG, DateFormat.SHORT).format(scaleMeasurement.getDateTime()));