1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-21 16:02:04 +02:00

Fix problem with labels on overview graph

Make them show up correctly and also refactor the code slightly.
This commit is contained in:
Erik Johansson
2018-03-22 22:49:51 +01:00
parent 06549f5b3f
commit f427560a61

View File

@@ -206,55 +206,50 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
private void updateLastLineChart(List<ScaleMeasurement> scaleMeasurementList) { private void updateLastLineChart(List<ScaleMeasurement> scaleMeasurementList) {
int max_i = 7;
if (scaleMeasurementList.size() < 7) {
max_i = scaleMeasurementList.size();
}
List<Line> diagramLineList = new ArrayList<>();
List<AxisValue> axisValues = new ArrayList<>();
final Calendar now = Calendar.getInstance(); final Calendar now = Calendar.getInstance();
Calendar histCalendar = Calendar.getInstance(); Calendar histCalendar = Calendar.getInstance();
scaleMeasurementLastDays = new ArrayList<>();
List<AxisValue> 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<Line> diagramLineList = new ArrayList<>();
for (MeasurementView view : measurementViews) { for (MeasurementView view : measurementViews) {
if (view instanceof FloatMeasurementView) { if (!view.isVisible()
FloatMeasurementView measurementView = (FloatMeasurementView) view; || !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))) { FloatMeasurementView measurementView = (FloatMeasurementView) view;
continue; Stack<PointValue> valuesStack = new Stack<PointValue>();
}
Stack<PointValue> valuesStack = new Stack<PointValue>(); for (int i = 0; i < max_i; ++i) {
ScaleMeasurement measurement = scaleMeasurementList.get(max_i - i - 1);
measurementView.loadFrom(measurement, null);
scaleMeasurementLastDays = new ArrayList<>(); if (measurementView.getValue() != 0.0f) {
valuesStack.push(new PointValue(i, measurementView.getValue()));
for (int i=0; i<max_i; i++) {
ScaleMeasurement measurement = scaleMeasurementList.get(max_i - i - 1);
measurementView.loadFrom(measurement, null);
scaleMeasurementLastDays.add(measurement);
if (measurementView.getValue() != 0.0f) {
valuesStack.push(new PointValue(i, measurementView.getValue()));
}
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()));
}
Line lineaDiagram = new Line(valuesStack).
setColor(measurementView.getColor()).
setHasLabels(prefs.getBoolean("labelsEnable", true)).
setHasPoints(prefs.getBoolean("pointsEnable", true)).
setFormatter(new SimpleLineChartValueFormatter(1));
if (measurementView.isVisible() && prefs.getBoolean(String.valueOf("actionButton" + measurementView.getName()), true)) {
diagramLineList.add(lineaDiagram);
} }
} }
diagramLineList.add(new Line(valuesStack).
setColor(measurementView.getColor()).
setHasLabels(prefs.getBoolean("labelsEnable", true)).
setHasPoints(prefs.getBoolean("pointsEnable", true)).
setFormatter(new SimpleLineChartValueFormatter(1)));
} }
LineChartData lineData = new LineChartData(diagramLineList); LineChartData lineData = new LineChartData(diagramLineList);