From 1baf652b8134a7bdb4f6e3fdbd8cf896f01edbfd Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Fri, 30 Apr 2021 22:17:04 +0200 Subject: [PATCH] Bugfix: ChartFragment needs to show elevation in M/FT. --- .../opentracks/chart/ChartPointTest.java | 2 +- .../opentracks/chart/ChartPoint.java | 4 ++-- .../opentracks/chart/ChartView.java | 2 +- .../opentracks/content/data/Distance.java | 20 ++++--------------- .../services/tasks/PeriodicTaskExecutor.java | 2 +- .../opentracks/util/AnnouncementUtils.java | 2 +- 6 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java b/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java index 3e9f9d724..10b0a2544 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java @@ -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); } diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java b/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java index ee3414fc8..b94f303d5 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java @@ -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; diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java index d907cbe60..252c69930 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java @@ -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(); } diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Distance.java b/src/main/java/de/dennisguse/opentracks/content/data/Distance.java index 9fe06f1fe..365e5188e 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Distance.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/Distance.java @@ -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 diff --git a/src/main/java/de/dennisguse/opentracks/services/tasks/PeriodicTaskExecutor.java b/src/main/java/de/dennisguse/opentracks/services/tasks/PeriodicTaskExecutor.java index 2403dcb2a..6c3692281 100644 --- a/src/main/java/de/dennisguse/opentracks/services/tasks/PeriodicTaskExecutor.java +++ b/src/main/java/de/dennisguse/opentracks/services/tasks/PeriodicTaskExecutor.java @@ -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); diff --git a/src/main/java/de/dennisguse/opentracks/util/AnnouncementUtils.java b/src/main/java/de/dennisguse/opentracks/util/AnnouncementUtils.java index 152a458d0..adbc36cf1 100644 --- a/src/main/java/de/dennisguse/opentracks/util/AnnouncementUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/AnnouncementUtils.java @@ -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;