diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java index ed053be6..0264753f 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java @@ -206,55 +206,50 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener private void updateLastLineChart(List scaleMeasurementList) { - int max_i = 7; - - if (scaleMeasurementList.size() < 7) { - max_i = scaleMeasurementList.size(); - } - - List diagramLineList = new ArrayList<>(); - List axisValues = new ArrayList<>(); - final Calendar now = Calendar.getInstance(); Calendar histCalendar = Calendar.getInstance(); + scaleMeasurementLastDays = new ArrayList<>(); + List axisValues = new ArrayList<>(); + + int max_i = Math.min(7, scaleMeasurementList.size()); + for (int i = 0; i < max_i; ++i) { + ScaleMeasurement measurement = scaleMeasurementList.get(max_i - i - 1); + scaleMeasurementLastDays.add(measurement); + + histCalendar.setTime(measurement.getDateTime()); + int days = DateTimeHelpers.daysBetween(now, histCalendar); + String label = getResources().getQuantityString(R.plurals.label_days, Math.abs(days), days); + axisValues.add(new AxisValue(i, label.toCharArray())); + } + + List diagramLineList = new ArrayList<>(); + for (MeasurementView view : measurementViews) { - if (view instanceof FloatMeasurementView) { - FloatMeasurementView measurementView = (FloatMeasurementView) view; + if (!view.isVisible() + || !prefs.getBoolean(String.valueOf("actionButton" + view.getName()), true) + || view.getName().equals(getString(R.string.label_bmr)) + || !(view instanceof FloatMeasurementView)) { + continue; + } - if (measurementView.getName().equals(getString(R.string.label_bmr))) { - continue; - } + FloatMeasurementView measurementView = (FloatMeasurementView) view; + Stack valuesStack = new Stack(); - Stack valuesStack = new Stack(); + for (int i = 0; i < max_i; ++i) { + ScaleMeasurement measurement = scaleMeasurementList.get(max_i - i - 1); + measurementView.loadFrom(measurement, null); - scaleMeasurementLastDays = new ArrayList<>(); - - for (int i=0; i