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 ddc775d1..5fa221e7 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 @@ -302,6 +302,15 @@ public class DataEntryActivity extends AppCompatActivity { } isDirty = true; + + // Measurements that aren't visible should not store any value. Since we use values from + // the previous measurement there might be values for entries not shown. The loop below + // clears these values. + for (MeasurementView measurement : dataEntryMeasurements) { + if (!measurement.isVisible()) { + measurement.clearIn(scaleMeasurement); + } + } } for (MeasurementView measurement : dataEntryMeasurements) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java index 3664bde0..2d59c588 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java @@ -62,6 +62,11 @@ public class CommentMeasurementView extends MeasurementView { measurement.setComment(comment); } + @Override + public void clearIn(ScaleMeasurement measurement) { + measurement.setComment(""); + } + @Override public void restoreState(Bundle state) { setValue(state.getString(getKey()), true); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java index 8f1c5a3c..694d412b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java @@ -77,6 +77,11 @@ public class DateMeasurementView extends MeasurementView { measurement.setDateTime(target.getTime()); } + @Override + public void clearIn(ScaleMeasurement measurement) { + // Ignore + } + @Override public void restoreState(Bundle state) { setValue(new Date(state.getLong(getKey())), true); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java index 9eeb5833..086f8ce9 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java @@ -322,6 +322,11 @@ public abstract class FloatMeasurementView extends MeasurementView { } } + @Override + public void clearIn(ScaleMeasurement measurement) { + setMeasurementValue(0.0f, measurement); + } + @Override public void restoreState(Bundle state) { setValue(state.getFloat(getKey()), previousValue, true); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java index a22b3c4e..8a5367eb 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java @@ -259,6 +259,7 @@ public abstract class MeasurementView extends TableLayout { public abstract void loadFrom(ScaleMeasurement measurement, ScaleMeasurement previousMeasurement); public abstract void saveTo(ScaleMeasurement measurement); + public abstract void clearIn(ScaleMeasurement measurement); public abstract void restoreState(Bundle state); public abstract void saveState(Bundle state); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java index 95a6bb9d..b3411f77 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java @@ -80,6 +80,11 @@ public class TimeMeasurementView extends MeasurementView { measurement.setDateTime(target.getTime()); } + @Override + public void clearIn(ScaleMeasurement measurement) { + // Ignore + } + @Override public void restoreState(Bundle state) { setValue(new Date(state.getLong(getKey())), true);