Cleanup: ChartPoint uses null instead of NaN.

This commit is contained in:
Dennis Guse
2021-04-18 17:50:16 +02:00
parent 310b35713d
commit 7d4072c0d8
5 changed files with 27 additions and 38 deletions
@@ -52,7 +52,7 @@ public class ChartValueSeriesTest {
15, 15,
18) { 18) {
@Override @Override
double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
return chartPoint.getAltitude(); return chartPoint.getAltitude();
} }
@@ -39,6 +39,7 @@ import de.dennisguse.opentracks.content.data.TrackPoint;
import de.dennisguse.opentracks.util.UnitConversions; import de.dennisguse.opentracks.util.UnitConversions;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/** /**
* Tests {@link ChartFragment}. * Tests {@link ChartFragment}.
@@ -83,9 +84,9 @@ public class ChartFragmentTest {
ChartPoint point = chartFragment.createPendingPoint(trackPoint); ChartPoint point = chartFragment.createPendingPoint(trackPoint);
// then // then
assertEquals(Float.NaN, point.getHeartRate(), 0.01); assertNull(point.getHeartRate());
assertEquals(Float.NaN, point.getCadence(), 0.01); assertNull(point.getCadence());
assertEquals(Float.NaN, point.getPower(), 0.01); assertNull(point.getPower());
} }
/** /**
@@ -14,11 +14,11 @@ public class ChartPoint {
//Y-axis //Y-axis
private double altitude; private double altitude;
private double speed; private Double speed;
private double pace; private Double pace;
private double heartRate = Double.NaN; private Double heartRate;
private double cadence = Double.NaN; private Double cadence;
private double power = Double.NaN; private Double power;
@VisibleForTesting @VisibleForTesting
ChartPoint(double altitude) { ChartPoint(double altitude) {
@@ -43,13 +43,13 @@ public class ChartPoint {
pace = trackStatisticsUpdater.getSmoothedSpeed().toPace(metricUnits).toMillis() * UnitConversions.MS_TO_S * UnitConversions.S_TO_MIN; pace = trackStatisticsUpdater.getSmoothedSpeed().toPace(metricUnits).toMillis() * UnitConversions.MS_TO_S * UnitConversions.S_TO_MIN;
if (trackPoint != null) { if (trackPoint != null) {
if (trackPoint.hasHeartRate()) { if (trackPoint.hasHeartRate()) {
heartRate = trackPoint.getHeartRate_bpm(); heartRate = (double) trackPoint.getHeartRate_bpm();
} }
if (trackPoint.hasCyclingCadence()) { if (trackPoint.hasCyclingCadence()) {
cadence = trackPoint.getCyclingCadence_rpm(); cadence = (double) trackPoint.getCyclingCadence_rpm();
} }
if (trackPoint.hasPower()) { if (trackPoint.hasPower()) {
power = trackPoint.getPower(); power = (double) trackPoint.getPower();
} }
} }
} }
@@ -58,39 +58,27 @@ public class ChartPoint {
return timeOrDistance; return timeOrDistance;
} }
public double getAltitude() { public Double getAltitude() {
return altitude; return altitude;
} }
public double getSpeed() { public Double getSpeed() {
return speed; return speed;
} }
public double getPace() { public Double getPace() {
return pace; return pace;
} }
public boolean hasHeartRate() { public Double getHeartRate() {
return Double.isNaN(heartRate);
}
public double getHeartRate() {
return heartRate; return heartRate;
} }
public boolean hasCadence() { public Double getCadence() {
return Double.isNaN(cadence);
}
public double getCadence() {
return cadence; return cadence;
} }
public boolean hasPower() { public Double getPower() {
return Double.isNaN(power);
}
public double getPower() {
return power; return power;
} }
} }
@@ -132,10 +132,10 @@ abstract class ChartValueSeries {
} }
} }
abstract double extractDataFromChartPoint(@NonNull ChartPoint chartPoint); abstract Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint);
boolean isChartPointValid(@NonNull ChartPoint chartPoint) { boolean isChartPointValid(@NonNull ChartPoint chartPoint) {
return !Double.isNaN(extractDataFromChartPoint(chartPoint)); return extractDataFromChartPoint(chartPoint) != null;
} }
protected abstract boolean drawIfChartPointHasNoData(); protected abstract boolean drawIfChartPointHasNoData();
@@ -206,7 +206,7 @@ public class ChartView extends View {
fontSizeSmall, fontSizeSmall,
fontSizeMedium) { fontSizeMedium) {
@Override @Override
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { protected Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
return chartPoint.getAltitude(); return chartPoint.getAltitude();
} }
@@ -227,7 +227,7 @@ public class ChartView extends View {
fontSizeSmall, fontSizeSmall,
fontSizeMedium) { fontSizeMedium) {
@Override @Override
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { protected Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
return chartPoint.getSpeed(); return chartPoint.getSpeed();
} }
@@ -249,7 +249,7 @@ public class ChartView extends View {
fontSizeSmall, fontSizeSmall,
fontSizeMedium) { fontSizeMedium) {
@Override @Override
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { protected Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
return chartPoint.getPace(); return chartPoint.getPace();
} }
@@ -271,7 +271,7 @@ public class ChartView extends View {
fontSizeSmall, fontSizeSmall,
fontSizeMedium) { fontSizeMedium) {
@Override @Override
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { protected Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
return chartPoint.getHeartRate(); return chartPoint.getHeartRate();
} }
@@ -292,7 +292,7 @@ public class ChartView extends View {
fontSizeSmall, fontSizeSmall,
fontSizeMedium) { fontSizeMedium) {
@Override @Override
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { protected Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
return chartPoint.getCadence(); return chartPoint.getCadence();
} }
@@ -312,7 +312,7 @@ public class ChartView extends View {
fontSizeSmall, fontSizeSmall,
fontSizeMedium) { fontSizeMedium) {
@Override @Override
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { protected Double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
return chartPoint.getPower(); return chartPoint.getPower();
} }