mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-15 13:14:22 +02:00
don't calculate zero measurements into the trendline calculations
This commit is contained in:
@@ -484,22 +484,36 @@ public class ChartMeasurementView extends LineChart {
|
||||
|
||||
private void addTrendLine(List<ILineDataSet> lineDataSets) {
|
||||
|
||||
List<ScaleMeasurement> scaleMeasurementsAsTrendlineList = getScaleMeasurementsAsTrendline(scaleMeasurementList);
|
||||
|
||||
for (MeasurementView view : measurementViews) {
|
||||
if (view instanceof FloatMeasurementView && view.isVisible()) {
|
||||
final FloatMeasurementView measurementView = (FloatMeasurementView) view;
|
||||
|
||||
final List<Entry> lineEntries = new ArrayList<>();
|
||||
|
||||
ArrayList<ScaleMeasurement> nonZeroScaleMeasurementList = new ArrayList<>();
|
||||
|
||||
// filter first all zero measurements out, so that the follow-up trendline calculations are not based on them
|
||||
for (int i=0; i<scaleMeasurementList.size(); i++) {
|
||||
ScaleMeasurement measurement = scaleMeasurementList.get(i);
|
||||
float value = measurementView.getMeasurementValue(measurement);
|
||||
|
||||
if (value != 0.0f) {
|
||||
nonZeroScaleMeasurementList.add(measurement);
|
||||
}
|
||||
}
|
||||
|
||||
// check if we have some data left otherwise skip the measurement
|
||||
if (nonZeroScaleMeasurementList.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// calculate the trendline from the non-zero scale measurement list
|
||||
List<ScaleMeasurement> scaleMeasurementsAsTrendlineList = getScaleMeasurementsAsTrendline(nonZeroScaleMeasurementList);
|
||||
|
||||
for (int i=0; i<scaleMeasurementsAsTrendlineList.size(); i++) {
|
||||
ScaleMeasurement measurement = scaleMeasurementsAsTrendlineList.get(i);
|
||||
float value = measurementView.getMeasurementValue(measurement);
|
||||
|
||||
if (value == 0.0f) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Entry entry = new Entry();
|
||||
entry.setX(convertDateToInt(measurement.getDateTime()));
|
||||
entry.setY(value);
|
||||
|
Reference in New Issue
Block a user