TrackStatistics and ChartView: handle altitude and speed as optional with null as default value.

Then only the relevant part of the y-axis is shown.

Fixes #795.
This commit is contained in:
Dennis Guse
2021-12-29 23:12:49 +01:00
parent 8c20d5583a
commit 07074ad260
11 changed files with 172 additions and 73 deletions
@@ -41,7 +41,6 @@ import androidx.core.view.GestureDetectorCompat;
import java.text.NumberFormat;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import de.dennisguse.opentracks.MarkerDetailActivity;
@@ -873,9 +872,9 @@ public class ChartView extends View {
boolean drawFirstPoint = false;
path.rewind();
Iterator<ChartPoint> iterator = chartPoints.iterator();
while (iterator.hasNext()) {
ChartPoint point = iterator.next();
Integer finalX = null;
for (ChartPoint point : chartPoints) {
if (!series.isChartPointValid(point)) {
continue;
}
@@ -893,10 +892,12 @@ public class ChartView extends View {
// draw graph
path.lineTo(x, y);
// last point: move to lower right
if (!iterator.hasNext()) {
path.lineTo(x, yCorner);
}
finalX = x;
}
// last point: move to lower right
if (finalX != null) {
path.lineTo(finalX, yCorner);
}
// back to lower left corner