Bugfix: ChartFragment needs to show elevation in M/FT.

This commit is contained in:
Dennis Guse
2021-04-30 22:17:04 +02:00
parent 6723bfb979
commit 1baf652b81
6 changed files with 10 additions and 22 deletions
@@ -54,7 +54,7 @@ public class ChartPointTest {
ChartPoint point = new ChartPoint(statistics, TrackStubUtils.createDefaultTrackPoint(), Speed.of(10), 50, false, true);
// then
assertEquals(0.05, point.getAltitude(), 0.01);
assertEquals(50, point.getAltitude(), 0.01);
assertEquals(36, point.getSpeed(), 0.01);
assertEquals(1.66, point.getPace(), 0.01);
}
@@ -29,12 +29,12 @@ public class ChartPoint {
public ChartPoint(@NonNull TrackStatistics trackStatistics, @NonNull TrackPoint trackPoint, Speed smoothedSpeed, double smoothedAltitude_m, boolean chartByDistance, boolean metricUnits) {
if (chartByDistance) {
timeOrDistance = trackStatistics.getTotalDistance().to(metricUnits);
timeOrDistance = trackStatistics.getTotalDistance().toKM_Miles(metricUnits);
} else {
timeOrDistance = trackStatistics.getTotalTime().toMillis();
}
altitude = Distance.of(smoothedAltitude_m).to(metricUnits);
altitude = Distance.of(smoothedAltitude_m).toM_FT(metricUnits);
speed = smoothedSpeed.to(metricUnits);
pace = smoothedSpeed.toPace(metricUnits).toMillis() * UnitConversions.MS_TO_S * UnitConversions.S_TO_MIN;
@@ -993,7 +993,7 @@ public class ChartView extends View {
private double getMarkerXValue(Marker marker) {
if (chartByDistance) {
return marker.getLength().to(metricUnits);
return marker.getLength().toKM_Miles(metricUnits);
} else {
return marker.getDuration().toMillis();
}
@@ -98,24 +98,12 @@ public class Distance {
return toKM() * UnitConversions.KM_TO_MI;
}
public double to(boolean metricUnit) {
return to(metricUnit ? Unit.KM : Unit.MILES);
public double toKM_Miles(boolean metricUnit) {
return metricUnit ? toKM() : toMI();
}
public double to(Unit unit) {
switch (unit) {
case KM:
return toKM();
case MILES:
return toMI();
default:
throw new RuntimeException("Not implemented");
}
}
public enum Unit {
KM,
MILES
public double toM_FT(boolean metricUnit) {
return metricUnit ? toM() : toFT();
}
@Override
@@ -175,7 +175,7 @@ public class PeriodicTaskExecutor {
return;
}
double distance = trackStatistics.getTotalDistance().to(metricUnits);
double distance = trackStatistics.getTotalDistance().toKM_Miles(metricUnits);
// The index will be negative since the frequency is negative.
int index = (int) (distance / taskFrequency);
@@ -49,7 +49,7 @@ public class AnnouncementUtils {
}
int totalDistanceId = isMetricUnits ? R.plurals.voiceTotalDistanceKilometers : R.plurals.voiceTotalDistanceMiles;
double distanceInUnit = distance.to(isMetricUnits);
double distanceInUnit = distance.toKM_Miles(isMetricUnits);
String totalDistance = context.getResources().getQuantityString(totalDistanceId, getQuantityCount(distanceInUnit), distanceInUnit);
currentRateMsg = currentInterval == null ? "" : " " + currentRateMsg;