From bc1b4e3cd22df1824dab780ee8fff5a8d245950a Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Fri, 2 Apr 2021 18:29:05 +0200 Subject: [PATCH] Rename elevation to altitude (without translations). Fixes #678. --- doc/data-flow.txt | 4 +- doc/data-structure.txt | 2 +- .../chart/ChartValueSeriesTest.java | 10 +- .../content/DescriptionGeneratorTest.java | 34 ++-- .../opentracks/content/data/TestDataUtil.java | 8 +- .../content/data/TestSensorDataUtil.java | 4 +- .../CustomContentProviderUtilsTest.java | 12 +- .../fragments/ChartFragmentTest.java | 10 +- .../io/file/importer/ExportImportTest.java | 32 ++-- .../sensors/AltitudeSumManagerTest.java | 50 ++++++ .../sensors/ElevationSumManagerTest.java | 50 ------ .../opentracks/stats/TrackStatisticsTest.java | 26 +-- .../stats/TrackStatisticsUpdaterTest.java | 8 +- .../util/AnnouncementUtilsTest.java | 4 +- .../util/PressureSensorUtilsTest.java | 22 +-- .../viewmodels/AggregatedStatisticsTest.java | 6 +- .../viewmodels/IntervalStatisticsTest.java | 2 +- .../opentracks/chart/ChartPoint.java | 14 +- .../opentracks/chart/ChartView.java | 10 +- .../content/DescriptionGenerator.java | 44 +++-- .../content/data/MarkerColumns.java | 2 +- .../opentracks/content/data/TrackPoint.java | 28 +-- .../content/data/TrackPointsColumns.java | 8 +- .../content/data/TracksColumns.java | 16 +- .../provider/CachedTrackPointsIndexes.java | 8 +- .../provider/ContentProviderUtils.java | 48 ++--- .../fragments/StatisticsRecordedFragment.java | 24 +-- .../StatisticsRecordingFragment.java | 72 ++++---- .../io/file/exporter/GPXTrackExporter.java | 22 +-- .../io/file/exporter/KMLTrackExporter.java | 24 +-- .../importer/AbstractFileTrackImporter.java | 8 +- .../file/importer/GpxFileTrackImporter.java | 4 +- .../file/importer/KmlFileTrackImporter.java | 24 +-- .../services/TrackRecordingService.java | 44 ++--- .../services/TrackRecordingServiceBinder.java | 8 +- .../TrackRecordingServiceInterface.java | 12 +- ...umManager.java => AltitudeSumManager.java} | 34 ++-- .../opentracks/stats/TrackStatistics.java | 164 ++++++++---------- .../stats/TrackStatisticsUpdater.java | 66 ++++--- .../opentracks/util/PreferencesUtils.java | 6 +- .../opentracks/util/PressureSensorUtils.java | 48 ++--- .../opentracks/util/StringUtils.java | 15 +- .../viewmodels/IntervalStatistics.java | 8 +- src/main/res/layout/interval_list_view.xml | 4 +- src/main/res/layout/statistics_recorded.xml | 46 ++--- src/main/res/layout/statistics_recording.xml | 70 ++++---- src/main/res/values-ar/strings.xml | 12 +- src/main/res/values-b+en+001/strings.xml | 12 +- src/main/res/values-b+es+419/strings.xml | 12 +- src/main/res/values-bg/strings.xml | 12 +- src/main/res/values-ca/strings.xml | 12 +- src/main/res/values-cs/strings.xml | 14 +- src/main/res/values-da/strings.xml | 14 +- src/main/res/values-de/strings.xml | 14 +- src/main/res/values-el/strings.xml | 12 +- src/main/res/values-es/strings.xml | 14 +- src/main/res/values-et/strings.xml | 14 +- src/main/res/values-eu/strings.xml | 14 +- src/main/res/values-fa/strings.xml | 12 +- src/main/res/values-fi/strings.xml | 14 +- src/main/res/values-fr-rCA/strings.xml | 12 +- src/main/res/values-fr-rCH/strings.xml | 12 +- src/main/res/values-fr/strings.xml | 12 +- src/main/res/values-gl/strings.xml | 14 +- src/main/res/values-hi/strings.xml | 12 +- src/main/res/values-hr/strings.xml | 12 +- src/main/res/values-hu/strings.xml | 12 +- src/main/res/values-in/strings.xml | 12 +- src/main/res/values-it/strings.xml | 14 +- src/main/res/values-iw/strings.xml | 12 +- src/main/res/values-ja/strings.xml | 12 +- src/main/res/values-ko/strings.xml | 12 +- src/main/res/values-lt/strings.xml | 12 +- src/main/res/values-lv/strings.xml | 12 +- src/main/res/values-mo/strings.xml | 12 +- src/main/res/values-ms/strings.xml | 12 +- src/main/res/values-nb/strings.xml | 14 +- src/main/res/values-nl/strings.xml | 14 +- src/main/res/values-pl/strings.xml | 14 +- src/main/res/values-pt-rBR/strings.xml | 14 +- src/main/res/values-pt-rPT/strings.xml | 12 +- src/main/res/values-pt/strings.xml | 12 +- src/main/res/values-ro/strings.xml | 12 +- src/main/res/values-ru/strings.xml | 12 +- src/main/res/values-sk/strings.xml | 12 +- src/main/res/values-sl/strings.xml | 12 +- src/main/res/values-sr/strings.xml | 12 +- src/main/res/values-sv/strings.xml | 12 +- src/main/res/values-th/strings.xml | 12 +- src/main/res/values-tl/strings.xml | 12 +- src/main/res/values-tr/strings.xml | 12 +- src/main/res/values-uk/strings.xml | 14 +- src/main/res/values-vi/strings.xml | 12 +- src/main/res/values-zh-rHK/strings.xml | 12 +- src/main/res/values-zh-rTW/strings.xml | 12 +- src/main/res/values-zh/strings.xml | 14 +- src/main/res/values/colors.xml | 4 +- src/main/res/values/settings.xml | 4 +- src/main/res/values/settings_deprecated.xml | 4 +- src/main/res/values/strings.xml | 14 +- src/main/res/xml/settings.xml | 6 +- 101 files changed, 893 insertions(+), 934 deletions(-) create mode 100644 src/androidTest/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManagerTest.java delete mode 100644 src/androidTest/java/de/dennisguse/opentracks/services/sensors/ElevationSumManagerTest.java rename src/main/java/de/dennisguse/opentracks/services/sensors/{ElevationSumManager.java => AltitudeSumManager.java} (70%) diff --git a/doc/data-flow.txt b/doc/data-flow.txt index 0c0b1489c..d0e570a30 100644 --- a/doc/data-flow.txt +++ b/doc/data-flow.txt @@ -1,5 +1,5 @@ @startuml -SensorManager --> ElevationSumManager +SensorManager --> AltitudeSumManager LocationManager --> TrackRecordingService ElevationSumManager --> TrackRecordingService @@ -14,6 +14,6 @@ TrackDataHub --> StatisticsRecordingFragment : TrackPoints, TrackStatistics, Way TrackDataHub --> StatisticsRecordedFragment : TrackPoints, TrackStatistics, Waypoints (push) TrackDataHub --> ChartFragment --> ChartView -TrackRecordingServiceConnection --> StatisticsRecordingFragment : Sensor data (heartrate, cadence, elevation gain; pull 1s) +TrackRecordingServiceConnection --> StatisticsRecordingFragment : Sensor data (heartrate, cadence, altitude gain; pull 1s) TrackRecordingServiceConnection --> TrackController : Start time (pull, onStart) @enduml \ No newline at end of file diff --git a/doc/data-structure.txt b/doc/data-structure.txt index 6332cb19c..d43eb8301 100644 --- a/doc/data-structure.txt +++ b/doc/data-structure.txt @@ -18,7 +18,7 @@ class TrackStatistics { - totalTime - movingTime - maxSpeed - - totalElevationGain + - totalGain } class TrackStatisticsUpdater { diff --git a/src/androidTest/java/de/dennisguse/opentracks/chart/ChartValueSeriesTest.java b/src/androidTest/java/de/dennisguse/opentracks/chart/ChartValueSeriesTest.java index dcd436f43..983ce5325 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/chart/ChartValueSeriesTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/chart/ChartValueSeriesTest.java @@ -45,15 +45,15 @@ public class ChartValueSeriesTest { Integer.MIN_VALUE, Integer.MAX_VALUE, new int[]{100, 1000}, - R.string.description_elevation_metric, - R.string.description_elevation_imperial, - R.color.chart_elevation_fill, - R.color.chart_elevation_border, + R.string.description_altitude_metric, + R.string.description_altitude_imperial, + R.color.chart_altitude_fill, + R.color.chart_altitude_border, 15, 18) { @Override double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { - return chartPoint.getElevation(); + return chartPoint.getAltitude(); } @Override diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorTest.java b/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorTest.java index dbaea9222..cec90d240 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorTest.java @@ -64,20 +64,20 @@ public class DescriptionGeneratorTest { stats.setTotalTime(Duration.ofMillis(600000)); stats.setMovingTime(Duration.ofMillis(300000)); stats.setMaxSpeed(100); - stats.setMaxElevation(550); - stats.setMinElevation(-500); - stats.setTotalElevationGain(6000f); - stats.setTotalElevationLoss(6000f); + stats.setMaxAltitude(550); + stats.setMinAltitude(-500); + stats.setTotalAltitudeGain(6000f); + stats.setTotalAltitudeLoss(6000f); stats.setStartTime(START_TIME); track.setTrackStatistics(stats); track.setCategory("hiking"); String expected = //"Created by" "OpenTracks (Debug)

" - + "Name: -
" - + "Activity type: hiking
" - + "Description: -
" - + "Total distance: 20.00 km (12.4 mi)
" - + "Total time: 10:00
" + + "Name: -
" + + "Activity type: hiking
" + + "Description: -
" + + "Total distance: 20.00 km (12.4 mi)
" + + "Total time: 10:00
" + "Moving time: 05:00
" + "Average speed: 120.00 km/h (74.6 mi/h)
" + "Average moving speed: 240.00 km/h (149.1 mi/h)
" @@ -95,17 +95,17 @@ public class DescriptionGeneratorTest { } @Test - public void testGenerateTrackDescriptionWithoutMaxMinElevation() { + public void testGenerateTrackDescriptionWithoutMaxMinAltitude() { Track track = new Track(); TrackStatistics stats = new TrackStatistics(); stats.setTotalDistance(20000); stats.setTotalTime(Duration.ofMillis(600000)); stats.setMovingTime(Duration.ofMillis(300000)); stats.setMaxSpeed(100); - stats.setMaxElevation(Double.POSITIVE_INFINITY); - stats.setMinElevation(Double.NEGATIVE_INFINITY); - stats.setTotalElevationGain(6000f); - stats.setTotalElevationLoss(6000f); + stats.setMaxAltitude(Double.POSITIVE_INFINITY); + stats.setMinAltitude(Double.NEGATIVE_INFINITY); + stats.setTotalAltitudeGain(6000f); + stats.setTotalAltitudeLoss(6000f); stats.setStartTime(START_TIME); track.setTrackStatistics(stats); track.setCategory("hiking"); @@ -162,12 +162,12 @@ public class DescriptionGeneratorTest { } /** - * Tests {@link DescriptionGenerator#writeElevation(double, StringBuilder, int, String)}. + * Tests {@link DescriptionGenerator#writeAltitude(double, StringBuilder, int, String)}. */ @Test - public void testWriteElevation() { + public void testWriteAltitude() { StringBuilder builder = new StringBuilder(); - descriptionGenerator.writeElevation(4.2, builder, R.string.description_min_elevation, "
"); + descriptionGenerator.writeAltitude(4.2, builder, R.string.description_min_altitude, "
"); assertEquals("Min elevation: 4 m (14 ft)
", builder.toString()); } diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java index 9e49fe8c1..0c6e61bad 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java @@ -19,8 +19,8 @@ public class TestDataUtil { public static final double INITIAL_LATITUDE = 37.0; public static final double INITIAL_LONGITUDE = -57.0; public static final double ALTITUDE_INTERVAL = 2.5; - public static final float ELEVATION_GAIN = 3; - public static final float ELEVATION_LOSS = 3; + public static final float ALTITUDE_GAIN = 3; + public static final float ALTITUDE_LOSS = 3; /** * Create a track without any trackPoints. @@ -121,8 +121,8 @@ public class TestDataUtil { trackPoint.setHeartRate_bpm(100f + i); trackPoint.setCyclingCadence_rpm(300f + i); trackPoint.setPower(400f + i); - trackPoint.setElevationGain(ELEVATION_GAIN); - trackPoint.setElevationLoss(ELEVATION_LOSS); + trackPoint.setAltitudeGain(ALTITUDE_GAIN); + trackPoint.setAltitudeLoss(ALTITUDE_LOSS); return trackPoint; } diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java index bbb89c074..a5179b556 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java @@ -23,8 +23,8 @@ public class TestSensorDataUtil { tp.setAltitude(1f); tp.setTime(time); tp.setSpeed(5f + (i / 10f)); - tp.setElevationGain(3f); - tp.setElevationLoss(3f); + tp.setAltitudeGain(3f); + tp.setAltitudeLoss(3f); trackPointList.add(tp); } diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderUtilsTest.java index a19bb0a85..75b283805 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderUtilsTest.java @@ -429,10 +429,10 @@ public class CustomContentProviderUtilsTest { statistics.setTotalTime(Duration.ofMillis(1500)); statistics.setMovingTime(Duration.ofMillis(700)); statistics.setTotalDistance(750.0); - statistics.setTotalElevationGain(50.0f); + statistics.setTotalAltitudeGain(50.0f); statistics.setMaxSpeed(60.0); - statistics.setMaxElevation(1250.0); - statistics.setMinElevation(1200.0); + statistics.setMaxAltitude(1250.0); + statistics.setMinAltitude(1200.0); track.first.setTrackStatistics(statistics); contentProviderUtils.insertTrack(track.first); @@ -564,10 +564,10 @@ public class CustomContentProviderUtilsTest { // statistics.setTotalTime(1500L); // statistics.setMovingTime(700L); // statistics.setTotalDistance(750.0); -// statistics.setTotalElevationGain(50.0); +// statistics.setTotalAltitudeGain(50.0); // statistics.setMaxSpeed(60.0); -// statistics.setMaxElevation(1250.0); -// statistics.setMinElevation(1200.0); +// statistics.setMaxAltitude(1250.0); +// statistics.setMinAltitude(1200.0); // // track.setTrackStatistics(statistics); // TestDataUtil.insertTrackWithLocations(contentProviderUtils, track); diff --git a/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java b/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java index 36a67f86a..05df65c5b 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/fragments/ChartFragmentTest.java @@ -211,18 +211,18 @@ public class ChartFragmentTest { } /** - * Tests the logic to get the value of elevation in {@link ChartFragment#createPendingPoint(TrackPoint)} by one and two points. + * Tests the logic to get the value of altitude in {@link ChartFragment#createPendingPoint(TrackPoint)} by one and two points. */ @Test - public void testCreatePendingPoint_elevation() { + public void testCreatePendingPoint_altitude() { TrackPoint trackPoint1 = TrackStubUtils.createDefaultTrackPoint(); /* - * At first, clear old points of elevation, so give true to the second parameter. + * At first, clear old points of altitude, so give true to the second parameter. * Then only one value INITIAL_ALTITUDE in buffer. */ ChartPoint point = chartFragment.createPendingPoint(trackPoint1); - assertEquals(TrackStubUtils.INITIAL_ALTITUDE, point.getElevation(), 0.01); + assertEquals(TrackStubUtils.INITIAL_ALTITUDE, point.getAltitude(), 0.01); /* * Send another value to buffer, now there are two values, INITIAL_ALTITUDE and INITIAL_ALTITUDE * 2. @@ -230,7 +230,7 @@ public class ChartFragmentTest { TrackPoint trackPoint2 = TrackStubUtils.createDefaultTrackPoint(); trackPoint2.setAltitude(TrackStubUtils.INITIAL_ALTITUDE * 2); point = chartFragment.createPendingPoint(trackPoint2); - assertEquals((TrackStubUtils.INITIAL_ALTITUDE + TrackStubUtils.INITIAL_ALTITUDE * 2) / 2.0, point.getElevation(), 0.01); + assertEquals((TrackStubUtils.INITIAL_ALTITUDE + TrackStubUtils.INITIAL_ALTITUDE * 2) / 2.0, point.getAltitude(), 0.01); } /** diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java index 6c63ed9d1..2f7f52815 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java @@ -330,7 +330,7 @@ public class ExportImportTest { } } - private void assertTrackpoints(List trackPoints, boolean verifyPower, boolean verifyHeartrate, boolean verifyCadence, boolean verifyElevationGain, boolean verifyElevationLoss, boolean verifyDistance) { + private void assertTrackpoints(List trackPoints, boolean verifyPower, boolean verifyHeartrate, boolean verifyCadence, boolean verifyAltitudeGain, boolean verifyAltitudeLoss, boolean verifyDistance) { List importedTrackPoints = TestDataUtil.getTrackPoints(contentProviderUtils, importTrackId); assertEquals(trackPoints.size(), importedTrackPoints.size()); @@ -374,11 +374,11 @@ public class ExportImportTest { if (verifyPower) { assertEquals("" + trackPoint, trackPoint.getPower(), importedTrackPoint.getPower(), 0.01); } - if (verifyElevationGain) { - assertEquals(trackPoint.getElevationGain(), importedTrackPoint.getElevationGain(), 0.01); + if (verifyAltitudeGain) { + assertEquals(trackPoint.getAltitudeGain(), importedTrackPoint.getAltitudeGain(), 0.01); } - if (verifyElevationLoss) { - assertEquals(trackPoint.getElevationLoss(), importedTrackPoint.getElevationLoss(), 0.01); + if (verifyAltitudeLoss) { + assertEquals(trackPoint.getAltitudeLoss(), importedTrackPoint.getAltitudeLoss(), 0.01); } if (verifyDistance) { assertEquals(trackPoint.getSensorDistance(), importedTrackPoint.getSensorDistance(), 0.01); @@ -386,7 +386,7 @@ public class ExportImportTest { } } - private void assertTrackStatistics(boolean isGpx, boolean verifyElevationGainAndLoss, boolean verifyDistance) { + private void assertTrackStatistics(boolean isGpx, boolean verifyAltitudeGainAndLoss, boolean verifyDistance) { Track importedTrack = contentProviderUtils.getTrack(importTrackId); assertNotNull(importedTrack.getTrackStatistics()); @@ -414,26 +414,26 @@ public class ExportImportTest { assertEquals(trackStatistics.getAverageMovingSpeed(), importedTrackStatistics.getAverageMovingSpeed(), 0.01); } - // Elevation - assertEquals(trackStatistics.getMinElevation(), importedTrackStatistics.getMinElevation(), 0.01); - assertEquals(trackStatistics.getMaxElevation(), importedTrackStatistics.getMaxElevation(), 0.01); - if (verifyElevationGainAndLoss) { - assertEquals(trackStatistics.getTotalElevationGain(), importedTrackStatistics.getTotalElevationGain(), 0.01); - assertEquals(trackStatistics.getTotalElevationLoss(), importedTrackStatistics.getTotalElevationLoss(), 0.01); + // Altitude + assertEquals(trackStatistics.getMinAltitude(), importedTrackStatistics.getMinAltitude(), 0.01); + assertEquals(trackStatistics.getMaxAltitude(), importedTrackStatistics.getMaxAltitude(), 0.01); + if (verifyAltitudeGainAndLoss) { + assertEquals(trackStatistics.getTotalAltitudeGain(), importedTrackStatistics.getTotalAltitudeGain(), 0.01); + assertEquals(trackStatistics.getTotalAltitudeLoss(), importedTrackStatistics.getTotalAltitudeLoss(), 0.01); } else { - assertFalse(importedTrackStatistics.hasTotalElevationGain()); - assertFalse(importedTrackStatistics.hasTotalElevationLoss()); + assertFalse(importedTrackStatistics.hasTotalAltitudeGain()); + assertFalse(importedTrackStatistics.hasTotalAltitudeLoss()); } } - private static TrackPoint createTrackPoint(long time, double latitude, double longitude, float accuracy, float speed, float altitude, float elevationGain, float heartRate, float cyclingCadence, float power, float distance) { + private static TrackPoint createTrackPoint(long time, double latitude, double longitude, float accuracy, float speed, float altitude, float altitudeGain, float heartRate, float cyclingCadence, float power, float distance) { TrackPoint tp = new TrackPoint(latitude, longitude, (double) altitude, Instant.ofEpochMilli(time)); tp.setAccuracy(accuracy); tp.setSpeed(speed); tp.setHeartRate_bpm(heartRate); tp.setCyclingCadence_rpm(cyclingCadence); tp.setPower(power); - tp.setElevationGain(elevationGain); + tp.setAltitudeGain(altitudeGain); tp.setSensorDistance(distance); return tp; } diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManagerTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManagerTest.java new file mode 100644 index 000000000..4a4febec7 --- /dev/null +++ b/src/androidTest/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManagerTest.java @@ -0,0 +1,50 @@ +package de.dennisguse.opentracks.services.sensors; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * NOTE: Test data is completely artificial. + */ +public class AltitudeSumManagerTest { + + private final AltitudeSumManager subject = new AltitudeSumManager(); + + private static void addSensorValue(AltitudeSumManager altitudeSumManager, float[] values) { + for (float f : values) { + altitudeSumManager.onSensorValueChanged(f); + } + } + + @Before + public void setUp() { + subject.reset(); + } + + @Test + public void getAltitudeGainLoss_downhill() { + // given + subject.setConnected(true); + + // then + addSensorValue(subject, new float[]{1015f, 1015.01f, 1015.02f, 1015.03f, 1015.04f, 1015.05f, 1015.06f, 1015.07f, 1015.08f, 1015.09f, 1015.10f, 1015.11f, 1015.12f, 1015.13f, 1015.14f, 1015.15f}); + + // then + Assert.assertEquals(0f, subject.getAltitudeGain_m(), 0.01); + Assert.assertEquals(48.0, subject.getAltitudeLoss_m(), 0.01); + } + + @Test + public void sensorUnavailable() { + // given + subject.setConnected(false); + + // then + subject.onSensorValueChanged(999f); + + // then + Assert.assertNull(subject.getAltitudeGain_m()); + Assert.assertNull(subject.getAltitudeLoss_m()); + } +} \ No newline at end of file diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/ElevationSumManagerTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/sensors/ElevationSumManagerTest.java deleted file mode 100644 index fd3bc84bb..000000000 --- a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/ElevationSumManagerTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package de.dennisguse.opentracks.services.sensors; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -/** - * NOTE: Test data is completely artificial. - */ -public class ElevationSumManagerTest { - - private final ElevationSumManager elevationSumManager = new ElevationSumManager(); - - private static void addSensorValue(ElevationSumManager elevationSumManager, float[] values) { - for (float f : values) { - elevationSumManager.onSensorValueChanged(f); - } - } - - @Before - public void setUp() { - elevationSumManager.reset(); - } - - @Test - public void getElevationGainLoss_downhill() { - // given - elevationSumManager.setConnected(true); - - // then - addSensorValue(elevationSumManager, new float[]{1015f, 1015.01f, 1015.02f, 1015.03f, 1015.04f, 1015.05f, 1015.06f, 1015.07f, 1015.08f, 1015.09f, 1015.10f, 1015.11f, 1015.12f, 1015.13f, 1015.14f, 1015.15f}); - - // then - Assert.assertEquals(0f, elevationSumManager.getElevationGain_m(), 0.01); - Assert.assertEquals(48.0, elevationSumManager.getElevationLoss_m(), 0.01); - } - - @Test - public void sensorUnavailable() { - // given - elevationSumManager.setConnected(false); - - // then - elevationSumManager.onSensorValueChanged(999f); - - // then - Assert.assertNull(elevationSumManager.getElevationGain_m()); - Assert.assertNull(elevationSumManager.getElevationLoss_m()); - } -} \ No newline at end of file diff --git a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java index 1875f1795..7054c05e8 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java @@ -56,10 +56,10 @@ public class TrackStatisticsTest { assertEquals(Duration.ofSeconds(0), statistics.getMovingTime()); assertEquals(Duration.ofSeconds(0), statistics.getTotalTime()); - assertNull(statistics.getTotalElevationGain()); - assertNull(statistics.getTotalElevationLoss()); - assertEquals(Double.NEGATIVE_INFINITY, statistics.getMaxElevation(), 0.0); - assertEquals(Double.POSITIVE_INFINITY, statistics.getMinElevation(), 0.0); + assertNull(statistics.getTotalAltitudeGain()); + assertNull(statistics.getTotalAltitudeLoss()); + assertEquals(Double.NEGATIVE_INFINITY, statistics.getMaxAltitude(), 0.0); + assertEquals(Double.POSITIVE_INFINITY, statistics.getMinAltitude(), 0.0); assertEquals(0.0, statistics.getMaxSpeed(), 0.0); assertEquals(0.0, statistics.getAverageSpeed(), 0.0); assertEquals(0.0, statistics.getAverageMovingSpeed(), 0.0); @@ -79,14 +79,14 @@ public class TrackStatisticsTest { statistics2.setMovingTime(Duration.ofMillis(600)); // Result: 700+600 statistics.setTotalDistance(750.0); statistics2.setTotalDistance(350.0); // Result: 750+350 - statistics.setTotalElevationGain(50.0f); - statistics2.setTotalElevationGain(850.0f); // Result: 850+50 + statistics.setTotalAltitudeGain(50.0f); + statistics2.setTotalAltitudeGain(850.0f); // Result: 850+50 statistics.setMaxSpeed(60.0); // Resulting max speed statistics2.setMaxSpeed(30.0); - statistics.setMaxElevation(1250.0); - statistics.setMinElevation(1200.0); // Resulting min elevation - statistics2.setMaxElevation(3575.0); // Resulting max elevation - statistics2.setMinElevation(2800.0); + statistics.setMaxAltitude(1250.0); + statistics.setMinAltitude(1200.0); // Resulting min altitude + statistics2.setMaxAltitude(3575.0); // Resulting max altitude + statistics2.setMinAltitude(2800.0); // when statistics.merge(statistics2); @@ -97,10 +97,10 @@ public class TrackStatisticsTest { assertEquals(Duration.ofMillis(2500), statistics.getTotalTime()); assertEquals(Duration.ofMillis(1300), statistics.getMovingTime()); assertEquals(1100.0, statistics.getTotalDistance(), 0.001); - assertEquals(900.0, statistics.getTotalElevationGain(), 0.001); + assertEquals(900.0, statistics.getTotalAltitudeGain(), 0.001); assertEquals(statistics.getTotalDistance() / statistics.getMovingTime().getSeconds(), statistics.getMaxSpeed(), 0.001); - assertEquals(1200.0, statistics.getMinElevation(), 0.001); - assertEquals(3575.0, statistics.getMaxElevation(), 0.001); + assertEquals(1200.0, statistics.getMinAltitude(), 0.001); + assertEquals(3575.0, statistics.getMaxAltitude(), 0.001); } @Test diff --git a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java index 0b439d9c0..eaec8da61 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java @@ -35,10 +35,10 @@ public class TrackStatisticsUpdaterTest { assertEquals(Duration.ofMillis(13999), statistics.getTotalTime()); assertEquals(Duration.ofSeconds(6), statistics.getMovingTime()); - assertEquals(2.5, statistics.getMinElevation(), 0.01); - assertEquals(27.5, statistics.getMaxElevation(), 0.01); - assertEquals(27, statistics.getTotalElevationGain(), 0.01); - assertEquals(27.0, statistics.getTotalElevationLoss(), 0.01); + assertEquals(2.5, statistics.getMinAltitude(), 0.01); + assertEquals(27.5, statistics.getMaxAltitude(), 0.01); + assertEquals(27, statistics.getTotalAltitudeGain(), 0.01); + assertEquals(27.0, statistics.getTotalAltitudeLoss(), 0.01); assertEquals(14.226, statistics.getMaxSpeed(), 0.01); assertEquals(14.226, statistics.getAverageMovingSpeed(), 0.01); diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java index 9af104535..a979ee6e3 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java @@ -31,7 +31,7 @@ public class AnnouncementUtilsTest { stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10)); stats.setMovingTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10)); stats.setMaxSpeed(100); - stats.setTotalElevationGain(6000f); + stats.setTotalAltitudeGain(6000f); // when String announcement = AnnouncementUtils.getAnnouncement(context, stats, true, true, null); @@ -47,7 +47,7 @@ public class AnnouncementUtilsTest { stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10)); stats.setMovingTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10)); stats.setMaxSpeed(100); - stats.setTotalElevationGain(6000f); + stats.setTotalAltitudeGain(6000f); List trackPoints = TestDataUtil.createTrack(new Track.Id(System.currentTimeMillis()), 10).second; IntervalStatistics intervalStatistics = new IntervalStatistics(trackPoints, 1000); diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/PressureSensorUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/PressureSensorUtilsTest.java index 346c81520..1dd2cf01a 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/PressureSensorUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/PressureSensorUtilsTest.java @@ -9,7 +9,7 @@ public class PressureSensorUtilsTest { // real data at 500Hz stationary @Test - public void elevationChanges_none() { + public void altitudeChanges_none() { // given float[] sensorValues_hPa = new float[]{1015.6876f, 1015.699f, 1015.70905f, 1015.71075f, 1015.7224f, 1015.72f, 1015.7373f, 1015.7481f, 1015.74133f, 1015.73553f, 1015.7462f, 1015.74896f, 1015.752f, 1015.754f, 1015.7456f, 1015.73303f, 1015.7288f, 1015.7239f, 1015.7298f, 1015.7387f, 1015.72534f, 1015.72577f, 1015.72797f, 1015.71796f, 1015.7113f, 1015.7097f, 1015.7096f, 1015.7013f, 1015.7072f, 1015.71063f, 1015.7088f, 1015.7115f, 1015.713f, 1015.7121f, 1015.7062f, 1015.7062f, 1015.6994f, 1015.69617f, 1015.68945f, 1015.698f, 1015.6913f, 1015.69696f, 1015.69293f, 1015.6955f, 1015.6928f, 1015.6939f, 1015.68787f, 1015.6881f, 1015.68536f, 1015.68726f, 1015.6879f, 1015.6904f, 1015.6937f, 1015.69476f, 1015.7046f, 1015.7019f, 1015.7079f, 1015.71124f, 1015.71216f, 1015.71436f, 1015.7171f, 1015.7186f, 1015.7186f, 1015.7246f, 1015.72046f, 1015.7211f, 1015.72375f, 1015.7194f, 1015.72125f, 1015.7161f, 1015.71185f, 1015.7188f, 1015.721f, 1015.7252f, 1015.72266f, 1015.7236f, 1015.72614f, 1015.7266f, 1015.7344f, 1015.7376f, 1015.7337f, 1015.7253f, 1015.71875f, 1015.7219f, 1015.7219f, 1015.7317f, 1015.7284f, 1015.73444f, 1015.73584f, 1015.7369f, 1015.73254f, 1015.7369f, 1015.7336f, 1015.73254f, 1015.73676f, 1015.74176f, 1015.74506f, 1015.7478f, 1015.755f, 1015.7515f, 1015.7543f, 1015.7459f, 1015.7468f, 1015.7492f, 1015.74585f, 1015.74756f, 1015.74756f, 1015.75085f, 1015.754f, 1015.75336f, 1015.7568f, 1015.75165f, 1015.761f, 1015.7527f, 1015.75684f, 1015.7635f, 1015.7585f, 1015.7552f, 1015.7475f, 1015.74506f, 1015.7542f, 1015.75586f, 1015.74176f, 1015.74414f, 1015.7501f, 1015.751f, 1015.7478f, 1015.755f, 1015.75836f, 1015.7592f, 1015.75256f, 1015.7559f, 1015.76654f, 1015.76154f, 1015.766f, 1015.77014f, 1015.76904f, 1015.76013f, 1015.7674f, 1015.76514f, 1015.7674f, 1015.7635f, 1015.76404f, 1015.7607f, 1015.754f, 1015.7574f, 1015.7607f, 1015.7607f, 1015.7607f, 1015.754f, 1015.7567f, 1015.7616f, 1015.7643f, 1015.7666f, 1015.7609f, 1015.766f, 1015.76764f, 1015.755f, 1015.75757f, 1015.74927f, 1015.74927f, 1015.7426f, 1015.745f, 1015.745f, 1015.7409f, 1015.7376f, 1015.7326f, 1015.74164f, 1015.74664f, 1015.745f, 1015.7459f, 1015.7502f, 1015.7493f, 1015.7476f, 1015.7493f, 1015.751f, 1015.7601f, 1015.76434f, 1015.766f, 1015.756f, 1015.7617f, 1015.7623f, 1015.76404f, 1015.76733f, 1015.7607f, 1015.7623f, 1015.76337f, 1015.7584f, 1015.7573f, 1015.7502f, 1015.7534f, 1015.7534f, 1015.7601f, 1015.75684f, 1015.7518f, 1015.75574f, 1015.7524f, 1015.7507f, 1015.7484f, 1015.7502f, 1015.7534f, 1015.7623f, 1015.75903f, 1015.75574f, 1015.75574f, 1015.7573f, 1015.7524f, 1015.75574f, 1015.75574f, 1015.7607f, 1015.7573f, 1015.754f, 1015.74677f, 1015.754f, 1015.75574f, 1015.75903f, 1015.7573f, 1015.7551f, 1015.7573f, 1015.754f, 1015.7507f, 1015.7374f, 1015.739f, 1015.73566f, 1015.73566f, 1015.7367f, 1015.7417f, 1015.7417f, 1015.739f, 1015.74835f, 1015.74567f, 1015.7517f, 1015.74066f, 1015.7374f, 1015.739f, 1015.7417f, 1015.73065f, 1015.72894f, 1015.73505f, 1015.73334f, 1015.74005f, 1015.74005f, 1015.7367f, 1015.7434f, 1015.744f, 1015.7423f, 1015.7384f, 1015.739f, 1015.7374f, 1015.7374f, 1015.7374f, 1015.7341f, 1015.73505f, 1015.7341f, 1015.7267f, 1015.72833f, 1015.7234f, 1015.7167f, 1015.725f, 1015.7217f, 1015.7234f, 1015.73004f, 1015.7324f, 1015.7423f, 1015.74005f, 1015.73505f, 1015.73004f, 1015.739f, 1015.7417f, 1015.74567f, 1015.74066f, 1015.74146f, 1015.74146f, 1015.73816f, 1015.7274f, 1015.72906f, 1015.7274f, 1015.7341f, 1015.739f, 1015.744f, 1015.7417f, 1015.7374f, 1015.7324f, 1015.73816f, 1015.74146f, 1015.7374f, 1015.7341f, 1015.7365f, 1015.7365f, 1015.74146f, 1015.74414f, 1015.7475f, 1015.7448f, 1015.74146f, 1015.74585f, 1015.7475f, 1015.75146f, 1015.75146f, 1015.7591f, 1015.75476f, 1015.7614f, 1015.75476f, 1015.7492f, 1015.74817f, 1015.7498f, 1015.7515f, 1015.75586f, 1015.7509f, 1015.7448f, 1015.7525f, 1015.7581f, 1015.7592f}; float firstSensorValue = sensorValues_hPa[0]; @@ -20,7 +20,7 @@ public class PressureSensorUtilsTest { } } - // Simulate a sudden drop of elevation. + // Simulate a sudden drop of altitude. // test data @Test public void computeChanges_downhill() { @@ -28,22 +28,22 @@ public class PressureSensorUtilsTest { float firstSensorValue = sensorValues_hPa[0]; // when - float elevationGain_m = 0; - float elevationLoss_m = 0; + float altitudeGain_m = 0; + float altitudeLoss = 0; float lastUsedPressureValue_hPa = firstSensorValue; for (float v : sensorValues_hPa) { - PressureSensorUtils.ElevationChange elevationChange = PressureSensorUtils.computeChanges_m(lastUsedPressureValue_hPa, v); - if (elevationChange != null) { - elevationGain_m += elevationChange.getElevationGain_m(); - elevationLoss_m += elevationChange.getElevationLoss_m(); - lastUsedPressureValue_hPa = elevationChange.getCurrentSensorValue_hPa(); + PressureSensorUtils.AltitudeChange altitudeChange = PressureSensorUtils.computeChanges_m(lastUsedPressureValue_hPa, v); + if (altitudeChange != null) { + altitudeGain_m += altitudeChange.getAltitudeGain_m(); + altitudeLoss += altitudeChange.getAltitudeLoss_m(); + lastUsedPressureValue_hPa = altitudeChange.getCurrentSensorValue_hPa(); } } // then - assertEquals(0f, elevationGain_m, 0.01); - assertEquals(15.0f, elevationLoss_m, 0.01); + assertEquals(0f, altitudeGain_m, 0.01); + assertEquals(15.0f, altitudeLoss, 0.01); assertEquals(1016.80f, lastUsedPressureValue_hPa, 0.01); //Expect exponential smoothing } } \ No newline at end of file diff --git a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsTest.java index e90be4647..2d763f444 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsTest.java @@ -32,10 +32,10 @@ public class AggregatedStatisticsTest { statistics.setTotalTime(Duration.ofMillis(totalTime)); statistics.setMovingTime(Duration.ofMillis(totalTime)); statistics.setTotalDistance(totalDistance); - statistics.setTotalElevationGain(50.0f); + statistics.setTotalAltitudeGain(50.0f); statistics.setMaxSpeed(50.0); // Resulting max speed - statistics.setMaxElevation(1250.0); - statistics.setMinElevation(1200.0); // Resulting min elevation + statistics.setMaxAltitude(1250.0); + statistics.setMinAltitude(1200.0); // Resulting min altitude Track track = new Track(); track.setIcon(TrackIconUtils.getIconValue(context, category)); diff --git a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java index 192cfec2d..71e5a3b58 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java @@ -128,7 +128,7 @@ public class IntervalStatisticsTest { assertEquals(trackStatistics.getTotalDistance(), totalDistance, 0.01); assertEquals(trackStatistics.getTotalTime().toMillis(), totalTime * UnitConversions.S_TO_MS, 1); assertEquals(intervalList.size(), (int) Math.ceil(trackStatistics.getTotalDistance() / distanceInterval)); - assertEquals(totalGain, trackPoints.size() * TestDataUtil.ELEVATION_GAIN, 0.1); + assertEquals(totalGain, trackPoints.size() * TestDataUtil.ALTITUDE_GAIN, 0.1); for (int i = 0; i < intervalList.size() - 1; i++) { assertEquals(intervalList.get(i).getDistance_m(), distanceInterval, 0.001); totalDistance -= intervalList.get(i).getDistance_m(); diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java b/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java index 4f0d872cf..b860ef13f 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java @@ -13,7 +13,7 @@ public class ChartPoint { private double timeOrDistance; //Y-axis - private double elevation; + private double altitude; private double speed; private double pace; private double heartRate = Double.NaN; @@ -21,8 +21,8 @@ public class ChartPoint { private double power = Double.NaN; @VisibleForTesting - ChartPoint(double elevation) { - this.elevation = elevation; + ChartPoint(double altitude) { + this.altitude = altitude; } public ChartPoint(@NonNull TrackStatisticsUpdater trackStatisticsUpdater, TrackPoint trackPoint, boolean chartByDistance, boolean metricUnits) { @@ -38,9 +38,9 @@ public class ChartPoint { timeOrDistance = trackStatistics.getTotalTime().toMillis(); } - elevation = trackStatisticsUpdater.getSmoothedElevation(); + altitude = trackStatisticsUpdater.getSmoothedAltitude(); if (!metricUnits) { - elevation *= UnitConversions.M_TO_FT; + altitude *= UnitConversions.M_TO_FT; } speed = trackStatisticsUpdater.getSmoothedSpeed() * UnitConversions.MPS_TO_KMH; @@ -65,8 +65,8 @@ public class ChartPoint { return timeOrDistance; } - public double getElevation() { - return elevation; + public double getAltitude() { + return altitude; } public double getSpeed() { diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java index 14c26bd8a..83e2e9dbc 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java @@ -200,15 +200,15 @@ public class ChartView extends View { Integer.MIN_VALUE, Integer.MAX_VALUE, new int[]{5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000}, - R.string.description_elevation_metric, - R.string.description_elevation_imperial, - R.color.chart_elevation_fill, - R.color.chart_elevation_border, + R.string.description_altitude_metric, + R.string.description_altitude_imperial, + R.color.chart_altitude_fill, + R.color.chart_altitude_border, fontSizeSmall, fontSizeMedium) { @Override protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) { - return chartPoint.getElevation(); + return chartPoint.getAltitude(); } @Override diff --git a/src/main/java/de/dennisguse/opentracks/content/DescriptionGenerator.java b/src/main/java/de/dennisguse/opentracks/content/DescriptionGenerator.java index 66a1e04a5..b977c10b2 100644 --- a/src/main/java/de/dennisguse/opentracks/content/DescriptionGenerator.java +++ b/src/main/java/de/dennisguse/opentracks/content/DescriptionGenerator.java @@ -127,24 +127,24 @@ public class DescriptionGenerator { // Fastest pace writePace(stats.getMaxSpeed(), builder, R.string.description_fastest_pace_in_minute, lineBreak); - // Max elevation - if (stats.hasElevationMax()) { - writeElevation(stats.getMaxElevation(), builder, R.string.description_max_elevation, lineBreak); + // Max altitude + if (stats.hasAltitudeMax()) { + writeAltitude(stats.getMaxAltitude(), builder, R.string.description_max_altitude, lineBreak); } - // Min elevation - if (stats.hasElevationMin()) { - writeElevation(stats.getMinElevation(), builder, R.string.description_min_elevation, lineBreak); + // Min altitude + if (stats.hasAltitudeMin()) { + writeAltitude(stats.getMinAltitude(), builder, R.string.description_min_altitude, lineBreak); } - // Elevation gain - if (stats.hasTotalElevationGain()) { - writeElevation(stats.getTotalElevationGain(), builder, R.string.description_elevation_gain, lineBreak); + // Altitude gain + if (stats.hasTotalAltitudeGain()) { + writeAltitude(stats.getTotalAltitudeGain(), builder, R.string.description_altitude_gain, lineBreak); } - // Elevation loss - if (stats.hasTotalElevationLoss()) { - writeElevation(stats.getTotalElevationLoss(), builder, R.string.description_elevation_loss, lineBreak); + // Altitude loss + if (stats.hasTotalAltitudeLoss()) { + writeAltitude(stats.getTotalAltitudeLoss(), builder, R.string.description_altitude_loss, lineBreak); } // Recorded time @@ -201,8 +201,6 @@ public class DescriptionGenerator { } /** - * Writes pace. - * * @param speed speed in meters per second * @param builder StringBuilder to append pace * @param resId resource id of pace string @@ -221,18 +219,16 @@ public class DescriptionGenerator { } /** - * Writes elevation. - * - * @param elevation elevation in meters - * @param builder StringBuilder to append elevation - * @param resId resource id of elevation string - * @param lineBreak line break string + * @param altitude_m altitude_m in meters + * @param builder StringBuilder to append + * @param resId resource id of altitude string + * @param lineBreak line break string */ @VisibleForTesting - void writeElevation(double elevation, StringBuilder builder, int resId, String lineBreak) { - long elevationInM = Math.round(elevation); - long elevationInFt = Math.round(elevation * UnitConversions.M_TO_FT); - builder.append(context.getString(resId, elevationInM, elevationInFt)); + void writeAltitude(double altitude_m, StringBuilder builder, int resId, String lineBreak) { + long altitudeInM = Math.round(altitude_m); + long altitudeInFt = Math.round(altitude_m * UnitConversions.M_TO_FT); + builder.append(context.getString(resId, altitudeInM, altitudeInFt)); builder.append(lineBreak); } } diff --git a/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java b/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java index 69bf939ce..32fac3fa0 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java @@ -48,7 +48,7 @@ public interface MarkerColumns extends BaseColumns { String LONGITUDE = "longitude"; // longitude String LATITUDE = "latitude"; // latitude String TIME = "time"; // time - String ALTITUDE = "elevation"; // altitude + String ALTITUDE = "elevation"; // altitude //TODO RENAME column String ACCURACY = "accuracy"; // accuracy String BEARING = "bearing"; // bearing diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java b/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java index a3698093b..6a8bb5fbb 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java @@ -93,8 +93,8 @@ public class TrackPoint { private Float heartRate_bpm = null; private Float cyclingCadence_rpm = null; private Float power = null; - private Float elevationGain = null; - private Float elevationLoss = null; + private Float altitudeGain_m = null; + private Float altitudeLoss_m = null; public TrackPoint(@NonNull Type type) { this.type = type; @@ -221,28 +221,28 @@ public class TrackPoint { return location; } - public boolean hasElevationGain() { - return elevationGain != null; + public boolean hasAltitudeGain() { + return altitudeGain_m != null; } - public float getElevationGain() { - return elevationGain; + public float getAltitudeGain() { + return altitudeGain_m; } - public void setElevationGain(Float elevationGain) { - this.elevationGain = elevationGain; + public void setAltitudeGain(Float altitudeGain_m) { + this.altitudeGain_m = altitudeGain_m; } - public boolean hasElevationLoss() { - return elevationLoss != null; + public boolean hasAltitudeLoss() { + return altitudeLoss_m != null; } - public float getElevationLoss() { - return elevationLoss; + public float getAltitudeLoss() { + return altitudeLoss_m; } - public void setElevationLoss(Float elevationLoss) { - this.elevationLoss = elevationLoss; + public void setAltitudeLoss(Float altitudeLoss_m) { + this.altitudeLoss_m = altitudeLoss_m; } public Instant getTime() { diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TrackPointsColumns.java b/src/main/java/de/dennisguse/opentracks/content/data/TrackPointsColumns.java index 3de0e668e..166bbc643 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TrackPointsColumns.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/TrackPointsColumns.java @@ -52,8 +52,8 @@ public interface TrackPointsColumns extends BaseColumns { String SENSOR_CADENCE = "sensor_cadence"; String SENSOR_DISTANCE = "sensor_distance"; //DISTANCE from previous TrackPoint String SENSOR_POWER = "sensor_power"; - String ELEVATION_GAIN = "elevation_gain"; - String ELEVATION_LOSS = "elevation_loss"; + String ALTITUDE_GAIN = "elevation_gain"; + String ALTITUDE_LOSS = "elevation_loss"; // Alias for sensor statistics String ALIAS_AVG_HR = "avg_hr"; @@ -75,8 +75,8 @@ public interface TrackPointsColumns extends BaseColumns { + SENSOR_HEARTRATE + " FLOAT, " + SENSOR_CADENCE + " FLOAT, " + SENSOR_POWER + " FLOAT, " - + ELEVATION_GAIN + " FLOAT, " - + ELEVATION_LOSS + " FLOAT, " + + ALTITUDE_GAIN + " FLOAT, " + + ALTITUDE_LOSS + " FLOAT, " + TYPE + " TEXT CHECK(type IN (-2, -1, 0, 1)), " + SENSOR_DISTANCE + " FLOAT, " + "FOREIGN KEY (" + TRACKID + ") REFERENCES " + TracksColumns.TABLE_NAME + "(" + TracksColumns._ID + ") ON UPDATE CASCADE ON DELETE CASCADE" diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java b/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java index 27dcc4e30..a705a0b4c 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java @@ -52,10 +52,10 @@ public interface TracksColumns extends BaseColumns { String AVGSPEED = "avgspeed"; // average speed String AVGMOVINGSPEED = "avgmovingspeed"; // average moving speed String MAXSPEED = "maxspeed"; // maximum speed - String MINELEVATION = "minelevation"; // minimum elevation - String MAXELEVATION = "maxelevation"; // maximum elevation - String ELEVATIONGAIN = "elevationgain"; // elevation gain - String ELEVATIONLOSS = "elevationloss"; // elevation loss + String MIN_ALTITUDE = "minelevation"; // minimum altitude //TODO RENAME column + String MAX_ALTITUDE = "maxelevation"; // maximum altitude //TODO RENAME column + String ALTITUDE_GAIN = "elevationgain"; // altitude gain //TODO RENAME column + String ALTITUDE_LOSS = "elevationloss"; // altitude loss //TODO RENAME column String ICON = "icon"; // track activity type icon String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" @@ -72,12 +72,12 @@ public interface TracksColumns extends BaseColumns { + AVGSPEED + " FLOAT, " + AVGMOVINGSPEED + " FLOAT, " + MAXSPEED + " FLOAT, " - + MINELEVATION + " FLOAT, " - + MAXELEVATION + " FLOAT, " - + ELEVATIONGAIN + " FLOAT, " + + MIN_ALTITUDE + " FLOAT, " + + MAX_ALTITUDE + " FLOAT, " + + ALTITUDE_GAIN + " FLOAT, " + ICON + " TEXT, " + UUID + " BLOB, " - + ELEVATIONLOSS + " FLOAT)"; + + ALTITUDE_LOSS + " FLOAT)"; String CREATE_TABLE_INDEX = "CREATE UNIQUE INDEX " + TABLE_NAME + "_" + UUID + "_index ON " + TABLE_NAME + "(" + UUID + ")"; diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/CachedTrackPointsIndexes.java b/src/main/java/de/dennisguse/opentracks/content/provider/CachedTrackPointsIndexes.java index 999be652e..282421744 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/CachedTrackPointsIndexes.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/CachedTrackPointsIndexes.java @@ -21,8 +21,8 @@ class CachedTrackPointsIndexes { final int sensorCadenceIndex; final int sensorDistanceIndex; final int sensorPowerIndex; - final int elevationGainIndex; - final int elevationLossIndex; + final int altitudeGainIndex; + final int altitudeLossIndex; CachedTrackPointsIndexes(Cursor cursor) { idIndex = cursor.getColumnIndex(TrackPointsColumns._ID); @@ -38,7 +38,7 @@ class CachedTrackPointsIndexes { sensorCadenceIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.SENSOR_CADENCE); sensorDistanceIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.SENSOR_DISTANCE); sensorPowerIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.SENSOR_POWER); - elevationGainIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.ELEVATION_GAIN); - elevationLossIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.ELEVATION_LOSS); + altitudeGainIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.ALTITUDE_GAIN); + altitudeLossIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.ALTITUDE_LOSS); } } diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java index 93984b982..df8bb7c1b 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java @@ -97,10 +97,10 @@ public class ContentProviderUtils { int totalTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALTIME); int movingTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MOVINGTIME); int maxSpeedIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXSPEED); - int minElevationIndex = cursor.getColumnIndexOrThrow(TracksColumns.MINELEVATION); - int maxElevationIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAXELEVATION); - int elevationGainIndex = cursor.getColumnIndexOrThrow(TracksColumns.ELEVATIONGAIN); - int elevationLossIndex = cursor.getColumnIndexOrThrow(TracksColumns.ELEVATIONLOSS); + int minAltitudeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MIN_ALTITUDE); + int maxAltitudeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAX_ALTITUDE); + int altitudeGainIndex = cursor.getColumnIndexOrThrow(TracksColumns.ALTITUDE_GAIN); + int altitudeLossIndex = cursor.getColumnIndexOrThrow(TracksColumns.ALTITUDE_LOSS); int iconIndex = cursor.getColumnIndexOrThrow(TracksColumns.ICON); Track track = new Track(); @@ -138,17 +138,17 @@ public class ContentProviderUtils { if (!cursor.isNull(maxSpeedIndex)) { trackStatistics.setMaxSpeed(cursor.getFloat(maxSpeedIndex)); } - if (!cursor.isNull(minElevationIndex)) { - trackStatistics.setMinElevation(cursor.getFloat(minElevationIndex)); + if (!cursor.isNull(minAltitudeIndex)) { + trackStatistics.setMinAltitude(cursor.getFloat(minAltitudeIndex)); } - if (!cursor.isNull(maxElevationIndex)) { - trackStatistics.setMaxElevation(cursor.getFloat(maxElevationIndex)); + if (!cursor.isNull(maxAltitudeIndex)) { + trackStatistics.setMaxAltitude(cursor.getFloat(maxAltitudeIndex)); } - if (!cursor.isNull(elevationGainIndex)) { - trackStatistics.setTotalElevationGain(cursor.getFloat(elevationGainIndex)); + if (!cursor.isNull(altitudeGainIndex)) { + trackStatistics.setTotalAltitudeGain(cursor.getFloat(altitudeGainIndex)); } - if (!cursor.isNull(elevationLossIndex)) { - trackStatistics.setTotalElevationLoss(cursor.getFloat(elevationLossIndex)); + if (!cursor.isNull(altitudeLossIndex)) { + trackStatistics.setTotalAltitudeLoss(cursor.getFloat(altitudeLossIndex)); } if (!cursor.isNull(iconIndex)) { track.setIcon(cursor.getString(iconIndex)); @@ -284,10 +284,10 @@ public class ContentProviderUtils { values.put(TracksColumns.AVGSPEED, trackStatistics.getAverageSpeed()); values.put(TracksColumns.AVGMOVINGSPEED, trackStatistics.getAverageMovingSpeed()); values.put(TracksColumns.MAXSPEED, trackStatistics.getMaxSpeed()); - values.put(TracksColumns.MINELEVATION, trackStatistics.getMinElevation()); - values.put(TracksColumns.MAXELEVATION, trackStatistics.getMaxElevation()); - values.put(TracksColumns.ELEVATIONGAIN, trackStatistics.getTotalElevationGain()); - values.put(TracksColumns.ELEVATIONLOSS, trackStatistics.getTotalElevationLoss()); + values.put(TracksColumns.MIN_ALTITUDE, trackStatistics.getMinAltitude()); + values.put(TracksColumns.MAX_ALTITUDE, trackStatistics.getMaxAltitude()); + values.put(TracksColumns.ALTITUDE_GAIN, trackStatistics.getTotalAltitudeGain()); + values.put(TracksColumns.ALTITUDE_LOSS, trackStatistics.getTotalAltitudeLoss()); values.put(TracksColumns.ICON, track.getIcon()); return values; @@ -562,11 +562,11 @@ public class ContentProviderUtils { trackPoint.setPower(cursor.getFloat(indexes.sensorPowerIndex)); } - if (!cursor.isNull(indexes.elevationGainIndex)) { - trackPoint.setElevationGain(cursor.getFloat(indexes.elevationGainIndex)); + if (!cursor.isNull(indexes.altitudeGainIndex)) { + trackPoint.setAltitudeGain(cursor.getFloat(indexes.altitudeGainIndex)); } - if (!cursor.isNull(indexes.elevationLossIndex)) { - trackPoint.setElevationLoss(cursor.getFloat(indexes.elevationLossIndex)); + if (!cursor.isNull(indexes.altitudeLossIndex)) { + trackPoint.setAltitudeLoss(cursor.getFloat(indexes.altitudeLossIndex)); } return trackPoint; @@ -713,11 +713,11 @@ public class ContentProviderUtils { values.put(TrackPointsColumns.SENSOR_POWER, trackPoint.getPower()); } - if (trackPoint.hasElevationGain()) { - values.put(TrackPointsColumns.ELEVATION_GAIN, trackPoint.getElevationGain()); + if (trackPoint.hasAltitudeGain()) { + values.put(TrackPointsColumns.ALTITUDE_GAIN, trackPoint.getAltitudeGain()); } - if (trackPoint.hasElevationLoss()) { - values.put(TrackPointsColumns.ELEVATION_LOSS, trackPoint.getElevationLoss()); + if (trackPoint.hasAltitudeLoss()) { + values.put(TrackPointsColumns.ALTITUDE_LOSS, trackPoint.getAltitudeLoss()); } return values; diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java index 5e4254f10..fa219ad65 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java @@ -231,24 +231,24 @@ public class StatisticsRecordedFragment extends Fragment { viewBinding.statsMovingSpeedUnit.setText(parts.second); } - // Set elevation gain and loss + // Set altitude gain and loss { - // Make elevation visible? - boolean showElevation = PreferencesUtils.isShowStatsElevation(sharedPreferences, getContext()); - viewBinding.statsElevationGroup.setVisibility(showElevation ? View.VISIBLE : View.GONE); + // Make altitude visible? + boolean show = PreferencesUtils.isShowStatsAltitude(sharedPreferences, getContext()); + viewBinding.statsAltitudeGroup.setVisibility(show ? View.VISIBLE : View.GONE); - Float elevationGain_m = trackStatistics.getTotalElevationGain(); - Float elevationLoss_m = trackStatistics.getTotalElevationLoss(); + Float altitudeGain_m = trackStatistics.getTotalAltitudeGain(); + Float altitudeLoss_m = trackStatistics.getTotalAltitudeLoss(); Pair parts; - parts = StringUtils.formatElevation(getContext(), elevationGain_m, preferenceMetricUnits); - viewBinding.statsElevationGainValue.setText(parts.first); - viewBinding.statsElevationGainUnit.setText(parts.second); + parts = StringUtils.formatAltitude(getContext(), altitudeGain_m, preferenceMetricUnits); + viewBinding.statsAltitudeGainValue.setText(parts.first); + viewBinding.statsAltitudeGainUnit.setText(parts.second); - parts = StringUtils.formatElevation(getContext(), elevationLoss_m, preferenceMetricUnits); - viewBinding.statsElevationLossValue.setText(parts.first); - viewBinding.statsElevationLossUnit.setText(parts.second); + parts = StringUtils.formatAltitude(getContext(), altitudeLoss_m, preferenceMetricUnits); + viewBinding.statsAltitudeLossValue.setText(parts.first); + viewBinding.statsAltitudeLossUnit.setText(parts.second); } } diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java index 254c1fa8c..f36ad20f5 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java @@ -73,7 +73,7 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi private SharedPreferences sharedPreferences; private boolean preferenceMetricUnits; private boolean preferenceReportSpeed; - private boolean preferenceShowElevation; + private boolean preferenceShowAltitude; private boolean preferenceShowCoordinate; private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = (sharedPreferences, key) -> { @@ -89,9 +89,9 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi preferenceReportSpeed = PreferencesUtils.isReportSpeed(sharedPreferences, getContext(), category); } - if (PreferencesUtils.isKey(getContext(), R.string.stats_show_grade_elevation_key, key)) { + if (PreferencesUtils.isKey(getContext(), R.string.stats_show_grade_altitude_key, key)) { updateUInecessary = true; - preferenceShowElevation = PreferencesUtils.isShowStatsElevation(sharedPreferences, getContext()); + preferenceShowAltitude = PreferencesUtils.isShowStatsAltitude(sharedPreferences, getContext()); } if (PreferencesUtils.isKey(getContext(), R.string.stats_show_coordinate_key, key)) { @@ -303,7 +303,7 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi /** * Tries to fetch most recent {@link SensorDataSet} from {@link de.dennisguse.opentracks.services.TrackRecordingService}. - * Also sets elevation gain and loss. + * Also sets altitude gain and loss. */ private void updateSensorDataUI() { TrackRecordingServiceInterface trackRecordingService = trackRecordingServiceConnection.getServiceIfBound(); @@ -326,44 +326,44 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi sensorsAdapter.swapData(sensorDataList); setSpeedSensorData(sensorDataSet); } - //TODO Check if we can distribute the total elevation gain and loss via trackStatistics instead of doing some computation in the UI layer. - setTotalElevationGain(trackRecordingService.getElevationGain_m()); - setTotalElevationLoss(trackRecordingService.getElevationLoss_m()); + //TODO Check if we can get the total altitude gain and loss via trackStatistics instead of doing some computation in the UI layer. + setTotalAltitudeGain(trackRecordingService.getAltitudeGain_m()); + setTotalAltitudeLoss(trackRecordingService.getAltitudeLoss_m()); } } - // Set elevation gain - private void setTotalElevationGain(Float elevationGain_m) { - Float totalElevationGain = elevationGain_m; + // Set altitude gain + private void setTotalAltitudeGain(Float altitudeGain_m) { + Float totalAltitudeGain = altitudeGain_m; - if (lastTrackStatistics != null && lastTrackStatistics.hasTotalElevationGain()) { - if (elevationGain_m == null) { - totalElevationGain = lastTrackStatistics.getTotalElevationGain(); + if (lastTrackStatistics != null && lastTrackStatistics.hasTotalAltitudeGain()) { + if (altitudeGain_m == null) { + totalAltitudeGain = lastTrackStatistics.getTotalAltitudeGain(); } else { - totalElevationGain += lastTrackStatistics.getTotalElevationGain(); + totalAltitudeGain += lastTrackStatistics.getTotalAltitudeGain(); } } - Pair parts = StringUtils.formatElevation(getContext(), totalElevationGain, preferenceMetricUnits); - viewBinding.statsElevationGainValue.setText(parts.first); - viewBinding.statsElevationGainUnit.setText(parts.second); + Pair parts = StringUtils.formatAltitude(getContext(), totalAltitudeGain, preferenceMetricUnits); + viewBinding.statsAltitudeGainValue.setText(parts.first); + viewBinding.statsAltitudeGainUnit.setText(parts.second); } - // Set elevation loss - private void setTotalElevationLoss(Float elevationLoss_m) { - Float totalElevationLoss = elevationLoss_m; + // Set altitude loss + private void setTotalAltitudeLoss(Float altitudeLoss_m) { + Float totalAltitudeLoss = altitudeLoss_m; - if (lastTrackStatistics != null && lastTrackStatistics.hasTotalElevationLoss()) { - if (elevationLoss_m == null) { - totalElevationLoss = lastTrackStatistics.getTotalElevationLoss(); + if (lastTrackStatistics != null && lastTrackStatistics.hasTotalAltitudeLoss()) { + if (altitudeLoss_m == null) { + totalAltitudeLoss = lastTrackStatistics.getTotalAltitudeLoss(); } else { - totalElevationLoss += lastTrackStatistics.getTotalElevationLoss(); + totalAltitudeLoss += lastTrackStatistics.getTotalAltitudeLoss(); } } - Pair parts = StringUtils.formatElevation(getContext(), totalElevationLoss, preferenceMetricUnits); - viewBinding.statsElevationLossValue.setText(parts.first); - viewBinding.statsElevationLossUnit.setText(parts.second); + Pair parts = StringUtils.formatAltitude(getContext(), totalAltitudeLoss, preferenceMetricUnits); + viewBinding.statsAltitudeLossValue.setText(parts.first); + viewBinding.statsAltitudeLossUnit.setText(parts.second); } private void setSpeedSensorData(SensorDataSet sensorDataSet) { @@ -429,9 +429,9 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi viewBinding.statsMovingSpeedUnit.setText(parts.second); } - // Set elevation gain and loss + // Set altitude gain and loss { - viewBinding.statsElevationGroup.setVisibility(preferenceShowElevation ? View.VISIBLE : View.GONE); + viewBinding.statsAltitudeGroup.setVisibility(preferenceShowAltitude ? View.VISIBLE : View.GONE); } } @@ -452,15 +452,15 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi double speed = lastTrackPoint != null && lastTrackPoint.hasSpeed() ? lastTrackPoint.getSpeed() : Double.NaN; setSpeed(speed); - // Set elevation - viewBinding.statsElevationGroup.setVisibility(preferenceShowElevation ? View.VISIBLE : View.GONE); + // Set altitude + viewBinding.statsAltitudeGroup.setVisibility(preferenceShowAltitude ? View.VISIBLE : View.GONE); - if (preferenceShowElevation) { - // Current elevation + if (preferenceShowAltitude) { + // Current altitude Float altitude = lastTrackPoint != null && lastTrackPoint.hasAltitude() ? (float) lastTrackPoint.getAltitude() : null; - Pair parts = StringUtils.formatElevation(getContext(), altitude, preferenceMetricUnits); - viewBinding.statsElevationCurrentValue.setText(parts.first); - viewBinding.statsElevationCurrentUnit.setText(parts.second); + Pair parts = StringUtils.formatAltitude(getContext(), altitude, preferenceMetricUnits); + viewBinding.statsAltitudeCurrentValue.setText(parts.first); + viewBinding.statsAltitudeCurrentUnit.setText(parts.second); } // Set coordinate diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java index 2b084d1c3..3b60560db 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java @@ -46,7 +46,7 @@ public class GPXTrackExporter implements TrackExporter { private static final String TAG = GPXTrackExporter.class.getSimpleName(); - private static final NumberFormat ELEVATION_FORMAT = NumberFormat.getInstance(Locale.US); + private static final NumberFormat ALTITUDE_FORMAT = NumberFormat.getInstance(Locale.US); private static final NumberFormat COORDINATE_FORMAT = NumberFormat.getInstance(Locale.US); private static final NumberFormat SPEED_FORMAT = NumberFormat.getInstance(Locale.US); private static final NumberFormat DISTANCE_FORMAT = NumberFormat.getInstance(Locale.US); @@ -59,8 +59,8 @@ public class GPXTrackExporter implements TrackExporter { * GPX readers expect to see fractional numbers with US-style punctuation. * That is, they want periods for decimal points, rather than commas. */ - ELEVATION_FORMAT.setMaximumFractionDigits(1); - ELEVATION_FORMAT.setGroupingUsed(false); + ALTITUDE_FORMAT.setMaximumFractionDigits(1); + ALTITUDE_FORMAT.setGroupingUsed(false); COORDINATE_FORMAT.setMaximumFractionDigits(6); COORDINATE_FORMAT.setMaximumIntegerDigits(3); @@ -237,7 +237,7 @@ public class GPXTrackExporter implements TrackExporter { if (printWriter != null) { printWriter.println(""); if (marker.hasAltitude()) { - printWriter.println("" + ELEVATION_FORMAT.format(marker.getAltitude()) + ""); + printWriter.println("" + ALTITUDE_FORMAT.format(marker.getAltitude()) + ""); } printWriter.println(""); printWriter.println("" + StringUtils.formatCData(marker.getName()) + ""); @@ -281,12 +281,12 @@ public class GPXTrackExporter implements TrackExporter { printWriter.println(""); if (trackPoint.hasAltitude()) { - printWriter.println("" + ELEVATION_FORMAT.format(trackPoint.getAltitude()) + ""); + printWriter.println("" + ALTITUDE_FORMAT.format(trackPoint.getAltitude()) + ""); } printWriter.println(""); - if (trackPoint.hasSpeed() || trackPoint.hasHeartRate() || trackPoint.hasCyclingCadence() || trackPoint.hasElevationGain() || trackPoint.hasElevationLoss()) { + if (trackPoint.hasSpeed() || trackPoint.hasHeartRate() || trackPoint.hasCyclingCadence() || trackPoint.hasAltitudeGain() || trackPoint.hasAltitudeLoss()) { printWriter.println(""); if (trackPoint.hasSpeed()) { @@ -305,16 +305,16 @@ public class GPXTrackExporter implements TrackExporter { printWriter.println("" + POWER_FORMAT.format(trackPoint.getPower()) + ""); } - if (trackPoint.hasElevationGain()) { - printWriter.println("" + ELEVATION_FORMAT.format(trackPoint.getElevationGain()) + ""); + if (trackPoint.hasAltitudeGain()) { + printWriter.println("" + ALTITUDE_FORMAT.format(trackPoint.getAltitudeGain()) + ""); } - if (trackPoint.hasElevationLoss()) { - printWriter.println("" + ELEVATION_FORMAT.format(trackPoint.getElevationLoss()) + ""); + if (trackPoint.hasAltitudeLoss()) { + printWriter.println("" + ALTITUDE_FORMAT.format(trackPoint.getAltitudeLoss()) + ""); } if (trackPoint.hasSensorDistance()) { - printWriter.println("" + DISTANCE_FORMAT.format(trackPoint.getElevationLoss()) + ""); + printWriter.println("" + DISTANCE_FORMAT.format(trackPoint.getAltitudeLoss()) + ""); } printWriter.println(""); diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java index 5c8664a7f..4f288d181 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java @@ -61,8 +61,8 @@ public class KMLTrackExporter implements TrackExporter { public static final String EXTENDED_DATA_TYPE_CADENCE = "cadence"; public static final String EXTENDED_DATA_TYPE_HEART_RATE = "heart_rate"; public static final String EXTENDED_DATA_TYPE_POWER = "power"; - public static final String EXTENDED_DATA_TYPE_ELEVATION_GAIN = "elevation_gain"; - public static final String EXTENDED_DATA_TYPE_ELEVATION_LOSS = "elevation_loss"; + public static final String EXTENDED_DATA_TYPE_ALTITUDE_GAIN = "elevation_gain"; + public static final String EXTENDED_DATA_TYPE_ALTITUDE_LOSS = "elevation_loss"; private static final String MARKER_ICON = "http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png"; private static final String TRACK_ICON = "http://earth.google.com/images/kml-icons/track-directional/track-0.png"; @@ -79,8 +79,8 @@ public class KMLTrackExporter implements TrackExporter { private final List powerList = new ArrayList<>(); private final List cadenceList = new ArrayList<>(); private final List heartRateList = new ArrayList<>(); - private final List elevationGainList = new ArrayList<>(); - private final List elevationLossList = new ArrayList<>(); + private final List altitudeGainList = new ArrayList<>(); + private final List altitudeLossList = new ArrayList<>(); @Deprecated // Figure out a better way to do this! (if needed) private TrackPoint startTrackPoint; @@ -344,8 +344,8 @@ public class KMLTrackExporter implements TrackExporter { powerList.clear(); cadenceList.clear(); heartRateList.clear(); - elevationGainList.clear(); - elevationLossList.clear(); + altitudeGainList.clear(); + altitudeLossList.clear(); } } @@ -370,11 +370,11 @@ public class KMLTrackExporter implements TrackExporter { if (heartRateList.stream().anyMatch(Objects::nonNull)) { writeSimpleArrayData(heartRateList, EXTENDED_DATA_TYPE_HEART_RATE); } - if (elevationGainList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(elevationGainList, EXTENDED_DATA_TYPE_ELEVATION_GAIN); + if (altitudeGainList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(altitudeGainList, EXTENDED_DATA_TYPE_ALTITUDE_GAIN); } - if (elevationLossList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(elevationLossList, EXTENDED_DATA_TYPE_ELEVATION_LOSS); + if (altitudeLossList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(altitudeLossList, EXTENDED_DATA_TYPE_ALTITUDE_LOSS); } } printWriter.println(""); @@ -403,8 +403,8 @@ public class KMLTrackExporter implements TrackExporter { cadenceList.add(trackPoint.hasCyclingCadence() ? trackPoint.getCyclingCadence_rpm() : null); powerList.add(trackPoint.hasPower() ? trackPoint.getPower() : null); - elevationGainList.add(trackPoint.hasElevationGain() ? trackPoint.getElevationGain() : null); - elevationLossList.add(trackPoint.hasElevationLoss() ? trackPoint.getElevationLoss() : null); + altitudeGainList.add(trackPoint.hasAltitudeGain() ? trackPoint.getAltitudeGain() : null); + altitudeLossList.add(trackPoint.hasAltitudeLoss() ? trackPoint.getAltitudeLoss() : null); } } } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java index 360d5f8f5..5d8ff6c20 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java @@ -491,16 +491,16 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track if (gain != null) { try { - trackPoint.setElevationGain(Float.parseFloat(gain)); + trackPoint.setAltitudeGain(Float.parseFloat(gain)); } catch (Exception e) { - throw new ParsingException(createErrorMessage(String.format(Locale.US, "Unable to parse elevation gain: %s", gain)), e); + throw new ParsingException(createErrorMessage(String.format(Locale.US, "Unable to parse altitude gain: %s", gain)), e); } } if (loss != null) { try { - trackPoint.setElevationLoss(Float.parseFloat(loss)); + trackPoint.setAltitudeLoss(Float.parseFloat(loss)); } catch (Exception e) { - throw new ParsingException(createErrorMessage(String.format(Locale.US, "Unable to parse elevation loss: %s", loss)), e); + throw new ParsingException(createErrorMessage(String.format(Locale.US, "Unable to parse altitude loss: %s", loss)), e); } } if (distance != null) { diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java index cd1b42e4c..9e5478f9b 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java @@ -42,7 +42,7 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { private static final String TAG_DESCRIPTION = "desc"; private static final String TAG_COMMENT = "cmt"; - private static final String TAG_ELEVATION = "ele"; + private static final String TAG_ALTITUDE = "ele"; private static final String TAG_GPX = "gpx"; private static final String TAG_NAME = "name"; private static final String TAG_TIME = "time"; @@ -135,7 +135,7 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { time = content.trim(); } break; - case TAG_ELEVATION: + case TAG_ALTITUDE: if (content != null) { altitude = content.trim(); } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java index b2786c1f6..7779e720d 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java @@ -70,8 +70,8 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { private final ArrayList cadenceList = new ArrayList<>(); private final ArrayList heartRateList = new ArrayList<>(); private final ArrayList powerList = new ArrayList<>(); - private final ArrayList elevationGainList = new ArrayList<>(); - private final ArrayList elevationLossList = new ArrayList<>(); + private final ArrayList altitudeGainList = new ArrayList<>(); + private final ArrayList altitudeLossList = new ArrayList<>(); public KmlFileTrackImporter(Context context) { this(context, new ContentProviderUtils(context)); @@ -221,8 +221,8 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { heartRateList.clear(); cadenceList.clear(); powerList.clear(); - elevationGainList.clear(); - elevationLossList.clear(); + altitudeGainList.clear(); + altitudeLossList.clear(); } protected void onTrackSegmentEnd() { @@ -246,11 +246,11 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { if (i < powerList.size()) { trackPoint.setPower(powerList.get(i)); } - if (i < elevationGainList.size()) { - trackPoint.setElevationGain(elevationGainList.get(i)); + if (i < altitudeGainList.size()) { + trackPoint.setAltitudeGain(altitudeGainList.get(i)); } - if (i < elevationLossList.size()) { - trackPoint.setElevationLoss(elevationLossList.get(i)); + if (i < altitudeLossList.size()) { + trackPoint.setAltitudeLoss(altitudeLossList.get(i)); } insertTrackPoint(trackPoint); @@ -327,11 +327,11 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { case KMLTrackExporter.EXTENDED_DATA_TYPE_CADENCE: cadenceList.add(value); break; - case KMLTrackExporter.EXTENDED_DATA_TYPE_ELEVATION_GAIN: - elevationGainList.add(value); + case KMLTrackExporter.EXTENDED_DATA_TYPE_ALTITUDE_GAIN: + altitudeGainList.add(value); break; - case KMLTrackExporter.EXTENDED_DATA_TYPE_ELEVATION_LOSS: - elevationLossList.add(value); + case KMLTrackExporter.EXTENDED_DATA_TYPE_ALTITUDE_LOSS: + altitudeLossList.add(value); break; default: Log.w(TAG, "Data from extended data " + extendedDataType + " is not (yet) supported."); diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 144c00f6e..8cc7990bb 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -50,8 +50,8 @@ import de.dennisguse.opentracks.content.sensor.SensorDataSet; import de.dennisguse.opentracks.io.file.exporter.ExportServiceResultReceiver; import de.dennisguse.opentracks.services.handlers.GpsStatusValue; import de.dennisguse.opentracks.services.handlers.HandlerServer; +import de.dennisguse.opentracks.services.sensors.AltitudeSumManager; import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; -import de.dennisguse.opentracks.services.sensors.ElevationSumManager; import de.dennisguse.opentracks.services.tasks.AnnouncementPeriodicTaskFactory; import de.dennisguse.opentracks.services.tasks.PeriodicTaskExecutor; import de.dennisguse.opentracks.settings.SettingsActivity; @@ -109,7 +109,7 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand // The following variables are set when recording: private WakeLock wakeLock; private BluetoothRemoteSensorManager remoteSensorManager; - private ElevationSumManager elevationSumManager; + private AltitudeSumManager altitudeSumManager; private TrackStatisticsUpdater trackStatisticsUpdater; private TrackPoint lastTrackPoint; @@ -159,9 +159,9 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand remoteSensorManager = null; } - if (elevationSumManager != null) { - elevationSumManager.stop(this); - elevationSumManager = null; + if (altitudeSumManager != null) { + altitudeSumManager.stop(this); + altitudeSumManager = null; } // Reverse order from onCreate @@ -340,8 +340,8 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand remoteSensorManager = new BluetoothRemoteSensorManager(this); remoteSensorManager.start(); - elevationSumManager = new ElevationSumManager(); - elevationSumManager.start(this); + altitudeSumManager = new AltitudeSumManager(); + altitudeSumManager.start(this); lastTrackPoint = null; isIdle = false; @@ -434,9 +434,9 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand remoteSensorManager.stop(); remoteSensorManager = null; } - if (elevationSumManager != null) { - elevationSumManager.stop(this); - elevationSumManager = null; + if (altitudeSumManager != null) { + altitudeSumManager.stop(this); + altitudeSumManager = null; } lastTrackPoint = null; @@ -592,10 +592,10 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand */ private void insertTrackPoint(@NonNull Track track, @NonNull TrackPoint trackPoint) { try { - if (elevationSumManager != null) { - trackPoint.setElevationGain(elevationSumManager.getElevationGain_m()); - trackPoint.setElevationLoss(elevationSumManager.getElevationLoss_m()); - elevationSumManager.reset(); + if (altitudeSumManager != null) { + trackPoint.setAltitudeGain(altitudeSumManager.getAltitudeGain_m()); + trackPoint.setAltitudeLoss(altitudeSumManager.getAltitudeLoss_m()); + altitudeSumManager.reset(); } if (remoteSensorManager != null) { fillWithSensorDataSet(trackPoint); @@ -632,25 +632,25 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand } /** - * Returns the relative elevation gain (since last trackpoint). + * Returns the relative altitude gain (since last trackpoint). */ - Float getElevationGain_m() { - if (elevationSumManager == null || !elevationSumManager.isConnected()) { + Float getAltitudeGain_m() { + if (altitudeSumManager == null || !altitudeSumManager.isConnected()) { return null; } - return elevationSumManager.getElevationGain_m(); + return altitudeSumManager.getAltitudeGain_m(); } /** - * Returns the relative elevation loss (since last trackpoint). + * Returns the relative altitude loss (since last trackpoint). */ - Float getElevationLoss_m() { - if (elevationSumManager == null || !elevationSumManager.isConnected()) { + Float getAltitudeLoss_m() { + if (altitudeSumManager == null || !altitudeSumManager.isConnected()) { return null; } - return elevationSumManager.getElevationLoss_m(); + return altitudeSumManager.getAltitudeLoss_m(); } private void showNotification(boolean isGpsStarted) { diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java index 03f977241..40463c8b7 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceBinder.java @@ -98,13 +98,13 @@ class TrackRecordingServiceBinder extends android.os.Binder implements TrackReco } @Override - public Float getElevationGain_m() { - return trackRecordingService.getElevationGain_m(); + public Float getAltitudeGain_m() { + return trackRecordingService.getAltitudeGain_m(); } @Override - public Float getElevationLoss_m() { - return trackRecordingService.getElevationLoss_m(); + public Float getAltitudeLoss_m() { + return trackRecordingService.getAltitudeLoss_m(); } @VisibleForTesting diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceInterface.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceInterface.java index 84b04c477..301e8c875 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceInterface.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceInterface.java @@ -74,18 +74,18 @@ public interface TrackRecordingServiceInterface { SensorDataSet getSensorData(); /** - * Gets the current elevation gain. + * Gets the current altitude gain. * - * @return elevation gain in m or null. + * @return altitude gain in m or null. */ - Float getElevationGain_m(); + Float getAltitudeGain_m(); /** - * Gets the current elevation loss. + * Gets the current altitude loss. * - * @return elevation loss in m or null. + * @return altitude loss in m or null. */ - Float getElevationLoss_m(); + Float getAltitudeLoss_m(); @VisibleForTesting void setRemoteSensorManager(BluetoothRemoteSensorManager remoteSensorManager); diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/ElevationSumManager.java b/src/main/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManager.java similarity index 70% rename from src/main/java/de/dennisguse/opentracks/services/sensors/ElevationSumManager.java rename to src/main/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManager.java index 12ea8ddd5..dc646cfcf 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/ElevationSumManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManager.java @@ -14,11 +14,11 @@ import de.dennisguse.opentracks.util.PressureSensorUtils; import de.dennisguse.opentracks.util.UnitConversions; /** - * Estimates the elevation gain and elevation loss using the device's pressure sensor (i.e., barometer). + * Estimates the altitude gain and altitude loss using the device's pressure sensor (i.e., barometer). */ -public class ElevationSumManager implements SensorEventListener { +public class AltitudeSumManager implements SensorEventListener { - private static final String TAG = ElevationSumManager.class.getSimpleName(); + private static final String TAG = AltitudeSumManager.class.getSimpleName(); private static final int SAMPLING_RATE = 3 * (int) UnitConversions.ONE_SECOND_US; @@ -28,8 +28,8 @@ public class ElevationSumManager implements SensorEventListener { private float lastSeenSensorValue_hPa; - private float elevationGain_m; - private float elevationLoss_m; + private float altitudeGain_m; + private float altitudeLoss_m; public void start(Context context) { SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); @@ -66,19 +66,19 @@ public class ElevationSumManager implements SensorEventListener { } public @Nullable - Float getElevationGain_m() { - return isConnected ? elevationGain_m : null; + Float getAltitudeGain_m() { + return isConnected ? altitudeGain_m : null; } public @Nullable - Float getElevationLoss_m() { - return isConnected ? elevationLoss_m : null; + Float getAltitudeLoss_m() { + return isConnected ? altitudeLoss_m : null; } public void reset() { Log.d(TAG, "Reset"); - elevationGain_m = 0; - elevationLoss_m = 0; + altitudeGain_m = 0; + altitudeLoss_m = 0; } @Override @@ -103,15 +103,15 @@ public class ElevationSumManager implements SensorEventListener { return; } - PressureSensorUtils.ElevationChange elevationChange = PressureSensorUtils.computeChangesWithSmoothing_m(lastAcceptedPressureValue_hPa, lastSeenSensorValue_hPa, value_hPa); - if (elevationChange != null) { - elevationGain_m += elevationChange.getElevationGain_m(); - elevationLoss_m += elevationChange.getElevationLoss_m(); - lastAcceptedPressureValue_hPa = elevationChange.getCurrentSensorValue_hPa(); + PressureSensorUtils.AltitudeChange altitudeChange = PressureSensorUtils.computeChangesWithSmoothing_m(lastAcceptedPressureValue_hPa, lastSeenSensorValue_hPa, value_hPa); + if (altitudeChange != null) { + altitudeGain_m += altitudeChange.getAltitudeGain_m(); + altitudeLoss_m += altitudeChange.getAltitudeLoss_m(); + lastAcceptedPressureValue_hPa = altitudeChange.getCurrentSensorValue_hPa(); } lastSeenSensorValue_hPa = value_hPa; - Log.v(TAG, "elevation gain: " + elevationGain_m + ", elevation loss: " + elevationLoss_m); + Log.v(TAG, "altitude gain: " + altitudeGain_m + ", altitude loss: " + altitudeLoss_m); } } diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java index c7816d3c6..291a4a6c8 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java @@ -32,8 +32,8 @@ import java.time.Instant; //TODO Check that data ranges are valid (not less than zero etc.) public class TrackStatistics { - // The min and max elevation (meters) seen on this track. - private final ExtremityMonitor elevationExtremities = new ExtremityMonitor(); + // The min and max altitude (meters) seen on this track. + private final ExtremityMonitor altitudeExtremities = new ExtremityMonitor(); // The track start time. private Instant startTime; @@ -47,10 +47,8 @@ public class TrackStatistics { private Duration movingTime; // The maximum speed (meters/second) that we believe is valid. private double maxSpeed_mps; - // The total elevation gained (meters). - private Float totalElevationGain_m = null; - // The total elevation lost (meters). - private Float totalElevationLoss_m = null; + private Float totalAltitudeGain_m = null; + private Float totalAltitudeLoss_m = null; public TrackStatistics() { reset(); @@ -68,9 +66,9 @@ public class TrackStatistics { totalTime = other.totalTime; movingTime = other.movingTime; maxSpeed_mps = other.maxSpeed_mps; - elevationExtremities.set(other.elevationExtremities.getMin(), other.elevationExtremities.getMax()); - totalElevationGain_m = other.totalElevationGain_m; - totalElevationLoss_m = other.totalElevationLoss_m; + altitudeExtremities.set(other.altitudeExtremities.getMin(), other.altitudeExtremities.getMax()); + totalAltitudeGain_m = other.totalAltitudeGain_m; + totalAltitudeLoss_m = other.totalAltitudeLoss_m; } /** @@ -95,26 +93,26 @@ public class TrackStatistics { totalTime = totalTime.plus(other.totalTime); movingTime = movingTime.plus(other.movingTime); maxSpeed_mps = Math.max(maxSpeed_mps, other.maxSpeed_mps); - if (other.elevationExtremities.hasData()) { - elevationExtremities.update(other.elevationExtremities.getMin()); - elevationExtremities.update(other.elevationExtremities.getMax()); + if (other.altitudeExtremities.hasData()) { + altitudeExtremities.update(other.altitudeExtremities.getMin()); + altitudeExtremities.update(other.altitudeExtremities.getMax()); } - if (totalElevationGain_m == null) { - if (other.totalElevationGain_m != null) { - totalElevationGain_m = other.totalElevationGain_m; + if (totalAltitudeGain_m == null) { + if (other.totalAltitudeGain_m != null) { + totalAltitudeGain_m = other.totalAltitudeGain_m; } } else { - if (other.totalElevationGain_m != null) { - totalElevationGain_m += other.totalElevationGain_m; + if (other.totalAltitudeGain_m != null) { + totalAltitudeGain_m += other.totalAltitudeGain_m; } } - if (totalElevationLoss_m == null) { - if (other.totalElevationLoss_m != null) { - totalElevationLoss_m = other.totalElevationLoss_m; + if (totalAltitudeLoss_m == null) { + if (other.totalAltitudeLoss_m != null) { + totalAltitudeLoss_m = other.totalAltitudeLoss_m; } } else { - if (other.totalElevationLoss_m != null) { - totalElevationLoss_m += other.totalElevationLoss_m; + if (other.totalAltitudeLoss_m != null) { + totalAltitudeLoss_m += other.totalAltitudeLoss_m; } } } @@ -127,8 +125,8 @@ public class TrackStatistics { setTotalTime(Duration.ofSeconds(0)); setMovingTime(Duration.ofSeconds(0)); setMaxSpeed(0); - setTotalElevationGain(null); - setTotalElevationLoss(null); + setTotalAltitudeGain(null); + setTotalAltitudeLoss(null); } public void reset(Instant startTime) { @@ -224,104 +222,80 @@ public class TrackStatistics { return Math.max(maxSpeed_mps, getAverageMovingSpeed()); } - /** - * Sets the maximum speed. - * - * @param maxSpeed the maximum speed in meters/second - */ - public void setMaxSpeed(double maxSpeed) { - this.maxSpeed_mps = maxSpeed; + public void setMaxSpeed(double maxSpeed_mps) { + this.maxSpeed_mps = maxSpeed_mps; } - public boolean hasElevationMin() { - return !Double.isInfinite(getMinElevation()); + public boolean hasAltitudeMin() { + return !Double.isInfinite(getMinAltitude()); + } + + public double getMinAltitude() { + return altitudeExtremities.getMin(); + } + + public void setMinAltitude(double altitude_m) { + altitudeExtremities.setMin(altitude_m); + } + + public boolean hasAltitudeMax() { + return !Double.isInfinite(getMaxAltitude()); } /** - * Gets the minimum elevation. - * This is calculated from the smoothed elevation, so this can actually be more than the current elevation. + * Gets the maximum altitude. + * This is calculated from the smoothed altitude, so this can actually be less than the current altitude. */ - public double getMinElevation() { - return elevationExtremities.getMin(); + public double getMaxAltitude() { + return altitudeExtremities.getMax(); } - /** - * Sets the minimum elevation. - * - * @param elevation the minimum elevation in meters - */ - public void setMinElevation(double elevation) { - elevationExtremities.setMin(elevation); + public void setMaxAltitude(double altitude_m) { + altitudeExtremities.setMax(altitude_m); } - public boolean hasElevationMax() { - return !Double.isInfinite(getMaxElevation()); + public void updateAltitudeExtremities(double altitude_m) { + altitudeExtremities.update(altitude_m); } - /** - * Gets the maximum elevation. - * This is calculated from the smoothed elevation, so this can actually be less than the current elevation. - */ - public double getMaxElevation() { - return elevationExtremities.getMax(); - } - - /** - * Sets the maximum elevation. - * - * @param elevation_m the maximum elevation in meters - */ - public void setMaxElevation(double elevation_m) { - elevationExtremities.setMax(elevation_m); - } - - /** - * Updates a new elevation. - * - * @param elevation_m the elevation value in meters - */ - public void updateElevationExtremities(double elevation_m) { - elevationExtremities.update(elevation_m); - } - - public boolean hasTotalElevationGain() { - return totalElevationGain_m != null; + public boolean hasTotalAltitudeGain() { + return totalAltitudeGain_m != null; } @Nullable - public Float getTotalElevationGain() { - return totalElevationGain_m; + public Float getTotalAltitudeGain() { + return totalAltitudeGain_m; } - public void setTotalElevationGain(Float totalElevationGain_m) { - this.totalElevationGain_m = totalElevationGain_m; + public void setTotalAltitudeGain(Float totalAltitudeGain_m) { + this.totalAltitudeGain_m = totalAltitudeGain_m; } - public void addTotalElevationGain(float gain_m) { - if (totalElevationGain_m == null) { - totalElevationGain_m = 0f; + public void addTotalAltitudeGain(float gain_m) { + if (totalAltitudeGain_m == null) { + totalAltitudeGain_m = 0f; } - totalElevationGain_m += gain_m; + totalAltitudeGain_m += gain_m; } - public boolean hasTotalElevationLoss() { - return totalElevationLoss_m != null; + public boolean hasTotalAltitudeLoss() { + return totalAltitudeLoss_m != null; } @Nullable - public Float getTotalElevationLoss() { - return totalElevationLoss_m; + public Float getTotalAltitudeLoss() { + return totalAltitudeLoss_m; } - public void setTotalElevationLoss(Float totalElevationLoss_m) { - this.totalElevationLoss_m = totalElevationLoss_m; + public void setTotalAltitudeLoss(Float totalAltitudeLoss_m) { + this.totalAltitudeLoss_m = totalAltitudeLoss_m; } - public void addTotalElevationLoss(float loss_m) { - if (totalElevationLoss_m == null) { - totalElevationLoss_m = 0f; + public void addTotalAltitudeLoss(float loss_m) { + if (totalAltitudeLoss_m == null) { + totalAltitudeLoss_m = 0f; } - totalElevationLoss_m += loss_m; + totalAltitudeLoss_m += loss_m; } @NonNull @@ -330,8 +304,8 @@ public class TrackStatistics { return "TrackStatistics { Start Time: " + getStartTime() + "; Stop Time: " + getStopTime() + "; Total Distance: " + getTotalDistance() + "; Total Time: " + getTotalTime() + "; Moving Time: " + getMovingTime() + "; Max Speed: " + getMaxSpeed() - + "; Min Elevation: " + getMinElevation() + "; Max Elevation: " + getMaxElevation() - + "; Elevation Gain: " + getTotalElevationGain() - + "; Elevation Loss: " + getTotalElevationLoss() + "}"; + + "; Min Altitude: " + getMinAltitude() + "; Max Altitude: " + getMaxAltitude() + + "; Altitude Gain: " + getTotalAltitudeGain() + + "; Altitude Loss: " + getTotalAltitudeLoss() + "}"; } } \ No newline at end of file diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java index 0926a2080..e1a27e842 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java @@ -38,10 +38,10 @@ import de.dennisguse.opentracks.content.provider.TrackPointIterator; public class TrackStatisticsUpdater { /** - * The number of elevation readings to smooth to get a somewhat accurate signal. + * The number of altitude readings to smooth to get a somewhat accurate signal. */ @VisibleForTesting - private static final int ELEVATION_SMOOTHING_FACTOR = 25; + private static final int ALTITUDE_SMOOTHING_FACTOR = 25; /** * The number of speed reading to smooth to get a somewhat accurate signal. @@ -60,13 +60,10 @@ public class TrackStatisticsUpdater { private boolean trackInitialized = false; private boolean segmentInitialized = false; - // The track's statistics private final TrackStatistics trackStatistics; - // A buffer of the recent elevation readings (m) - private final DoubleRingBuffer elevationBuffer_m = new DoubleRingBuffer(ELEVATION_SMOOTHING_FACTOR); - // A buffer of the recent speed readings (m/s) for calculating max speed - private final DoubleRingBuffer speedBuffer_ms = new DoubleRingBuffer(SPEED_SMOOTHING_FACTOR); + private final DoubleRingBuffer altitudeBuffer_m = new DoubleRingBuffer(ALTITUDE_SMOOTHING_FACTOR); + private final DoubleRingBuffer speedBuffer_mps = new DoubleRingBuffer(SPEED_SMOOTHING_FACTOR); // The current segment's statistics private final TrackStatistics currentSegment = new TrackStatistics(); @@ -131,12 +128,12 @@ public class TrackStatisticsUpdater { } // Process sensor data - if (trackPoint.hasElevationGain()) { - currentSegment.addTotalElevationGain(trackPoint.getElevationGain()); + if (trackPoint.hasAltitudeGain()) { + currentSegment.addTotalAltitudeGain(trackPoint.getAltitudeGain()); } - if (trackPoint.hasElevationLoss()) { - currentSegment.addTotalElevationLoss(trackPoint.getElevationLoss()); + if (trackPoint.hasAltitudeLoss()) { + currentSegment.addTotalAltitudeLoss(trackPoint.getAltitudeLoss()); } if (trackPoint.hasSensorDistance()) { @@ -148,9 +145,9 @@ public class TrackStatisticsUpdater { return; } - //Update absolute (GPS-based) elevation + //Update absolute (GPS-based) altitude if (trackPoint.hasAltitude()) { - updateAbsoluteElevation(trackPoint.getAltitude()); + updateAbsoluteAltitude(trackPoint.getAltitude()); } if (lastTrackPoint == null || lastMovingTrackPoint == null) { @@ -163,7 +160,7 @@ public class TrackStatisticsUpdater { // GPS-based distance/speed float movingDistance = lastMovingTrackPoint.distanceToPrevious(trackPoint); if (movingDistance < minGPSDistance && !trackPoint.isMoving()) { - speedBuffer_ms.reset(); + speedBuffer_mps.reset(); lastTrackPoint = trackPoint; return; } @@ -195,8 +192,8 @@ public class TrackStatisticsUpdater { lastTrackPoint = null; lastMovingTrackPoint = null; - elevationBuffer_m.reset(); - speedBuffer_ms.reset(); + altitudeBuffer_m.reset(); + speedBuffer_mps.reset(); } public void addTrackPoint(TrackPointIterator iterator, int minRecordingDistance) { @@ -207,15 +204,15 @@ public class TrackStatisticsUpdater { } /** - * Gets the smoothed elevation over several readings. - * The elevation readings is noisy so the smoothed elevation is better than the raw elevation for many tasks. + * Gets the smoothed altitude over several readings. + * The altitude readings is noisy so the smoothed altitude is better than the raw altitude for many tasks. */ - public double getSmoothedElevation() { - return elevationBuffer_m.getAverage(); + public double getSmoothedAltitude() { + return altitudeBuffer_m.getAverage(); } public double getSmoothedSpeed() { - return speedBuffer_ms.getAverage(); + return speedBuffer_mps.getAverage(); } /** @@ -224,27 +221,24 @@ public class TrackStatisticsUpdater { @VisibleForTesting private void updateSpeed(@NonNull TrackPoint trackPoint, @NonNull TrackPoint lastTrackPoint) { if (!trackPoint.isMoving()) { - speedBuffer_ms.reset(); + speedBuffer_mps.reset(); } else if (isValidSpeed(trackPoint, lastTrackPoint)) { - speedBuffer_ms.setNext(trackPoint.getSpeed()); - if (speedBuffer_ms.getAverage() > currentSegment.getMaxSpeed()) { - currentSegment.setMaxSpeed(speedBuffer_ms.getAverage()); + speedBuffer_mps.setNext(trackPoint.getSpeed()); + if (speedBuffer_mps.getAverage() > currentSegment.getMaxSpeed()) { + currentSegment.setMaxSpeed(speedBuffer_mps.getAverage()); } } else { Log.d(TAG, "Invalid speed. speed: " + trackPoint.getSpeed() + " lastLocationSpeed: " + lastTrackPoint.getSpeed()); } } - /** - * Updates an elevation reading. - */ - private void updateAbsoluteElevation(double elevation) { - // Update elevation using the smoothed average - double oldAverage = elevationBuffer_m.getAverage(); - elevationBuffer_m.setNext(elevation); - double newAverage = elevationBuffer_m.getAverage(); + private void updateAbsoluteAltitude(double altitude) { + // Update altitude using the smoothed average + double oldAverage = altitudeBuffer_m.getAverage(); + altitudeBuffer_m.setNext(altitude); + double newAverage = altitudeBuffer_m.getAverage(); - currentSegment.updateElevationExtremities(newAverage); + currentSegment.updateAltitudeExtremities(newAverage); } private boolean isValidSpeed(@NonNull TrackPoint trackPoint, @NonNull TrackPoint lastTrackPoint) { @@ -266,8 +260,8 @@ public class TrackStatisticsUpdater { } // Only check if the speed buffer is full. Check that the speed is less than 10X the smoothed average and the speed difference doesn't imply 2g acceleration. - if (speedBuffer_ms.isFull()) { - double average = speedBuffer_ms.getAverage(); + if (speedBuffer_mps.isFull()) { + double average = speedBuffer_mps.getAverage(); double diff = Math.abs(average - trackPoint.getSpeed()); return (trackPoint.getSpeed() < average * 10) && (diff < MAX_ACCELERATION * timeDifference.toMillis()); } diff --git a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java index d7ab479fd..2b1893101 100644 --- a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java @@ -165,9 +165,9 @@ public class PreferencesUtils { return getBoolean(sharedPreferences, context, R.string.stats_fullscreen_while_recording_key, DEFAULT); } - public static boolean isShowStatsElevation(SharedPreferences sharedPreferences, Context context) { - final boolean STATS_SHOW_ELEVATION = context.getResources().getBoolean(R.bool.stats_show_elevation_default); - return getBoolean(sharedPreferences, context, R.string.stats_show_grade_elevation_key, STATS_SHOW_ELEVATION); + public static boolean isShowStatsAltitude(SharedPreferences sharedPreferences, Context context) { + final boolean STATS_SHOW_ALTITUDE = context.getResources().getBoolean(R.bool.stats_show_altitude_default); + return getBoolean(sharedPreferences, context, R.string.stats_show_grade_altitude_key, STATS_SHOW_ALTITUDE); } public static boolean isStatsShowCoordinate(SharedPreferences sharedPreferences, Context context) { diff --git a/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java b/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java index be5e95394..74a485cb8 100644 --- a/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java @@ -4,76 +4,76 @@ import android.hardware.SensorManager; public class PressureSensorUtils { - //Everything above is considered a meaningful change in elevation. - private static final float ELEVATION_CHANGE_DIFF_M = 3.0f; + //Everything above is considered a meaningful change in altitude. + private static final float ALTITUDE_CHANGE_DIFF_M = 3.0f; private static final float EXPONENTIAL_SMOOTHING = 0.3f; private PressureSensorUtils() { } - public static class ElevationChange { + public static class AltitudeChange { private final float currentSensorValue_hPa; - private final float elevationChange_m; + private final float altitudeChange_m; - public ElevationChange(float currentSensorValue_hPa, float elevationChange_m) { + public AltitudeChange(float currentSensorValue_hPa, float altitudeChange_m) { this.currentSensorValue_hPa = currentSensorValue_hPa; - this.elevationChange_m = elevationChange_m; + this.altitudeChange_m = altitudeChange_m; } public float getCurrentSensorValue_hPa() { return currentSensorValue_hPa; } - public float getElevationChange_m() { - return elevationChange_m; + public float getAltitudeChange_m() { + return altitudeChange_m; } - public float getElevationGain_m() { - return elevationChange_m > 0 ? elevationChange_m : 0; + public float getAltitudeGain_m() { + return altitudeChange_m > 0 ? altitudeChange_m : 0; } - public float getElevationLoss_m() { - return elevationChange_m < 0 ? -1 * elevationChange_m : 0; + public float getAltitudeLoss_m() { + return altitudeChange_m < 0 ? -1 * altitudeChange_m : 0; } } /** * Applies exponential smoothing to sensor value before computation. */ - public static ElevationChange computeChangesWithSmoothing_m(float lastAcceptedSensorValue_hPa, float lastSeenSensorValue_hPa, float currentSensorValue_hPa) { + public static AltitudeChange computeChangesWithSmoothing_m(float lastAcceptedSensorValue_hPa, float lastSeenSensorValue_hPa, float currentSensorValue_hPa) { float nextSensorValue_hPa = EXPONENTIAL_SMOOTHING * currentSensorValue_hPa + (1 - EXPONENTIAL_SMOOTHING) * lastSeenSensorValue_hPa; return computeChanges_m(lastAcceptedSensorValue_hPa, nextSensorValue_hPa); } /** - * Computes the elevation gain and elevation loss. + * Computes the altitude gain and altitude loss. * - * @return null if no meaningful elevation change occurred. + * @return null if no meaningful altitudeC change occurred. */ - public static ElevationChange computeChanges_m(float lastAcceptedSensorValue_hPa, float currentSensorValue_hPa) { + public static AltitudeChange computeChanges_m(float lastAcceptedSensorValue_hPa, float currentSensorValue_hPa) { float lastSensorValue_m = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, lastAcceptedSensorValue_hPa); float currentSensorValue_m = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, currentSensorValue_hPa); - float elevationChange_m = currentSensorValue_m - lastSensorValue_m; - if (Math.abs(elevationChange_m) < ELEVATION_CHANGE_DIFF_M) { + float altitudeChange_m = currentSensorValue_m - lastSensorValue_m; + if (Math.abs(altitudeChange_m) < ALTITUDE_CHANGE_DIFF_M) { return null; } - // Limit elevation change by ELEVATION_CHANGE_DIFF and computes pressure value accordingly. - ElevationChange elevationChange = new ElevationChange(currentSensorValue_hPa, elevationChange_m); - if (elevationChange.getElevationChange_m() > 0) { - return new ElevationChange(getBarometricPressure(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, lastSensorValue_m + ELEVATION_CHANGE_DIFF_M), ELEVATION_CHANGE_DIFF_M); + // Limit altitudeC change by ALTITUDE_CHANGE_DIFF and computes pressure value accordingly. + AltitudeChange altitudeChange = new AltitudeChange(currentSensorValue_hPa, altitudeChange_m); + if (altitudeChange.getAltitudeChange_m() > 0) { + return new AltitudeChange(getBarometricPressure(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, lastSensorValue_m + ALTITUDE_CHANGE_DIFF_M), ALTITUDE_CHANGE_DIFF_M); } else { - return new ElevationChange(getBarometricPressure(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, lastSensorValue_m - ELEVATION_CHANGE_DIFF_M), -1 * ELEVATION_CHANGE_DIFF_M); + return new AltitudeChange(getBarometricPressure(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, lastSensorValue_m - ALTITUDE_CHANGE_DIFF_M), -1 * ALTITUDE_CHANGE_DIFF_M); } } /* - * Barometeric pressure to elevation estimation; inverts of SensorManager.getAltitude(float, float) + * Barometeric pressure to altitude estimation; inverts of SensorManager.getAltitude(float, float) * https://de.wikipedia.org/wiki/Barometrische_H%C3%B6henformel#Internationale_H%C3%B6henformel * {\color{White} p(h)} = p_0 \cdot \left( 1 - \frac{0{,}0065 \frac{\mathrm K}{\mathrm m} \cdot h}{T_0\ } \right)^{5{,}255} */ diff --git a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java index 661d45568..0ee3c1823 100644 --- a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java @@ -320,21 +320,16 @@ public class StringUtils { } /** - * Sets an elevation_m value. - * - * @param context the context - * @param elevation_m the elevation_m - * @param metricUnits true if metric units - * @return the formatted elevation_m (or null) and it's unit as {@link Pair} + * @return the formatted altitude_m (or null) and it's unit as {@link Pair} */ - public static Pair formatElevation(Context context, Float elevation_m, boolean metricUnits) { + public static Pair formatAltitude(Context context, Float altitude_m, boolean metricUnits) { String value = context.getString(R.string.value_unknown); String unit = context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet); - if (elevation_m != null) { + if (altitude_m != null) { if (!metricUnits) { - elevation_m *= (float) UnitConversions.M_TO_FT; + altitude_m *= (float) UnitConversions.M_TO_FT; } - value = StringUtils.formatDecimal(elevation_m, 0); + value = StringUtils.formatDecimal(altitude_m, 0); } return new Pair<>(value, unit); } diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java index b73ff0421..d5be00242 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java @@ -26,8 +26,8 @@ public class IntervalStatistics { } Interval interval = new Interval(); - interval.gain_m += trackPoints.get(0).hasElevationGain() ? trackPoints.get(0).getElevationGain() : 0; - interval.loss_m += trackPoints.get(0).hasElevationLoss() ? trackPoints.get(0).getElevationLoss() : 0; + interval.gain_m += trackPoints.get(0).hasAltitudeGain() ? trackPoints.get(0).getAltitudeGain() : 0; + interval.loss_m += trackPoints.get(0).hasAltitudeLoss() ? trackPoints.get(0).getAltitudeLoss() : 0; for (int i = 1; i < trackPoints.size(); i++) { TrackPoint prevTrackPoint = trackPoints.get(i - 1); TrackPoint trackPoint = trackPoints.get(i); @@ -35,8 +35,8 @@ public class IntervalStatistics { if (trackPoint.hasLocation() && prevTrackPoint.hasLocation()) { interval.distance_m += prevTrackPoint.distanceToPrevious(trackPoint); interval.time = interval.time.plus(Duration.between(prevTrackPoint.getTime(), trackPoint.getTime())); - interval.gain_m += trackPoint.hasElevationGain() ? trackPoint.getElevationGain() : 0; - interval.loss_m += trackPoint.hasElevationLoss() ? trackPoint.getElevationLoss() : 0; + interval.gain_m += trackPoint.hasAltitudeGain() ? trackPoint.getAltitudeGain() : 0; + interval.loss_m += trackPoint.hasAltitudeLoss() ? trackPoint.getAltitudeLoss() : 0; if (interval.distance_m >= distanceInterval_m) { float adjustFactor = distanceInterval_m / interval.distance_m; diff --git a/src/main/res/layout/interval_list_view.xml b/src/main/res/layout/interval_list_view.xml index d1611f163..6e58ba1c0 100644 --- a/src/main/res/layout/interval_list_view.xml +++ b/src/main/res/layout/interval_list_view.xml @@ -44,9 +44,9 @@ tools:text="Speed" /> + android:text="@string/stats_altitude" /> diff --git a/src/main/res/layout/statistics_recorded.xml b/src/main/res/layout/statistics_recorded.xml index 5ec56c1ab..b1d6eee6d 100644 --- a/src/main/res/layout/statistics_recorded.xml +++ b/src/main/res/layout/statistics_recorded.xml @@ -261,81 +261,81 @@ - + + app:constraint_referenced_ids="stats_altitude_horizontal_line,stats_altitude_gain_label,@+id/stats_altitude_gain_value,@+id/stats_altitude_gain_unit,stats_altitude_loss_label,@+id/stats_altitude_loss_value,@+id/stats_altitude_loss_unit" /> + app:layout_constraintTop_toBottomOf="@id/stats_altitude_horizontal_line" /> + app:layout_constraintTop_toBottomOf="@id/stats_altitude_horizontal_line" /> + app:constraint_referenced_ids="stats_altitude_gain_value,stats_altitude_loss_value" /> + app:layout_constraintTop_toBottomOf="@id/stats_altitude_barrier" /> - + + app:constraint_referenced_ids="stats_altitude_horizontal_line,stats_altitude_current_label,stats_altitude_current_value,stats_altitude_current_unit,stats_altitude_gain_label,stats_altitude_gain_value,stats_altitude_gain_unit,stats_altitude_loss_label,stats_altitude_loss_value,stats_altitude_loss_unit" /> - + + app:layout_constraintTop_toBottomOf="@id/stats_altitude_horizontal_line" /> - + + app:layout_constraintTop_toBottomOf="@id/stats_altitude_horizontal_line" /> - + + app:layout_constraintTop_toBottomOf="@id/stats_altitude_gain_value" /> @@ -364,11 +364,11 @@ + app:constraint_referenced_ids="stats_altitude_current_value,stats_altitude_gain_value,stats_altitude_loss_value" /> + app:layout_constraintTop_toBottomOf="@id/stats_altitude_barrier" /> متوسط سرعة التحرك: %1$.2f كم/ساعة (%2$.1f ميل/ساعة) متوسط السرعة:‏ %1$s‏ دقيقة/كم‏ (%2$s‏ دقيقة/ميل)‏ سرعة متوسطة: %1$.2f كم/ساعة (%2$.1f ميل/ساعة) - الزيادة في الارتفاع: %1$d م (%2$d قدم) - الارتفاع (قدم) - الارتفاع (م) + الزيادة في الارتفاع: %1$d م (%2$d قدم) + الارتفاع (قدم) + الارتفاع (م) أسرع سرعة:‏ %1$s‏ دقيقة/كم‏ (%2$s‏ دقيقة/ميل)‏ الدقة (م) الارتفاع (م) @@ -97,10 +97,10 @@ limitations under the License. خط العرض (درجة) خط الطول (درجة) السرعة (متر/ثانية) - أقصى ارتفاع: %1$d م (%2$d قدم) + أقصى ارتفاع: %1$d م (%2$d قدم) أقصى درجة: %1$d %% أقصى سرعة: %1$.2f كم/ساعة ( %2$.1f ميل/ساعة) - أدنى ارتفاع: %1$d م ( %2$d قدم) + أدنى ارتفاع: %1$d م ( %2$d قدم) أدنى درجة: %1$d %% وقت النقل: %1$s السرعة (دقيقة/ميل) @@ -286,7 +286,7 @@ limitations under the License. متوسط سرعة التحرك متوسط ​​الإيقاع متوسط السرعة - الارتفاع + الارتفاع أسرع إيقاع الاكتساب الدرجة diff --git a/src/main/res/values-b+en+001/strings.xml b/src/main/res/values-b+en+001/strings.xml index ad682b576..9951fc748 100644 --- a/src/main/res/values-b+en+001/strings.xml +++ b/src/main/res/values-b+en+001/strings.xml @@ -71,9 +71,9 @@ Average moving speed: %1$.2f km/h (%2$.1f mi/h) Average pace: %1$s min/km (%2$s min/mi) Average speed: %1$.2f km/h (%2$.1f mi/h) - Elevation gain: %1$d m (%2$d ft) - Elevation (ft) - Elevation (m) + Elevation gain: %1$d m (%2$d ft) + Elevation (ft) + Elevation (m) Fastest pace: %1$s min/km (%2$s min/mi) Accuracy (m) Altitude (m) @@ -81,10 +81,10 @@ Latitude (deg) Longitude (deg) Speed (m/s) - Max elevation: %1$d m (%2$d ft) + Max elevation: %1$d m (%2$d ft) Max grade: %1$d %% Max speed: %1$.2f km/h (%2$.1f mi/h) - Min elevation: %1$d m (%2$d ft) + Min elevation: %1$d m (%2$d ft) Min grade: %1$d %% Moving time: %1$s Pace (min/mi) @@ -247,7 +247,7 @@ Avg. moving speed Avg. pace Avg. speed - Elevation + Elevation Fastest pace Gain Grade diff --git a/src/main/res/values-b+es+419/strings.xml b/src/main/res/values-b+es+419/strings.xml index 2e1725534..5d08db278 100644 --- a/src/main/res/values-b+es+419/strings.xml +++ b/src/main/res/values-b+es+419/strings.xml @@ -71,9 +71,9 @@ Velocidad promedio de movimiento: %1$.2f km/h (%2$.1f mi/h). Velocidad promedio: %1$s min/km (%2$s min/mi) Velocidad promedio: %1$.2f km/h (%2$.1f mi/h). - Altitud: %1$d m (%2$d pies). - Elevación (pies) - Elevación (m) + Altitud: %1$d m (%2$d pies). + Elevación (pies) + Elevación (m) Velocidad más rápida: %1$s min/km (%2$s min/mi) Precisión (m) Altitud (m) @@ -81,10 +81,10 @@ Latitud (grados) Longitud (grados) Velocidad (m/s) - Elevación máx.: %1$d m (%2$d pies). + Elevación máx.: %1$d m (%2$d pies). Pendiente máx.: %1$d %%. Velocidad máx.: %1$.2f km/h (%2$.1f mi/h). - Elevación mín.: %1$d m (%2$d pies). + Elevación mín.: %1$d m (%2$d pies). Pendiente mín.: %1$d %%. Tiempo en movimiento: %1$s. Velocidad (min/mi) @@ -248,7 +248,7 @@ Velocidad de movimiento promedio Ritmo promedio Velocidad promedio - Elevación + Elevación Ritmo más rápido Aumento Pendiente diff --git a/src/main/res/values-bg/strings.xml b/src/main/res/values-bg/strings.xml index c0c9be58e..f6f45ea55 100644 --- a/src/main/res/values-bg/strings.xml +++ b/src/main/res/values-bg/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Средна скорост на движение: %1$.2f км/ч (%2$.1f мили/ч) Средно темпо: %1$s мин/км (%2$s мин/мил) Средна скорост: %1$.2f км/ч (%2$.1f мили/ч) - Денивелация: %1$d м (%2$d фута) - Надморска височина (фт) - Надморска височина (м) + Денивелация: %1$d м (%2$d фута) + Надморска височина (фт) + Надморска височина (м) Най-бързо темпо: %1$s мин/км (%2$s мин/мил) Точност (м) Надморска височина (м) @@ -97,10 +97,10 @@ limitations under the License. Географска ширина (градуси) Географска дължина (градуси) Скорост (м/сек) - Максимално изкачване: %1$d м (%2$d фута) + Максимално изкачване: %1$d м (%2$d фута) Максимален наклон: %1$d %% Максимална скорост: %1$.2f км/ч (%2$.1f мили/ч) - Минимално изкачване: %1$d м (%2$d фута) + Минимално изкачване: %1$d м (%2$d фута) Минимален наклон: %1$d %% Време на движение: %1$s Темпо (мин/мил) @@ -288,7 +288,7 @@ limitations under the License. Средна скорост на движение Средно темпо Средна скорост - Надморска височина + Надморска височина Най-бързо темпо Увеличаване Наклон diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml index a031edc73..48b9a2b0f 100644 --- a/src/main/res/values-ca/strings.xml +++ b/src/main/res/values-ca/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Velocitat mitjana en moviment: %1$.2f km/h (%2$.1f mi/h) Ritme mitjà: %1$s min/km (%2$s min/mi) Velocitat mitjana: %1$.2f km/h (%2$.1f mi/h) - Desnivell: %1$d m (%2$d peus) - Altitud (peus) - Altitud (metres) + Desnivell: %1$d m (%2$d peus) + Altitud (peus) + Altitud (metres) Ritme màxim: %1$s min/km (%2$s min/mi) Precisió (m) Altitud (m) @@ -97,10 +97,10 @@ limitations under the License. Latitud (graus) Longitud (graus) Velocitat (m/s) - Elevació màxima: %1$d m (%2$d peus) + Elevació màxima: %1$d m (%2$d peus) Grau màxim: %1$d %% Velocitat màxima: %1$.2f km/h (%2$.1f mi/h) - Elevació mínima: %1$d m (%2$d peus) + Elevació mínima: %1$d m (%2$d peus) Grau mínim: %1$d %% Temps en moviment: %1$s Ritme (min/mi) @@ -288,7 +288,7 @@ es vegi el cel. Torneu-ho a provar més tard. Velocitat de moviment mitjana Ritme mitjà Velocitat mitjana - Altitud + Altitud Ritme més ràpid Augment Desnivell diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml index 052b68e62..57fbf9381 100644 --- a/src/main/res/values-cs/strings.xml +++ b/src/main/res/values-cs/strings.xml @@ -136,9 +136,9 @@ Pokud zařízení GPS hlásí nepřesná data (např. Polohu, rychlost, nadmořs Průměrná rychlost přesunu: %1$.2f km/h (%2$.1f mil/h) Průměrné tempo: %1$s min/km (%2$s min/míli) Průměrná rychlost: %1$.2f km/h (%2$.1f mil/h) - Převýšení: %1$d m (%2$d stop) - Nadmořská výška (stopy) - Nadmořská výška (m) + Převýšení: %1$d m (%2$d stop) + Nadmořská výška (stopy) + Nadmořská výška (m) Nejvyšší tempo: %1$s min/km (%2$s min/míli) Přesnost (m) Nadmořská výška (m) @@ -146,10 +146,10 @@ Pokud zařízení GPS hlásí nepřesná data (např. Polohu, rychlost, nadmořs Zeměpisná šířka (stupně) Zeměpisná délka (stupně) Rychlost (m/s) - Maximální výška: %1$d m (%2$d stop) + Maximální výška: %1$d m (%2$d stop) Maximální stoupání: %1$d %% Maximální rychlost: %1$.2f km/h (%2$.1f mil/h) - Minimální výška: %1$d m (%2$d stop) + Minimální výška: %1$d m (%2$d stop) Minimální stoupání: %1$d %% Doba přesunu: %1$s Tempo (min/míli) @@ -355,7 +355,7 @@ Pokud zařízení GPS hlásí nepřesná data (např. Polohu, rychlost, nadmořs Průměrná rychlost pohybu Průměrné tempo Průměrná rychlost - Nadmořská výška + Nadmořská výška Nejvyšší tempo Nárůst Sklon @@ -574,7 +574,7 @@ Pokud zařízení GPS hlásí nepřesná data (např. Polohu, rychlost, nadmořs Přeskočit elektroskůtr Otevřít pomocí OpenTracks-Dashboard - Převýšení: %1$d m (%2$d ft) + Převýšení: %1$d m (%2$d ft) Export po ukončení aktivity selhal, zkontrolujte prosím adresář pro export. Ztráta Trasa %1$s již existuje v cílovém adresáři. diff --git a/src/main/res/values-da/strings.xml b/src/main/res/values-da/strings.xml index 334bb90ff..0f64b9ecf 100644 --- a/src/main/res/values-da/strings.xml +++ b/src/main/res/values-da/strings.xml @@ -140,9 +140,9 @@ Hvis GPS-enheden rapporterer unøjagtige data (f.eks. Placering, hastighed, høj Gennemsnitlig bevægelseshastighed: %1$.2f km/t (%2$.1f mil/t) Gennemsnitstempo: %1$s min./km (%2$s min./mil) Gennemsnitlig hastighed: %1$.2f km/t (%2$.1f mil/t) - Stigning: %1$d m (%2$d fod) - Højde (ft) - Højde (m) + Stigning: %1$d m (%2$d fod) + Højde (ft) + Højde (m) Højeste tempo: %1$s min./km (%2$s min./mil) Nøjagtighed (m) Højde (m) @@ -150,10 +150,10 @@ Hvis GPS-enheden rapporterer unøjagtige data (f.eks. Placering, hastighed, høj Breddegrad (grader) Længdegrad (grader) Hastighed (m/s) - Maks. højde: %1$d m (%2$d fod) + Maks. højde: %1$d m (%2$d fod) Maks. hældning: %1$d %% Maks. hastighed: %1$.2f km/t (%2$.1f mil/t) - Min. højde: %1$d m (%2$d fod) + Min. højde: %1$d m (%2$d fod) Min. hældning: %1$d %% Bevægelseshastighed: %1$s Tempo (min./mil) @@ -361,7 +361,7 @@ Hvis GPS-enheden rapporterer unøjagtige data (f.eks. Placering, hastighed, høj Gns. bevægelseshastighed Gns. tempo Gns. hastighed - Højde + Højde Hurtigste tempo Stigning Hældning @@ -557,7 +557,7 @@ Hvis GPS-enheden rapporterer unøjagtige data (f.eks. Placering, hastighed, høj Sidste spor eksporteret / Springe - Højdetab: %1$d m (%2$d ft) + Højdetab: %1$d m (%2$d ft) Eksport efter træning mislykkedes. Kontroller eksportmappen. Sporet %1$s findes allerede i destinationsmappen. gør det for alle konflikter diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index acfc3fdcc..67937d5a5 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -145,9 +145,9 @@ g) das tun, was Deiner Meinung nach OpenTracks hilft. Durchschnittliche Geschwindigkeit in Bewegung: %1$.2f km/h (%2$.1f Meile/h) Durchschnittliches Tempo: %1$s min/km (%2$s min/Meile) Durchschnittliche Geschwindigkeit: %1$.2f km/h (%2$.1f Meile/h) - Höhenunterschied: %1$d m (%2$d Fuß) - Höhe (ft) - Höhe (m) + Höhenunterschied: %1$d m (%2$d Fuß) + Höhe (ft) + Höhe (m) Schnellstes Tempo: %1$s min/km (%2$s min/Meile) Genauigkeit (m) Höhe (m) @@ -155,10 +155,10 @@ g) das tun, was Deiner Meinung nach OpenTracks hilft. Breitengrad (°) Längengrad (°) Geschwindigkeit (m/s) - Maximale Höhe: %1$d m (%2$d Fuß) + Maximale Höhe: %1$d m (%2$d Fuß) Maximales Gefälle: %1$d %% Maximale Geschwindigkeit: %1$.2f km/h (%2$.1f Meile/h) - Minimale Höhe: %1$d m (%2$d Fuß) + Minimale Höhe: %1$d m (%2$d Fuß) Minimales Gefälle: %1$d %% Zeit in Bewegung: %1$s Tempo (min/Meile) @@ -364,7 +364,7 @@ g) das tun, was Deiner Meinung nach OpenTracks hilft. \n(Bewegung) Durchschnitt Durchschnitt - Höhe + Höhe Schnellstes Tempo Anstieg Gefälle @@ -570,7 +570,7 @@ g) das tun, was Deiner Meinung nach OpenTracks hilft. %1$s: %2$s Datei %1$s wurde importiert Halten für Pause - Höhenverlust: %1$d m (%2$d ft) + Höhenverlust: %1$d m (%2$d ft) Der Datenexport im Anschluss an die Übung ist fehlgeschlagen. Bitte prüfe den Exportordner. Vollbild Intervalle diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml index a32deebe4..d6f8aa5f7 100644 --- a/src/main/res/values-el/strings.xml +++ b/src/main/res/values-el/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Μέση ταχύτητα κίνησης: %1$.2f χλμ/ώρα (%2$.1f μίλια/ώρα) Μέσος ρυθμός: %1$s λεπτά/χλμ (%2$s λεπτά/μίλι) Μέση ταχύτητα: %1$.2f χλμ/ώρα (%2$.1f μίλια/ώρα) - Υψομετρικό κέρδος: %1$d μέτρα (%2$d πόδια) - Υψόμετρο (πόδια) - Υψόμετρο (μέτρα) + Υψομετρικό κέρδος: %1$d μέτρα (%2$d πόδια) + Υψόμετρο (πόδια) + Υψόμετρο (μέτρα) Ταχύτερος ρυθμός: %1$s λεπτά/χλμ (%2$s λεπτά/μίλι) Ακρίβεια (μέτρα) Υψόμετρο (μέτρα) @@ -97,10 +97,10 @@ limitations under the License. Γεωγραφικό πλάτος (μοίρες) Γεωγραφικό μήκος (μοίρες) Ταχύτητα (μέτρα/δευτ) - Μέγιστη ανύψωση: %1$d μέτρα (%2$d πόδια) + Μέγιστη ανύψωση: %1$d μέτρα (%2$d πόδια) Μέγ. βαθμός: %1$d %% Μέγιστη ταχύτητα: %1$.2f χλμ/ώρα (%2$.1f μίλια/ώρα) - Ελάχιστη ανύψωση: %1$d μέτρα (%2$d πόδια) + Ελάχιστη ανύψωση: %1$d μέτρα (%2$d πόδια) Ελάχ. βαθμός: %1$d %% Χρόνος μεταφοράς: %1$s Ρυθμός (λεπτά/μίλι) @@ -287,7 +287,7 @@ limitations under the License. Μέση ταχύτητα κίνησης Μέσος ρυθμός Μέση ταχύτητα - Υψόμετρο + Υψόμετρο Ταχύτερος ρυθμός Αύξηση Κλίση diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index 54eab6516..b78a7e65e 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -136,9 +136,9 @@ Si el dispositivo GPS reporta datos inexactos (por ejemplo, ubicación, velocida Velocidad de movimiento media: %1$.2f km/h (%2$.1f mi/h) Ritmo medio: %1$s min/km (%2$s min/mi) Velocidad media: %1$.2f km/h (%2$.1f mi/h) - Aumento de elevación: %1$d m (%2$d ft) - Elevación (pies) - Elevación (m) + Aumento de elevación: %1$d m (%2$d ft) + Elevación (pies) + Elevación (m) Ritmo máximo: %1$s min/km (%2$s min/mi) Precisión (m) Altitud (m) @@ -146,10 +146,10 @@ Si el dispositivo GPS reporta datos inexactos (por ejemplo, ubicación, velocida Latitud (grados) Longitud (grados) Velocidad (m/s) - Elevación máxima: %1$d m (%2$d ft) + Elevación máxima: %1$d m (%2$d ft) Pendiente máxima: %1$d %% Velocidad máxima: %1$.2f km/h (%2$.1f mi/h) - Elevación mínima: %1$d m (%2$d ft) + Elevación mínima: %1$d m (%2$d ft) Pendiente mínima: %1$d %% Tiempo de movimiento: %1$s Ritmo (min/mi) @@ -356,7 +356,7 @@ Si el dispositivo GPS reporta datos inexactos (por ejemplo, ubicación, velocida Velocidad de movimiento media Ritmo medio Velocidad media - Elevación + Elevación Ritmo máximo Ganancia Pendiente @@ -594,7 +594,7 @@ Si el dispositivo GPS reporta datos inexactos (por ejemplo, ubicación, velocida Hilo interrumpido Errores Archivos importados - Pérdida de altura: %1$d m (%2$d pies) + Pérdida de altura: %1$d m (%2$d pies) %1$.2f mph %1$d:%2$02d min/km %1$d:%2$02d min/mi diff --git a/src/main/res/values-et/strings.xml b/src/main/res/values-et/strings.xml index 4eb4d7d68..757a176c3 100644 --- a/src/main/res/values-et/strings.xml +++ b/src/main/res/values-et/strings.xml @@ -136,9 +136,9 @@ Kui GPS-seade teatab ebatäpsetest andmetest (nt asukoht, kiirus, kõrgus), ei s Keskmine liikumiskiirus: %1$.2f km/h (%2$.1f mi/h) Keskmine kiirus: %1$s min/km (%2$s min/mi) Keskmine kiirus: %1$.2f km/h (%2$.1f mi/h) - Saavutatud kõrgus: %1$d m ( %2$d jalga) - Kõrgus (jalga) - Kõrgus (m) + Saavutatud kõrgus: %1$d m ( %2$d jalga) + Kõrgus (jalga) + Kõrgus (m) Kõrgeim tempo: %1$s min/km (%2$s min/mi) Täpsus (m) Kõrgus (m) @@ -146,10 +146,10 @@ Kui GPS-seade teatab ebatäpsetest andmetest (nt asukoht, kiirus, kõrgus), ei s Laiuskraad (kraadides) Pikkuskraad (kraadides) Kiirus (m/s) - Max kõrgus: %1$d m (%2$d jalga) + Max kõrgus: %1$d m (%2$d jalga) Max kalle: %1$d %% Max kiirus: %1$.2f km/h (%2$.1f mi/h) - Min kõrgus: %1$d m ( %2$d jalga) + Min kõrgus: %1$d m ( %2$d jalga) Min kalle: %1$d %% Liikumisaeg: %1$s Tempo (min/mi) @@ -355,7 +355,7 @@ Kui GPS-seade teatab ebatäpsetest andmetest (nt asukoht, kiirus, kõrgus), ei s Keskmine liikumiskiirus Keskmine tempo Keskmine kiirus - Kõrgus + Kõrgus Kiireim tempo Saavutatud Kalle @@ -541,7 +541,7 @@ Kui GPS-seade teatab ebatäpsetest andmetest (nt asukoht, kiirus, kõrgus), ei s eskuuter Avatud kui GPX Avatud kui KMZ - Kõrguse kadu: %1$d m (%2$d ft) + Kõrguse kadu: %1$d m (%2$d ft) tehke seda kõigi konfliktide jaoks Treeningujärgne eksport nurjus, palun kontrolli ekspordikataloogi. Teema katkestatud diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml index 5b7d4426d..c1bc90c2c 100644 --- a/src/main/res/values-eu/strings.xml +++ b/src/main/res/values-eu/strings.xml @@ -137,9 +137,9 @@ GPS gailuak datu okerrak salatzen baditu (adibidez, kokapena, abiadura, kota), O Batez besteko abiadura, abian: %1$.2f km/h (%2$.1f mi/h) Batez besteko abiadura: %1$s min/km (%2$s min/mi) Batez besteko abiadura: %1$.2f km/h (%2$.1f mi/h) - Desnibela: %1$d m (%2$d oin) - Altitudea (oinak) - Altitudea (m) + Desnibela: %1$d m (%2$d oin) + Altitudea (oinak) + Altitudea (m) Abiadura bizkorrena: %1$s min/km (%2$s min/mi) Zehaztasuna (m) Altitudea (m) @@ -147,10 +147,10 @@ GPS gailuak datu okerrak salatzen baditu (adibidez, kokapena, abiadura, kota), O Latitudea (graduak) Longitudea (graduak) Abiadura (m/s) - Gehienezko altitudea: %1$d m (%2$d oin) + Gehienezko altitudea: %1$d m (%2$d oin) Gehienezko malda: %1$d %% Gehienezko abiadura: %1$.2f km/h (%2$.1f mi/h) - Gutxieneko altitudea: %1$d m (%2$d oin) + Gutxieneko altitudea: %1$d m (%2$d oin) Gutxieneko malda: %1$d %% Abian emandako tartea: %1$s Abiadura (min/mi) @@ -356,7 +356,7 @@ GPS gailuak datu okerrak salatzen baditu (adibidez, kokapena, abiadura, kota), O Batez besteko abiadura, mugitzerakoan Batez besteko pausoa Batez besteko abiadura - Altitudea + Altitudea Pauso-erritmorik bizkorrena Igoera Inklinazioa @@ -553,7 +553,7 @@ GPS gailuak datu okerrak salatzen baditu (adibidez, kokapena, abiadura, kota), O Ez dira edozein tarte oraindik Grabatu zure lehen pista ikusteko batzen estatistikak Ireki gisa GPX - Kota galera: %1$d m (%2$d ft) + Kota galera: %1$d m (%2$d ft) Post-entrenamendu esportazio huts egin du, mesedez, egiaztatu esportazio direktorioa. Pista berriak esportatutako Ibilbideak gainidatzi diff --git a/src/main/res/values-fa/strings.xml b/src/main/res/values-fa/strings.xml index fc19005ea..dd174e8f7 100644 --- a/src/main/res/values-fa/strings.xml +++ b/src/main/res/values-fa/strings.xml @@ -87,9 +87,9 @@ limitations under the License. سرعت متوسط حرکت: %1$.2f کیلومتر در ساعت (%2$.1f مایل در ساعت) سرعت متوسط: %1$s دقیقه در کیلومتر (%2$s دقیقه در مایل) سرعت متوسط: %1$.2f کیلومتر در ساعت (%2$.1f مایل در ساعت) - افزایش ارتفاع: %1$d متر (%2$d فوت) - ارتفاع (فوت) - ارتفاع (متر) + افزایش ارتفاع: %1$d متر (%2$d فوت) + ارتفاع (فوت) + ارتفاع (متر) بیشترین سرعت: %1$s دقیقه در کیلومتر (%2$s دقیقه در مایل) دقت (متر) ارتفاع (متر) @@ -97,10 +97,10 @@ limitations under the License. عرض جغرافیایی (درجه) طول جغرافیایی (درجه) سرعت (متر بر ثانیه) - حداکثر ارتفاع: %1$d متر (%2$d فوت) + حداکثر ارتفاع: %1$d متر (%2$d فوت) حداکثر درجه: %% %1$d حداکثر سرعت: %1$.2f کیلومتر در ساعت (%2$.1f مایل در ساعت) - حداقل ارتفاع: %1$d متر (%2$d فوت) + حداقل ارتفاع: %1$d متر (%2$d فوت) حداقل درجه: %% %1$d زمان حرکت: %1$s سرعت (دقیقه در مایل) @@ -286,7 +286,7 @@ limitations under the License. میانگین سرعت حرکت سرعت متوسط سرعت متوسط - ارتفاع + ارتفاع سریع‌ترین تندی افزایش درجه diff --git a/src/main/res/values-fi/strings.xml b/src/main/res/values-fi/strings.xml index 8c50fdfb3..01cf7e960 100644 --- a/src/main/res/values-fi/strings.xml +++ b/src/main/res/values-fi/strings.xml @@ -140,9 +140,9 @@ limitations under the License. Keskimääräinen liikkumisnopeus: %1$.2f km/h (%2$.1f mailia/h) Keskimääräinen vauhti: %1$s min/km (%2$s min/maili) Keskinopeus: %1$.2f km/h (%2$.1f mailia/h) - Saavutettu korkeus: %1$d m (%2$d jalkaa) - Korkeus (jalkaa) - Korkeus (m) + Saavutettu korkeus: %1$d m (%2$d jalkaa) + Korkeus (jalkaa) + Korkeus (m) Nopein vauhti: %1$s min/km (%2$s min/maili) Tarkkuus (m) Korkeus (m) @@ -150,10 +150,10 @@ limitations under the License. Leveysaste (astetta) Pituusaste (astetta) Nopeus (m/s) - Enimmäiskorkeus: %1$d m (%2$d jalkaa) + Enimmäiskorkeus: %1$d m (%2$d jalkaa) Enimmäiskorkeustaso: %1$d %% Enimmäisnopeus: %1$.2f km/h (%2$.1f mailia/h) - Vähimmäiskorkeus: %1$d m (%2$d jalkaa) + Vähimmäiskorkeus: %1$d m (%2$d jalkaa) Vähimmäiskorkeustaso: %1$d %% Liikkumisaika: %1$s Vauhti (min/mi) @@ -363,7 +363,7 @@ jotta ne voidaan tuoda kohteeseen %1$s. Keskim. liikkumisnopeus Keskim. vauhti Keskinopeus - Korkeus + Korkeus Nopein vauhti Kaltevuus Korkeustaso @@ -601,7 +601,7 @@ jotta ne voidaan tuoda kohteeseen %1$s. GPS pois käytöstä Täydellinen Avg Teho - Korkeussijaintitappio: %1$d m (%2$d ft) + Korkeussijaintitappio: %1$d m (%2$d ft) Maksimisyke Avg syke %1$.2f k/t diff --git a/src/main/res/values-fr-rCA/strings.xml b/src/main/res/values-fr-rCA/strings.xml index b7c2aa4c6..9ee08e463 100644 --- a/src/main/res/values-fr-rCA/strings.xml +++ b/src/main/res/values-fr-rCA/strings.xml @@ -71,9 +71,9 @@ Vitesse moyenne : %1$.2f km/h (%2$.1f mi/h) Allure moyenne : %1$s min/km (%2$s min/mi) Vitesse moyenne : %1$.2f km/h (%2$.1f mi/h) - Dénivelé : %1$d m (%2$d pi) - Altitude (pi) - Altitude (m) + Dénivelé : %1$d m (%2$d pi) + Altitude (pi) + Altitude (m) Allure maximale : %1$s min/km (%2$s min/mi) Précision (mètres) Altitude (mètres) @@ -81,10 +81,10 @@ Latitude (degrés) Longitude (degrés) Vitesse (m/s) - Élévation max. : %1$d m (%2$d pi) + Élévation max. : %1$d m (%2$d pi) Inclinaison max. : %1$d %% Vitesse max. : %1$.2f km/h (%2$.1f mi/h) - Élévation min. : %1$d m (%2$d pi) + Élévation min. : %1$d m (%2$d pi) Inclinaison min. : %1$d %% Durée du déplacement : %1$s Allure (min/mi) @@ -246,7 +246,7 @@ Vitesse moyenne de déplacement Cadence moyenne Vitesse moyenne - Élévation + Élévation Allure la plus rapide Gain Inclinaison diff --git a/src/main/res/values-fr-rCH/strings.xml b/src/main/res/values-fr-rCH/strings.xml index 2a6d6b8f7..cfa0434bf 100644 --- a/src/main/res/values-fr-rCH/strings.xml +++ b/src/main/res/values-fr-rCH/strings.xml @@ -71,9 +71,9 @@ Vitesse moyenne de déplacement : %1$.2f km/h (%2$.1f mi/h) Vitesse moyenne : %1$s min/km (%2$s min/mi) Vitesse moyenne : %1$.2f km/h (%2$.1f mi/h) - Dénivelé : %1$d m (%2$d pi) - Altitude (pi) - Altitude (m) + Dénivelé : %1$d m (%2$d pi) + Altitude (pi) + Altitude (m) Vitesse maximale : %1$s min/km (%2$s min/mi) Précision (m) Altitude (m) @@ -81,10 +81,10 @@ Latitude (degrés) Longitude (degrés) Vitesse (m/s) - Élévation max. : %1$d m (%2$d pi) + Élévation max. : %1$d m (%2$d pi) Inclinaison max. : %1$d %% Vitesse max. : %1$.2f km/h (%2$.1f mi/h) - Élévation min. : %1$d m (%2$d pi) + Élévation min. : %1$d m (%2$d pi) Inclinaison min. : %1$d %% Durée du déplacement : %1$s Vitesse (min/mi) @@ -247,7 +247,7 @@ Vitesse moyenne de déplacement Allure moyenne Vitesse moyenne - Altitude + Altitude Allure la plus rapide Gain Inclinaison diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index de10fefca..908d8fb3d 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -161,9 +161,9 @@ g) faire tout ce qui vous semble utile à OpenTracks. Vitesse moyenne de déplacement : %1$.2f km/h (%2$.1f mi/h) Vitesse moyenne : %1$s min/km (%2$s min/mi) Vitesse moyenne : %1$.2f km/h (%2$.1f mi/h) - Dénivelé : %1$d m (%2$d pi) - Altitude (pi) - Altitude (m) + Dénivelé : %1$d m (%2$d pi) + Altitude (pi) + Altitude (m) Vitesse maximale : %1$s min/km (%2$s min/mi) Précision (m) Altitude (m) @@ -171,10 +171,10 @@ g) faire tout ce qui vous semble utile à OpenTracks. Latitude (degrés) Longitude (degrés) Vitesse (m/s) - Élévation max. : %1$d m (%2$d pi) + Élévation max. : %1$d m (%2$d pi) Inclinaison max. : %1$d %% Vitesse max. : %1$.2f km/h (%2$.1f mi/h) - Élévation min. : %1$d m (%2$d pi) + Élévation min. : %1$d m (%2$d pi) Inclinaison min. : %1$d %% Durée du déplacement : %1$s Vitesse (min/mi) @@ -381,7 +381,7 @@ g) faire tout ce qui vous semble utile à OpenTracks. Vitesse moyenne de déplacement Allure moyenne Vitesse moyenne - Altitude + Altitude Allure la plus rapide Gain Inclinaison diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml index 3c77dbd6f..e7f7999b5 100644 --- a/src/main/res/values-gl/strings.xml +++ b/src/main/res/values-gl/strings.xml @@ -146,9 +146,9 @@ Se te detés ou estás en interiores, non se gardarán datos do sensor (mais ser Velocidade de desprazamento media: %1$.2f km/h (%2$.1f mi/h) Ritmo medio: %1$s min/km (%2$s min/mi) Velocidade media: %1$.2f km/h (%2$.1f min/mi) - Desnivel: %1$d m (%2$d pés) - Elevación (pés) - Elevación (m) + Desnivel: %1$d m (%2$d pés) + Elevación (pés) + Elevación (m) Ritmo máis rápido: %1$s min/km (%2$s min/mi) Precisión (m) Altitude (m) @@ -156,10 +156,10 @@ Se te detés ou estás en interiores, non se gardarán datos do sensor (mais ser Latitude (graos) Lonxitude (graos) Velocidade (m/s) - Elevación máxima: %1$d m (%2$d pés) + Elevación máxima: %1$d m (%2$d pés) Grao máximo: %1$d %% Velocidade máxima: %1$.2f km/h (%2$.1f mi/h) - Elevación mínima: %1$d m (%2$d pés) + Elevación mínima: %1$d m (%2$d pés) Grao mínimo: %1$d %% Tempo de desprazamento: %1$s Ritmo (min/mi) @@ -371,7 +371,7 @@ Se te detés ou estás en interiores, non se gardarán datos do sensor (mais ser Velocidade de desprazamento media Ritmo medio Velocidade media - Elevación + Elevación Ritmo máis rápido Desnivel Pendente @@ -595,7 +595,7 @@ Se te detés ou estás en interiores, non se gardarán datos do sensor (mais ser Perda %1$.2f km/h %1$.2f mph - Perda de altitude: %1$d m (%2$d ft) + Perda de altitude: %1$d m (%2$d ft) Fallou a exportación, comproba o directorio de exportación. %1$d:%2$02d min/mi %1$d:%2$02d min/km diff --git a/src/main/res/values-hi/strings.xml b/src/main/res/values-hi/strings.xml index 8d2260921..cc906b4fe 100644 --- a/src/main/res/values-hi/strings.xml +++ b/src/main/res/values-hi/strings.xml @@ -87,9 +87,9 @@ limitations under the License. चलने की औसत गति: %1$.2f किमी/घं ( %2$.1f मील/घं) औसत गति: %1$s मिनट/किमी ( %2$s मिनट/मील) औसत गति: %1$.2f किमी/घं (%2$.1f मील/घं) - हासिल की गई ऊंचाई: %1$d मी (%2$d फु) - ऊंचाई (फुट) - ऊंचाई (मी) + हासिल की गई ऊंचाई: %1$d मी (%2$d फु) + ऊंचाई (फुट) + ऊंचाई (मी) सबसे तेज़ गति: %1$s मिनट/किमी ( %2$s मिनट/मील) सटीकता (मी) ऊंचाई (मी) @@ -97,10 +97,10 @@ limitations under the License. अक्षांश (डिग्री) देशांतर (डिग्री) गति (मी/से) - अधिकतम ऊंचाई: %1$d मी (%2$d फु) + अधिकतम ऊंचाई: %1$d मी (%2$d फु) अधिकतम ग्रेड: %1$d %% अधिकतम गति: %1$.2f किमी/घं (%2$.1f मील/घं) - न्यूनतम ऊंचाई: %1$d मी (%2$d फु) + न्यूनतम ऊंचाई: %1$d मी (%2$d फु) न्यूनतम ग्रेड: %1$d %% चलायमान समय: %1$s गति (मिनट/मील) @@ -286,7 +286,7 @@ limitations under the License. चलने की औसत गति औसत प्रगति औसत गति - ऊंचाई + ऊंचाई सबसे तेज चाल वृद्धि ढलान diff --git a/src/main/res/values-hr/strings.xml b/src/main/res/values-hr/strings.xml index c0e225091..1b420e644 100644 --- a/src/main/res/values-hr/strings.xml +++ b/src/main/res/values-hr/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Prosječna brzina kretanja: %1$.2f km/h (%2$.1f mi/h) Prosječan tempo: %1$s min/km (%2$s min/mi) Prosječna brzina: %1$.2f km/h (%2$.1f mi/h) - Povećanje nadmorske visine: %1$d m (%2$d ft) - Nadmorska visina (stope) - Nadmorska visina (m) + Povećanje nadmorske visine: %1$d m (%2$d ft) + Nadmorska visina (stope) + Nadmorska visina (m) Najbrži tempo: %1$s min/km (%2$s min/mi) Točnost (m) Nadmorska visina (m) @@ -97,10 +97,10 @@ limitations under the License. Geografska širina (stupnjeva) Geografska dužina (stupnjeva) Brzina (m/s) - Najveće povećanje visine: %1$d m (%2$d ft) + Najveće povećanje visine: %1$d m (%2$d ft) Najviši stupanj: %1$d %% Najveća brzina: %1$.2f km/h (%2$.1f mi/h) - Najmanje povećanje visine: %1$d m (%2$d ft) + Najmanje povećanje visine: %1$d m (%2$d ft) Najniži stupanj: %1$d %% Vrijeme kretanja: %1$s Tempo (min/mi) @@ -287,7 +287,7 @@ limitations under the License. Prosj. brzina kretanja Prosj. tempo Prosj. brzina - Nadmorska visina + Nadmorska visina Najbrži tempo Porast Nagib diff --git a/src/main/res/values-hu/strings.xml b/src/main/res/values-hu/strings.xml index 666f949d0..942e263f2 100644 --- a/src/main/res/values-hu/strings.xml +++ b/src/main/res/values-hu/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Átlagos haladási sebesség: %1$.2f km/óra (%2$.1f mérföld/óra) Átlagos tempó: %1$s perc/km (%2$s perc/mérföld) Átlagsebesség: %1$.2f km/óra (%2$.1f mérföld/óra) - Szintkülönbség: %1$d m (%2$d láb) - Tengerszint feletti magasság (láb) - Tengerszint feletti magasság (m) + Szintkülönbség: %1$d m (%2$d láb) + Tengerszint feletti magasság (láb) + Tengerszint feletti magasság (m) Leggyorsabb tempó: %1$s perc/km (%2$s perc/mérföld) Pontosság (m) Tengerszint feletti magasság (m) @@ -97,10 +97,10 @@ limitations under the License. Földrajzi szélesség (fok) Földrajzi hosszúság (fok) Sebesség (m/s) - Max. magasság: %1$d m (%2$d láb) + Max. magasság: %1$d m (%2$d láb) Max. lejtés: %1$d %% Max. sebesség: %1$.2f km/óra (%2$.1f mérföld/óra) - Min. magasság: %1$d m (%2$d láb) + Min. magasság: %1$d m (%2$d láb) Min. lejtés: %1$d %% Haladási idő: %1$s Tempó (perc/mérföld) @@ -287,7 +287,7 @@ limitations under the License. Mozgás átlagos sebessége Átlagos iram Átlagsebesség - Magasság + Magasság Leggyorsabb ütem Növekedés Lejtés diff --git a/src/main/res/values-in/strings.xml b/src/main/res/values-in/strings.xml index 3c166e961..b2ed8594c 100644 --- a/src/main/res/values-in/strings.xml +++ b/src/main/res/values-in/strings.xml @@ -71,9 +71,9 @@ Kecepatan gerak rata-rata: %1$.2f km/jam (%2$.1f mil/jam) Laju rata-rata: %1$s mnt/km (%2$s mnt/mil) Kecepatan rata-rata: %1$.2f km/jam (%2$.1f mil/jam) - Beda ketinggian: %1$d m (%2$d kaki) - Ketinggian (kaki) - Ketinggian (m) + Beda ketinggian: %1$d m (%2$d kaki) + Ketinggian (kaki) + Ketinggian (m) Laju tercepat: %1$s mnt/km (%2$s mnt/mil) Akurasi (m) Ketinggian (m) @@ -81,10 +81,10 @@ Lintang (derajat) Bujur (derajat) Kecepatan (m/s) - Ketinggian maks.: %1$d m (%2$d kaki) + Ketinggian maks.: %1$d m (%2$d kaki) Kemiringan maks.: %1$d %% Kecepatan maks.: %1$.2f km/jam (%2$.1f mil/jam) - Ketinggian min.: %1$d m (%2$d kaki) + Ketinggian min.: %1$d m (%2$d kaki) Kemiringan min.: %1$d %% Waktu pergerakan: %1$s Laju (mnt/mil) @@ -247,7 +247,7 @@ Kecepatan gerak rata-rata Tempo rata-rata Kecepatan rata-rata - Ketinggian + Ketinggian Laju tercepat Perolehan Kemiringan diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index 343870748..ad689025c 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -130,9 +130,9 @@ Infatti, un\'applicazione deve supportare ACTION_VIEW con MIME applica Velocità di spostamento media: %1$.2f km/h (%2$.1f mi/h) Ritmo medio: %1$s min/km (%2$s min/mi) Velocità media: %1$.2f km/h (%2$.1f mi/h) - Dislivello: %1$d m (%2$d ft) - Altitudine (ft) - Altitudine (m) + Dislivello: %1$d m (%2$d ft) + Altitudine (ft) + Altitudine (m) Ritmo più rapido: %1$s min/km (%2$s min/mi) Precisione (m) Altitudine (m) @@ -140,10 +140,10 @@ Infatti, un\'applicazione deve supportare ACTION_VIEW con MIME applica Latitudine (gradi) Longitudine (gradi) Velocità (m/s) - Altitudine max: %1$d m (%2$d ft) + Altitudine max: %1$d m (%2$d ft) Pendenza massima: %1$d %% Velocità massima: %1$.2f km/h (%2$.1f mi/h) - Altitudine min: %1$d m (%2$d ft) + Altitudine min: %1$d m (%2$d ft) Pendenza minima: %1$d %% Tempo di spostamento: %1$s Ritmo (min/mi) @@ -332,7 +332,7 @@ Infatti, un\'applicazione deve supportare ACTION_VIEW con MIME applica Velocità media in movimento Ritmo medio Velocità media - Altitudine + Altitudine Ritmo più veloce Guadagno Pendenza @@ -609,7 +609,7 @@ Infatti, un\'applicazione deve supportare ACTION_VIEW con MIME applica %1$.2f cp/s Perdita Circonferenza della ruota (mm) - Perdita di quota: %1$d m (%2$d ft) + Perdita di quota: %1$d m (%2$d ft) Tasso cardiaco medio Cadenza max Cadenza media diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml index c799ca56f..204ce1899 100644 --- a/src/main/res/values-iw/strings.xml +++ b/src/main/res/values-iw/strings.xml @@ -71,9 +71,9 @@ מהירות ממוצעת של תנועה: %1$.2f קמ\"ש (%2$.1f מייל/שעה) קצב ממוצע: %1$s דקות/ק\"מ (%2$s דקות/מייל) מהירות ממוצעת: %1$.2f קמ\"ש (%2$.1f מייל/שעה) - גובה מצטבר: %1$d מ\' (%2$d רגל) - גובה (רגל) - גובה (מ\') + גובה מצטבר: %1$d מ\' (%2$d רגל) + גובה (רגל) + גובה (מ\') הקצב המהיר ביותר: %1$s דקות/ק\"מ (%2$s דקות/מייל) דיוק (מ\') גובה (מ\') @@ -81,10 +81,10 @@ קו רוחב (מעלות) קו אורך (מעלות) מהירות (מטר/שניה) - גובה מקסימלי: %1$d מ\' (%2$d רגל) + גובה מקסימלי: %1$d מ\' (%2$d רגל) שיפוע מקסימלי: %1$d %% מהירות מקסימלית: %1$.2f קמ\"ש (%2$.1f מייל/שעה) - גובה מינימלי: %1$d מ\' (%2$d רגל) + גובה מינימלי: %1$d מ\' (%2$d רגל) שיפוע מינימלי: %1$d %% זמן תנועה: %1$s קצב (דקות/מייל) @@ -247,7 +247,7 @@ מהירות תנועה ממוצעת קצב ממוצע מהירות ממוצעת - גובה + גובה הקצב המהיר ביותר תוספת שיפוע diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index d63ffb762..2ded500b6 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -87,9 +87,9 @@ limitations under the License. 平均移動速度: %1$.2fkm/時(%2$.1fマイル/時) 平均ペース: %1$s分/km(%2$s分/マイル) 平均速度: %1$.2fkm/時(%2$.1fマイル/時) - 標高の上昇: %1$dm(%2$dフィート) - 標高(フィート) - 標高(m) + 標高の上昇: %1$dm(%2$dフィート) + 標高(フィート) + 標高(m) 最速ペース: %1$s分/km(%2$s分/マイル) 精度(m) 標高(m) @@ -97,10 +97,10 @@ limitations under the License. 緯度(度) 経度(度) 速度(m/秒) - 最大標高: %1$dm(%2$dフィート) + 最大標高: %1$dm(%2$dフィート) 最大傾斜: %1$d %% 最高速度: %1$.2fkm/時(%2$.1fマイル/時) - 最小標高: %1$dm(%2$dフィート) + 最小標高: %1$dm(%2$dフィート) 最小傾斜: %1$d %% 移動時間: %1$s ペース(分/マイル) @@ -288,7 +288,7 @@ limitations under the License. 平均移動速度 平均ペース 平均速度 - 標高 + 標高 最速ペース 増加 傾斜 diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml index 95f22e9f0..556a431da 100644 --- a/src/main/res/values-ko/strings.xml +++ b/src/main/res/values-ko/strings.xml @@ -87,9 +87,9 @@ limitations under the License. 평균 이동 속도: 시속 %1$.2fkm(시속 %2$.1f마일) 평균 속도: %1$s분/km(%2$s분/마일) 평균 속도: 시속 %1$.2fkm(시속 %2$.1f마일) - 고도: %1$dm(%2$d피트) - 고도(피트) - 고도(m) + 고도: %1$dm(%2$d피트) + 고도(피트) + 고도(m) 최고 속도: %1$s 분/km (%2$s 분/마일) 정확도(m) 고도(m) @@ -97,10 +97,10 @@ limitations under the License. 위도(도) 경도(도) 속도(m/s) - 최고 고도: %1$dm(%2$d피트) + 최고 고도: %1$dm(%2$d피트) 최대 등급: %1$d %% 최대 속도: 시속 %1$.2fkm(시속 %2$.1f마일) - 최저 고도: %1$dm(%2$d피트) + 최저 고도: %1$dm(%2$d피트) 최소 등급: %1$d %% 이동 시간: %1$s 속도(분/마일) @@ -287,7 +287,7 @@ limitations under the License. 평균 이동 속도 평균 페이스 평균 속도 - 고도 + 고도 최고 속도 등락 등급 diff --git a/src/main/res/values-lt/strings.xml b/src/main/res/values-lt/strings.xml index b56fdd750..7f27e6241 100644 --- a/src/main/res/values-lt/strings.xml +++ b/src/main/res/values-lt/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Vidutinis judėjimo greitis: %1$.2f km/val. (%2$.1f myl./val.) Vidutinis tempas: %1$s min./km (%2$s min./myl.) Vidutinis greitis: %1$.2f km/val. (%2$.1f km/val.) - Aukščio virš jūros lygio padidėjimas: %1$d m (%2$d pėd.) - Aukštis (pėd.) - Aukštis (m) + Aukščio virš jūros lygio padidėjimas: %1$d m (%2$d pėd.) + Aukštis (pėd.) + Aukštis (m) Greičiausias tempas: %1$s min./km (%2$s min./myl.) Tikslumas (m) Aukštis virš jūros lygio (m) @@ -97,10 +97,10 @@ limitations under the License. Platuma (laipsniai) Ilguma (laipsniai) Greitis (m/s) - Maks. aukštis: %1$d m (%2$d pėd.) + Maks. aukštis: %1$d m (%2$d pėd.) Maks. nuolydis: %1$d %% Maks. greitis: %1$.2f km/val. (%2$.1f myl./val.) - Min. aukštis: %1$d m (%2$d pėd.) + Min. aukštis: %1$d m (%2$d pėd.) Min. nuolydis: %1$d %% Judėjimo trukmė: %1$s Tempas (min./myl.) @@ -289,7 +289,7 @@ limitations under the License. Vid. judėjimo greitis Vid. tempas Vid. greitis - Pakilimas + Pakilimas Greičiausias tempas Pelnas Laipsnis diff --git a/src/main/res/values-lv/strings.xml b/src/main/res/values-lv/strings.xml index 064223516..1cecfed3d 100644 --- a/src/main/res/values-lv/strings.xml +++ b/src/main/res/values-lv/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Vidējais pārvietošanās ātrums: %1$.2f km/h (%2$.1f jūdze(-es)/h) Vidējais temps: %1$s min/km (%2$s min/jūdzē) Vidējais ātrums: %1$.2f km/h (%2$.1f jūdze(-es)/h) - Kopējais pacēlums: %1$d m (%2$d pēda(-as)) - Pacēlums (pēdas) - Pacēlums (m) + Kopējais pacēlums: %1$d m (%2$d pēda(-as)) + Pacēlums (pēdas) + Pacēlums (m) Ātrākais temps: %1$s min/km (%2$s min/jūdzē) Precizitāte (m) Augstums (m) @@ -97,10 +97,10 @@ limitations under the License. Platums (grādos) Garums (grādos) Ātrums (m/s) - Maksimālais pacēlums: %1$d m (%2$d pēda(-as)) + Maksimālais pacēlums: %1$d m (%2$d pēda(-as)) Maksimālais slīpums: %1$d %% Maksimālais ātrums: %1$.2f km/h (%2$.1f jūdze(-es)/h) - Minimālais pacēlums: %1$d m (%2$d pēda(-as)) + Minimālais pacēlums: %1$d m (%2$d pēda(-as)) Minimālais slīpums: %1$d %% Pārvietošanās laiks: %1$s Temps (min/jūdzē) @@ -287,7 +287,7 @@ limitations under the License. Vidējais pārvietošanās ātrums Vidējais temps Vidējais ātrums - Pacēlums + Pacēlums Ātrākais temps Pieaugums Slīpums diff --git a/src/main/res/values-mo/strings.xml b/src/main/res/values-mo/strings.xml index 1a082b08e..1c9fc0ccb 100644 --- a/src/main/res/values-mo/strings.xml +++ b/src/main/res/values-mo/strings.xml @@ -71,9 +71,9 @@ Viteză medie de deplasare: %1$.2f km/h (%2$.1f mi/h) Ritmul mediu: %1$s min/km (%2$s min/mi) Viteză medie: %1$.2f km/h (%2$.1f mi/h) - Creştere în altitudine: %1$d m (%2$d ft) - Altitudine (ft) - Altitudine (m) + Creştere în altitudine: %1$d m (%2$d ft) + Altitudine (ft) + Altitudine (m) Ritmul cel mai rapid: %1$s min/km (%2$s min/mi) Exactitate (m) Altitudine (m) @@ -81,10 +81,10 @@ Latitudine (grade) Longitudine (grade) Viteză (m/s) - Altitudine maximă: %1$d m (%2$d ft) + Altitudine maximă: %1$d m (%2$d ft) Înclinaţie maximă: %1$d %% Viteză maximă: %1$.2f km/h (%2$.1f mi/h) - Altitudine minimă: %1$d m (%2$d ft) + Altitudine minimă: %1$d m (%2$d ft) Înclinaţie minimă: %1$d %% Timp de mişcare: %1$s Ritmul (min/mi) @@ -247,7 +247,7 @@ Viteza medie de mișcare Ritmul mediu Viteza medie - Altitudinea + Altitudinea Cel mai rapid ritm Creștere Înclinare diff --git a/src/main/res/values-ms/strings.xml b/src/main/res/values-ms/strings.xml index 26f17e54c..f60437ef1 100644 --- a/src/main/res/values-ms/strings.xml +++ b/src/main/res/values-ms/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Purata kelajuan pergerakan: %1$.2f km/j (%2$.1f bt/j) Purata langkah: %1$s min/km (%2$s min/bt) Purata kelajuan: %1$.2f km/j (%2$.1f bt/j) - Peningkatan ketinggian: %1$d m (%2$d kaki) - Ketinggian (kaki) - Ketinggian (m) + Peningkatan ketinggian: %1$d m (%2$d kaki) + Ketinggian (kaki) + Ketinggian (m) Langkah paling laju: %1$s min/km (%2$s min/bt) Ketepatan (m) Altitud (m) @@ -97,10 +97,10 @@ limitations under the License. Latitud (darjah) Longitud (darjah) Kelajuan (m/s) - Ketinggian maksimum: %1$d m (%2$d kaki) + Ketinggian maksimum: %1$d m (%2$d kaki) Gred maksimum: %1$d %% Kelajuan maksimum: %1$.2f km/j (%2$.1f bt/j) - Ketinggian min: %1$d m (%2$d kaki) + Ketinggian min: %1$d m (%2$d kaki) Gred min: %1$d %% Masa pergerakan: %1$s Langkah (min/bt) @@ -288,7 +288,7 @@ limitations under the License. Kelajuan bergerak purata Langkah purata Kelajuan purata - Ketinggian + Ketinggian Langkah paling cepat Pertambahan Cerun diff --git a/src/main/res/values-nb/strings.xml b/src/main/res/values-nb/strings.xml index fec9ba6d3..8b1f0af68 100644 --- a/src/main/res/values-nb/strings.xml +++ b/src/main/res/values-nb/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Gjennomsnittlig forflytningshastighet: %1$.2f km/t (%2$.1f mi/h) Gjennomsnittstempo: %1$s min/km (%2$s min/mi) Gjennomsnittshastighet: %1$.2f km/t (%2$.1f mi/h) - Total stigning: %1$d m (%2$d ft) - Høyde (ft) - Høyde (m) + Total stigning: %1$d m (%2$d ft) + Høyde (ft) + Høyde (m) Raskeste tempo: %1$s min/km (%2$s min/mi) Nøyaktighet (m) Høyde (m) @@ -97,10 +97,10 @@ limitations under the License. Breddegrad (grader) Lengdegrad (grader) Hastighet (m/s) - Maksstigning: %1$d m (%2$d ft) + Maksstigning: %1$d m (%2$d ft) Maksgrad: %1$d %% Maksfart: %1$.2f km/t (%2$.1f mi/h) - Minimumsstigning: %1$d m (%2$d ft) + Minimumsstigning: %1$d m (%2$d ft) Minimumsgrad: %1$d %% Forflytningstid: %1$s Tempo (min/mi) @@ -289,7 +289,7 @@ limitations under the License. Gjennomsnittlig forflytningshastighet Gjennomsnittlig tempo Gjennomsnittlig hastighet - Høyde + Høyde Raskeste tempo Total stigning Helling @@ -583,7 +583,7 @@ limitations under the License. %1$d:%2$02d min/km %1$.2f mph %1$d:%2$02d min/mi - Total nedstigning: %1$d m (%2$d ft) + Total nedstigning: %1$d m (%2$d ft) Total nedstigning Du har stilt inn å forhindre at spor importeres om igjen Forhindre reimport av spor diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml index e33fb2c78..b01e5f54d 100644 --- a/src/main/res/values-nl/strings.xml +++ b/src/main/res/values-nl/strings.xml @@ -136,9 +136,9 @@ Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid Gemiddelde verplaatsingssnelheid: %1$.2f km/u (%2$.1f mi/u) Gemiddeld tempo: %1$s min/km (%2$s min/mi) Gemiddelde snelheid: %1$.2f km/u (%2$.1f mi/u) - Hoogteverschil: %1$d m (%2$d ft) - Hoogte (ft) - Hoogte (m) + Hoogteverschil: %1$d m (%2$d ft) + Hoogte (ft) + Hoogte (m) Snelste tempo: %1$s min/km (%2$s min/mi) Nauwkeurigheid (m) Hoogte (m) @@ -146,10 +146,10 @@ Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid Breedtegraad (gr) Lengtegraad (gr) Snelheid (m/s) - Max. hoogte: %1$d m (%2$d ft) + Max. hoogte: %1$d m (%2$d ft) Max. helling: %1$d %% Max. snelheid: %1$.2f km/u (%2$.1f mi/u) - Min. hoogte: %1$d m (%2$d ft) + Min. hoogte: %1$d m (%2$d ft) Min. helling: %1$d %% Verplaatsingstijd: %1$s Tempo (min/mi) @@ -355,7 +355,7 @@ Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid Gem. verplaatsingssnelheid Gem. tempo Gem. snelheid - Hoogte + Hoogte Snelste tempo Stijging Helling @@ -538,7 +538,7 @@ Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid Ik denk dat je misschien geïnteresseerd bent in dit beeld. De track %1$s bestaat al in de doelmap. Tracks niet geëxporteerd - Hoogteverlies: %1$d m (%2$d ft) + Hoogteverlies: %1$d m (%2$d ft) Post-workout export mislukt, controleer de export map. Openen met behulp van OpenTracks-Dashboard Openen als KMZ diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 8c6b04101..eb01b04ea 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Średnia prędkość ruchu: %1$.2f km/h (mil/h: %2$.1f) Średnie tempo: %1$s min/km (%2$s min/milę) Średnia prędkość: %1$.2f km/h (mil/h: %2$.1f) - Różnica wysokości: %1$d m (stóp: %2$d) - Wysokość (stopy) - Wysokość (m) + Różnica wysokości: %1$d m (stóp: %2$d) + Wysokość (stopy) + Wysokość (m) Najszybsze tempo: %1$s min/km (%2$s min/milę) Dokładność (m) Wysokość (m) @@ -97,10 +97,10 @@ limitations under the License. Szerokość geograficzna (stopnie) Długość geograficzna (stopnie) Prędkość (m/s) - Maksymalna wysokość: %1$d m (stóp: %2$d) + Maksymalna wysokość: %1$d m (stóp: %2$d) Maksymalne nachylenie: %1$d%% Maksymalna prędkość: %1$.2f km/h (mil/h: %2$.1f) - Minimalna wysokość: %1$d m (stóp: %2$d) + Minimalna wysokość: %1$d m (stóp: %2$d) Minimalne nachylenie: %1$d%% Czas w ruchu: %1$s Tempo (min/milę) @@ -321,7 +321,7 @@ limitations under the License. Średnia prędkość ruchu Średnie tempo Średnia prędkość - Wysokość + Wysokość Najszybsze tempo Przewyższenie w góre @@ -535,7 +535,7 @@ limitations under the License. \n * pokazuje ślady na mapie (zobacz poniżej) Katalog eksportu śladów Eksportuj ślad do pamięci po zakończeniu nagrywania - Strata wysokości: %1$d m (%2$d ft) + Strata wysokości: %1$d m (%2$d ft) bez zdjęć wraz z fotografiami Według rodzaju działalności diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index b95da2df1..4c73ab633 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -71,9 +71,9 @@ Velocidade média de deslocamento: %1$.2f km/h (%2$.1f milhas/h) Ritmo médio: %1$s min/km (%2$s min/mi) Velocidade média: %1$.2f km/h (%2$.1f milhas/h) - Ganho de elevação: %1$d m (%2$d pés) - Elevação (pés) - Elevação (m) + Ganho de elevação: %1$d m (%2$d pés) + Elevação (pés) + Elevação (m) Ritmo mais rápido: %1$s min/km (%2$s min/mi) Precisão (m) Altitude (m) @@ -81,10 +81,10 @@ Latitude (graus) Longitude (graus) Velocidade (m/s) - Elevação máx.: %1$d m (%2$d pés) + Elevação máx.: %1$d m (%2$d pés) Grau máx.: %1$d %% Velocidade máx.: %1$.2f km/h (%2$.1f milhas/h) - Elevação mín.: %1$d m (%2$d pés) + Elevação mín.: %1$d m (%2$d pés) Grau mín.: %1$d %% Tempo de deslocamento: %1$s Ritmo (min/mi) @@ -250,7 +250,7 @@ Velocidade média de movimentação Ritmo médio Velocidade média - Elevação + Elevação Ritmo mais rápido Ganho Inclinação @@ -536,7 +536,7 @@ Perda A exportação pós-treino falhou, verifique o diretório de exportação. %1$.2f km/h - Perda de elevação: %1$d m (%2$d ft) + Perda de elevação: %1$d m (%2$d ft) Novas trilhas exportadas Nenhum arquivo doc.kml encontrado no KMZ %1$d:%2$02d min/mi diff --git a/src/main/res/values-pt-rPT/strings.xml b/src/main/res/values-pt-rPT/strings.xml index 4bf72501a..655372183 100644 --- a/src/main/res/values-pt-rPT/strings.xml +++ b/src/main/res/values-pt-rPT/strings.xml @@ -71,9 +71,9 @@ Velocidade média de deslocação: %1$.2f km/h ( %2$.1f mi / h) Ritmo médio: %1$s min/km ( %2$s min/mi) Velocidade média: %1$.2f km/h ( %2$.1f mi/h) - Diferença de altitude: %1$d m ( %2$d ft) - Elevação (pés) - Elevação (m) + Diferença de altitude: %1$d m ( %2$d ft) + Elevação (pés) + Elevação (m) Ritmo mais rápido: %1$s min/km (%2$s min/mi) Precisão (m) Altitude (m) @@ -81,10 +81,10 @@ Latitude (graus) Longitude (graus) Velocidade (m/s) - Altitude máxima: %1$d m ( %2$d ft) + Altitude máxima: %1$d m ( %2$d ft) Inclinação máxima: %1$d %% Velocidade máxima: %1$.2f km/h ( %2$.1f mi/h) - Altitude mínima: %1$d m ( %2$d ft) + Altitude mínima: %1$d m ( %2$d ft) Inclinação mínima: %1$d %% Tempo de deslocação: %1$s Ritmo (min/mi) @@ -246,7 +246,7 @@ Velocidade média de deslocação Ritmo médio Velocidade média - Elevação + Elevação Ritmo mais rápido Ganho Grau diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml index c68792ff4..28b2fbdfe 100644 --- a/src/main/res/values-pt/strings.xml +++ b/src/main/res/values-pt/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Velocidade média de deslocamento: %1$.2f km/h (%2$.1f milhas/h) Ritmo médio: %1$s min/km (%2$s min/mi) Velocidade média: %1$.2f km/h (%2$.1f milhas/h) - Ganho de elevação: %1$d m (%2$d pés) - Elevação (pés) - Elevação (m) + Ganho de elevação: %1$d m (%2$d pés) + Elevação (pés) + Elevação (m) Ritmo mais rápido: %1$s min/km (%2$s min/mi) Precisão (m) Altitude (m) @@ -97,10 +97,10 @@ limitations under the License. Latitude (graus) Longitude (graus) Velocidade (m/s) - Elevação máx.: %1$d m (%2$d pés) + Elevação máx.: %1$d m (%2$d pés) Grau máx.: %1$d %% Velocidade máx.: %1$.2f km/h (%2$.1f milhas/h) - Elevação mín.: %1$d m (%2$d pés) + Elevação mín.: %1$d m (%2$d pés) Grau mín.: %1$d %% Tempo de deslocamento: %1$s Ritmo (min/mi) @@ -289,7 +289,7 @@ limitations under the License. Velocidade média de movimentação Ritmo médio Velocidade média - Elevação + Elevação Ritmo mais rápido Ganho Inclinação diff --git a/src/main/res/values-ro/strings.xml b/src/main/res/values-ro/strings.xml index 3cb4ed160..d13068ca5 100644 --- a/src/main/res/values-ro/strings.xml +++ b/src/main/res/values-ro/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Viteză medie de deplasare: %1$.2f km/h (%2$.1f mi/h) Ritmul mediu: %1$s min/km (%2$s min/mi) Viteză medie: %1$.2f km/h (%2$.1f mi/h) - Creştere în altitudine: %1$d m (%2$d ft) - Altitudine (ft) - Altitudine (m) + Creştere în altitudine: %1$d m (%2$d ft) + Altitudine (ft) + Altitudine (m) Ritmul cel mai rapid: %1$s min/km (%2$s min/mi) Exactitate (m) Altitudine (m) @@ -97,10 +97,10 @@ limitations under the License. Latitudine (grade) Longitudine (grade) Viteză (m/s) - Altitudine maximă: %1$d m (%2$d ft) + Altitudine maximă: %1$d m (%2$d ft) Înclinaţie maximă: %1$d %% Viteză maximă: %1$.2f km/h (%2$.1f mi/h) - Altitudine minimă: %1$d m (%2$d ft) + Altitudine minimă: %1$d m (%2$d ft) Înclinaţie minimă: %1$d %% Timp de mişcare: %1$s Ritmul (min/mi) @@ -287,7 +287,7 @@ limitations under the License. Viteza medie de mișcare Ritmul mediu Viteza medie - Altitudinea + Altitudinea Cel mai rapid ritm Creștere Înclinare diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 4e69e630d..62ed8903c 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Средняя скорость при движении: %1$.2f км/ч (%2$.1f мил/ч) Средний темп: %1$s мин/км (%2$s мин/мил) Средняя скорость: %1$.2f км/ч (%2$.1f мил/ч) - Набор высоты: %1$d м (%2$d фт) - Высота (футы) - Высота (м) + Набор высоты: %1$d м (%2$d фт) + Высота (футы) + Высота (м) Максимальный темп: %1$s мин/км (%2$s мин/мил) Точность (м) Высота (м) @@ -97,10 +97,10 @@ limitations under the License. Широта (°) Долгота (°) Скорость (м/с) - Макс. высота: %1$d м (%2$d фт) + Макс. высота: %1$d м (%2$d фт) Макс. угол наклона: %1$d%% Макс. скорость: %1$.2f км/ч (%2$.1f мил/ч) - Мин. высота: %1$d м (%2$d фт) + Мин. высота: %1$d м (%2$d фт) Мин. угол наклона: %1$d%% Время движения: %1$s Темп (мин/мил) @@ -285,7 +285,7 @@ limitations under the License. Средняя скорость движения Средний шаг Средняя скорость - Высота + Высота Макс. темп Рост Наклон diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml index 40c61b617..899906581 100644 --- a/src/main/res/values-sk/strings.xml +++ b/src/main/res/values-sk/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Priemerná rýchlosť pohybu: %1$.2f km/h (%2$.1f míľ/h) Priemerné tempo: %1$s min/km (%2$s min/mi) Priemerná rýchlosť: %1$.2f km/h (%2$.1f míľ/h) - Prevýšenie: %1$d m (%2$d stôp) - Nadmorská výška (ft) - Nadmorská výška (m) + Prevýšenie: %1$d m (%2$d stôp) + Nadmorská výška (ft) + Nadmorská výška (m) Najrýchlejšie tempo: %1$s min/km (%2$s min/mi) Presnosť (m) Nadmorská výška (m) @@ -97,10 +97,10 @@ limitations under the License. Zemepisná šírka (°) Zemepisná dĺžka (°) Rýchlosť (m/s) - Max. prevýšenie: %1$d m (%2$d stôp) + Max. prevýšenie: %1$d m (%2$d stôp) Max. sklon: %1$d %% Max. rýchlosť: %1$.2f km/h (%2$.1f míľ/h) - Min. prevýšenie: %1$d m (%2$d stôp) + Min. prevýšenie: %1$d m (%2$d stôp) Min. sklon: %1$d %% Čas presunu: %1$s Tempo (min/mi) @@ -286,7 +286,7 @@ limitations under the License. Priem. rýchlosť pohybu Priem. tempo Priem. rýchlosť - Nadmorská výška + Nadmorská výška Najrýchlejšie tempo Zisk Stúpanie diff --git a/src/main/res/values-sl/strings.xml b/src/main/res/values-sl/strings.xml index 7bc60eb78..20c372ab5 100644 --- a/src/main/res/values-sl/strings.xml +++ b/src/main/res/values-sl/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Povprečna hitrost gibanja: %1$.2f km/h (%2$.1f mi/h) Povprečni tempo: %1$s min/km (%2$s min/mi) Povprečna hitrost: %1$.2f km/h (%2$.1f mi/h) - Pridobljena višina: %1$d m (%2$d ft) - Nadmorska višina (ft) - Nadmorska višina (m) + Pridobljena višina: %1$d m (%2$d ft) + Nadmorska višina (ft) + Nadmorska višina (m) Najhitrejši tempo: %1$s min/km (%2$s min/mi) Natančnost (m) Nadmorska višina (m) @@ -97,10 +97,10 @@ limitations under the License. Zemljepisna širina (stopinje) Zemljepisna dolžina (stopinje) Hitrost (m/s) - Največja višina: %1$d m (%2$d ft) + Največja višina: %1$d m (%2$d ft) Največji naklon: %1$d %% Največja hitrost: %1$.2f km/h (%2$.1f mi/h) - Najmanjša višina: %1$d m (%2$d ft) + Najmanjša višina: %1$d m (%2$d ft) Najmanjši naklon: %1$d %% Čas gibanja: %1$s Tempo (min/mi) @@ -288,7 +288,7 @@ limitations under the License. Povprečna hitrost gibanja Povprečni tempo Povprečna hitrost - Nadmorska višina + Nadmorska višina Najhitrejši tempo Porast Naklon diff --git a/src/main/res/values-sr/strings.xml b/src/main/res/values-sr/strings.xml index d6eac924d..4bd6d7ff9 100644 --- a/src/main/res/values-sr/strings.xml +++ b/src/main/res/values-sr/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Просечна брзина кретања: %1$.2f км/ч (%2$.1f ми/ч) Просечни темпо: %1$s min/km (%2$s min/mi) Просечна брзина: %1$.2f км/ч (%2$.1f ми/ч) - Повећање надморске висине: %1$d м (%2$d ст) - Надморска висина (ст) - Надморска висина (м) + Повећање надморске висине: %1$d м (%2$d ст) + Надморска висина (ст) + Надморска висина (м) Најбржи темпо: %1$s min/km (%2$s min/mi) Прецизност (м) Надморска висина (м) @@ -97,10 +97,10 @@ limitations under the License. Географска ширина (степени) Географска дужина (степени) Брзина (м/с) - Максимална надморска висина: %1$d м (%2$d ст) + Максимална надморска висина: %1$d м (%2$d ст) Максимална кота: %1$d %% Максимална брзина: %1$.2f км/ч (%2$.1f ми/ч) - Минимална надморска висина: %1$d м (%2$d ст) + Минимална надморска висина: %1$d м (%2$d ст) Минимална кота: %1$d %% Време кретања: %1$s Темпо (min/mi) @@ -286,7 +286,7 @@ limitations under the License. Прос. брзина кретања Прос. темпо Прос. брзина - Узвишење + Узвишење Најбржи темпо Повећање Нагиб diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml index 801471531..b0a278d5e 100644 --- a/src/main/res/values-sv/strings.xml +++ b/src/main/res/values-sv/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Medelhastighet: %1$.2f km/tim (%2$.1f mi/h) Genomsnittstempo: %1$s min/km (%2$s min/mi) Medelhastighet: %1$.2f km/tim (%2$.1f mi/h) - Höjdskillnad: %1$d m (%2$d ft) - Höjd (ft) - Höjd (m) + Höjdskillnad: %1$d m (%2$d ft) + Höjd (ft) + Höjd (m) Snabbaste tempo: %1$s min/km (%2$s min/mi) Noggrannhet (m) Höjd (m) @@ -97,10 +97,10 @@ limitations under the License. Latitud (grader) Longitud (grader) Hastighet (m/s) - Max. höjd: %1$d m (%2$d ft) + Max. höjd: %1$d m (%2$d ft) Max. lutning: %1$d %% Max. hastighet: %1$.2f km/tim (%2$.1f mi/h) - Min. höjd: %1$d m (%2$d ft) + Min. höjd: %1$d m (%2$d ft) Min. lutning: %1$d %% Förflyttningstid: %1$s Tempo (min/mi) @@ -286,7 +286,7 @@ limitations under the License. Medelhastighet Genomsnittligt tempo Medelhastighet - Stigning + Stigning Snabbaste tempo Ökning Lutning diff --git a/src/main/res/values-th/strings.xml b/src/main/res/values-th/strings.xml index df54a4fd5..6956890fb 100644 --- a/src/main/res/values-th/strings.xml +++ b/src/main/res/values-th/strings.xml @@ -87,9 +87,9 @@ limitations under the License. ความเร็วการเคลื่อนที่เฉลี่ย: %1$.2f กม./ชม. (%2$.1f ไมล์/ชม.) อัตราก้าวเฉลี่ย: %1$s นาที/กม. (%2$s นาที/ไมล์) ความเร็วเฉลี่ย: %1$.2f กม./ชม. (%2$.1f ไมล์/ชม.) - ระดับความสูง: %1$d ม. (%2$d ฟุต) - ระดับความสูง (ฟุต) - ระดับความสูง (เมตร) + ระดับความสูง: %1$d ม. (%2$d ฟุต) + ระดับความสูง (ฟุต) + ระดับความสูง (เมตร) อัตราก้าวสูงสุด: %1$s นาที/กม. (%2$s นาที/ไมล์) ความแม่นยำ (ม.) ระดับความสูง (ม.) @@ -97,10 +97,10 @@ limitations under the License. ละติจูด (องศา) ลองจิจูด (องศา) ความเร็ว (ม./วินาที) - ระดับความสูงสูงสุด: %1$d ม. (%2$d ฟุต) + ระดับความสูงสูงสุด: %1$d ม. (%2$d ฟุต) ความลาดสูงสุด: %1$d %% ความเร็วสูงสุด: %1$.2f กม./ชม. (%2$.1f ไมล์/ชม.) - ระดับความสูงต่ำสุด: %1$d ม. (%2$d ฟุต) + ระดับความสูงต่ำสุด: %1$d ม. (%2$d ฟุต) ความลาดต่ำสุด: %1$d %% เวลาการเคลื่อนที่: %1$s อัตราก้าว (นาที/ไมล์) @@ -286,7 +286,7 @@ limitations under the License. ความเร็วในการเคลื่อนที่เฉลี่ย ก้าวเฉลี่ย ความเร็วเฉลี่ย - ระดับความสูง + ระดับความสูง อ้ตราก้าวที่เร็วที่สุด เพิ่มค่า ระดับความเอียง diff --git a/src/main/res/values-tl/strings.xml b/src/main/res/values-tl/strings.xml index 9760fb110..cdfff7424 100644 --- a/src/main/res/values-tl/strings.xml +++ b/src/main/res/values-tl/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Average na bilis ng paglipat: %1$.2f km/h (%2$.1f mi/h) Average na bilis: %1$s min/km (%2$s min/mi) Average na bilis: %1$.2f km/h (%2$.1f mi/h) - Nakamit na Elevation: %1$d m (%2$d piye) - Elevation (ft) - Elevation (m) + Nakamit na Elevation: %1$d m (%2$d piye) + Elevation (ft) + Elevation (m) Pinakamabilis na bilis: %1$s (na) min/km (%2$s (na) min/mi) Katumpakan (m) Altitude (m) @@ -97,10 +97,10 @@ limitations under the License. Latitude (deg) Longitude (deg) Bilis (m/s) - Max elevation: %1$d m (%2$d piye) + Max elevation: %1$d m (%2$d piye) Max na grado: %1$d %% Max na bilis: %1$.2f km/h (%2$.1f mi/h) - Min na elevation: %1$d m (%2$d piye) + Min na elevation: %1$d m (%2$d piye) Min na grado: %1$d %% Oras ng paglipat: %1$s Bilis (min/mi) @@ -286,7 +286,7 @@ limitations under the License. Avg na nakatakdang bilis ng pagkilos Avg na nakatakdang bilis Avg na bilis - Elevation + Elevation Pinakamabilis na tulin Gain Grade diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml index 3fd095d96..e3a73e5db 100644 --- a/src/main/res/values-tr/strings.xml +++ b/src/main/res/values-tr/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Ortalama hareket hızı: %1$.2f km/sa (%2$.1f mil/sa) Ortalama tempo: %1$s dk/km (%2$s dk/mil) Ortalama hız: %1$.2f km/sa (%2$.1f mil/sa) - İrtifa kazancı: %1$d m (%2$d fit) - İrtifa (ft) - İrtifa (m) + İrtifa kazancı: %1$d m (%2$d fit) + İrtifa (ft) + İrtifa (m) En yüksek tempo: %1$s dk/km (%2$s dk/mil) Doğruluk (m) Rakım (m) @@ -97,10 +97,10 @@ limitations under the License. Enlem (derece) Boylam (derece) Hız (m/sn) - Maks. irtifa: %1$d m (%2$d fit) + Maks. irtifa: %1$d m (%2$d fit) Maks. eğim: %% %1$d Maks. hız: %1$.2f km/sa (%2$.1f mil/sa) - Min. irtifa: %1$d m (%2$d fit) + Min. irtifa: %1$d m (%2$d fit) Min. eğim: %% %1$d Hareket süresi: %1$s Tempo (dk/mil) @@ -287,7 +287,7 @@ limitations under the License. Ort. hareket hızı Ort. tempo Ort. hız - İrtifa + İrtifa En hızlı tempo Artış Eğim diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml index 6347d752c..c5eafd100 100644 --- a/src/main/res/values-uk/strings.xml +++ b/src/main/res/values-uk/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Середня швидкість: %1$.2f км/год (%2$.1f мл/год) Середній темп: %1$s хв/км (%2$s хв/мл) Середня швидкість: %1$.2f км/год (%2$.1f мл/год) - Сумарний підйом: %1$d м (%2$d фт) - Підйом (фути) - Підйом (м) + Сумарний підйом: %1$d м (%2$d фт) + Підйом (фути) + Підйом (м) Найшвидший темп: %1$s хв/км (%2$s хв/мл) Точність (м) Висота (м) @@ -97,10 +97,10 @@ limitations under the License. Широта (град.) Довжина (град.) Швидкість (м/с) - Максимальний підйом: %1$d м (%2$d фт) + Максимальний підйом: %1$d м (%2$d фт) Макс. рівень: %1$d %% Макс. швидкість: %1$.2f км/год (%2$.1f мл/год) - Мін. підйом: %1$d м (%2$d фт) + Мін. підйом: %1$d м (%2$d фт) Мін. рівень: %1$d %% Час руху: %1$s Темп (хв/мл) @@ -288,7 +288,7 @@ limitations under the License. Середня швидкість руху Середній темп Середня швидкість - Підйом + Підйом Найшвидший темп Приріст Нахил @@ -515,7 +515,7 @@ limitations under the License. Відкрити яка %1$s електро-байк Окружність колеса (мм) - Втрата висоти: %1$d м (%2$d фут.) + Втрата висоти: %1$d м (%2$d фут.) Нові треки експортовано Треки перезаписано Треки пропущено diff --git a/src/main/res/values-vi/strings.xml b/src/main/res/values-vi/strings.xml index ff2454a3e..1eca61070 100644 --- a/src/main/res/values-vi/strings.xml +++ b/src/main/res/values-vi/strings.xml @@ -87,9 +87,9 @@ limitations under the License. Tốc độ di chuyển trung bình: %1$.2f km/h (%2$.1f dặm/h) Nhịp độ bình quân: %1$s phút/km (%2$s phút/dặm) Tốc độ trung bình: %1$.2f km/h (%2$.1f dặm/h) - Hệ số độ cao: %1$d m (%2$d ft) - Độ cao (ft) - Độ cao (m) + Hệ số độ cao: %1$d m (%2$d ft) + Độ cao (ft) + Độ cao (m) Nhịp độ nhanh nhất: %1$s phút/km (%2$s phút/dặm) Độ chính xác (m) Độ cao (m) @@ -97,10 +97,10 @@ limitations under the License. Vĩ độ (độ) Kinh độ (độ) Tốc độ (m/s) - Độ cao tối đa: %1$d m (%2$d ft) + Độ cao tối đa: %1$d m (%2$d ft) Mức tối đa: %1$d %% Tốc độ tối đa: %1$.2f km/h (%2$.1f dặm/h) - Độ cao tối thiểu: %1$d m (%2$d ft) + Độ cao tối thiểu: %1$d m (%2$d ft) Mức tối thiểu: %1$d %% Thời gian di chuyển: %1$s Nhịp độ (phút/dặm) @@ -287,7 +287,7 @@ limitations under the License. Tốc độ di chuyển trung bình Nhịp độ trung bình Tốc độ trung bình - Độ cao + Độ cao Nhịp độ nhanh nhất Tăng Độ dốc diff --git a/src/main/res/values-zh-rHK/strings.xml b/src/main/res/values-zh-rHK/strings.xml index 97d51c058..454213679 100644 --- a/src/main/res/values-zh-rHK/strings.xml +++ b/src/main/res/values-zh-rHK/strings.xml @@ -71,9 +71,9 @@ 平均移動速度:%1$.2f 公里/小時 (%2$.1f 英里/小時) 平均速度:%1$s 分鐘/公里 (%2$s 分鐘/英里) 平均速度:%1$.2f 公里/小時 (%2$.1f 英里/小時) - 爬升高度:%1$d 公尺 (%2$d 英尺) - 海拔高度 (英尺) - 海拔高度 (公尺) + 爬升高度:%1$d 公尺 (%2$d 英尺) + 海拔高度 (英尺) + 海拔高度 (公尺) 最快速度:%1$s 分鐘/公里 (%2$s 分鐘/英里) 精確度 (公尺) 海拔高度 (公尺) @@ -81,10 +81,10 @@ 緯度 (度) 經度 (度) 速度 (公尺/秒) - 最高海拔:%1$d 公尺 (%2$d 英尺) + 最高海拔:%1$d 公尺 (%2$d 英尺) 最大坡度:%1$d %% 最快速度:%1$.2f 公里/小時 (%2$.1f 英里/小時) - 最低海拔:%1$d 公尺 (%2$d 英尺) + 最低海拔:%1$d 公尺 (%2$d 英尺) 最小坡度:%1$d %% 移動時間:%1$s 速度 (分鐘/英里) @@ -248,7 +248,7 @@ 平均移動速度 平均速度 平均速度 - 海拔高度 + 海拔高度 最快速度 增加 坡度 diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml index 97d51c058..454213679 100644 --- a/src/main/res/values-zh-rTW/strings.xml +++ b/src/main/res/values-zh-rTW/strings.xml @@ -71,9 +71,9 @@ 平均移動速度:%1$.2f 公里/小時 (%2$.1f 英里/小時) 平均速度:%1$s 分鐘/公里 (%2$s 分鐘/英里) 平均速度:%1$.2f 公里/小時 (%2$.1f 英里/小時) - 爬升高度:%1$d 公尺 (%2$d 英尺) - 海拔高度 (英尺) - 海拔高度 (公尺) + 爬升高度:%1$d 公尺 (%2$d 英尺) + 海拔高度 (英尺) + 海拔高度 (公尺) 最快速度:%1$s 分鐘/公里 (%2$s 分鐘/英里) 精確度 (公尺) 海拔高度 (公尺) @@ -81,10 +81,10 @@ 緯度 (度) 經度 (度) 速度 (公尺/秒) - 最高海拔:%1$d 公尺 (%2$d 英尺) + 最高海拔:%1$d 公尺 (%2$d 英尺) 最大坡度:%1$d %% 最快速度:%1$.2f 公里/小時 (%2$.1f 英里/小時) - 最低海拔:%1$d 公尺 (%2$d 英尺) + 最低海拔:%1$d 公尺 (%2$d 英尺) 最小坡度:%1$d %% 移動時間:%1$s 速度 (分鐘/英里) @@ -248,7 +248,7 @@ 平均移動速度 平均速度 平均速度 - 海拔高度 + 海拔高度 最快速度 增加 坡度 diff --git a/src/main/res/values-zh/strings.xml b/src/main/res/values-zh/strings.xml index 290b49c23..bcd9b47f1 100644 --- a/src/main/res/values-zh/strings.xml +++ b/src/main/res/values-zh/strings.xml @@ -87,9 +87,9 @@ limitations under the License. 平均移动速度:%1$.2f 公里/小时(%2$.1f 英里/小时) 平均步速:%1$s分钟/公里(%2$s分钟/英里) 平均时速:%1$.2f 公里/小时(%2$.1f 英里/小时) - 海拔升高:%1$d 米(%2$d 英尺) - 海拔(英尺) - 海拔(米) + 海拔升高:%1$d 米(%2$d 英尺) + 海拔(英尺) + 海拔(米) 最快步速:%1$s分钟/公里(%2$s分钟/英里) 精度(米) 海拔高度(米) @@ -97,10 +97,10 @@ limitations under the License. 纬度(度) 经度(度) 速度(米/秒) - 最高海拔:%1$d 米(%2$d 英尺) + 最高海拔:%1$d 米(%2$d 英尺) 最大坡度:%1$d %% 最高限速:%1$.2f 公里/小时(%2$.1f 英里/小时) - 最低海拔:%1$d 米(%2$d 英尺) + 最低海拔:%1$d 米(%2$d 英尺) 最小坡度:%1$d %% 移动时间:%1$s 步速(分钟/英里) @@ -289,7 +289,7 @@ limitations under the License. 平均移动速度 平均步速 平均速度 - 海拔 + 海拔 最快步速 爬高 坡度 @@ -476,6 +476,6 @@ limitations under the License. 作为 GPX 文件打开 电动车 请先安装一个支持展示地图数据的应用。 - 海拔降低:%1$d 米(%2$d 英尺) + 海拔降低:%1$d 米(%2$d 英尺) 按活动类型 \ No newline at end of file diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml index 7ce31f0d3..b1f8d8548 100644 --- a/src/main/res/values/colors.xml +++ b/src/main/res/values/colors.xml @@ -16,8 +16,8 @@ limitations under the License. #FFF128F3 #40F128F3 - #FF339933 - #40B3CFB3 + #FF339933 + #40B3CFB3 #FFCC3300 #40E88A70 #FF0066FF diff --git a/src/main/res/values/settings.xml b/src/main/res/values/settings.xml index ffaf84cb7..e6640f95e 100644 --- a/src/main/res/values/settings.xml +++ b/src/main/res/values/settings.xml @@ -4,8 +4,8 @@ statsShowCoordinate false - statsShowGradeElevation - true + statsShowGradeElevation + true trackdetail_show_on_lockscreen_while_recording false diff --git a/src/main/res/values/settings_deprecated.xml b/src/main/res/values/settings_deprecated.xml index edc949ab8..69eb2061a 100644 --- a/src/main/res/values/settings_deprecated.xml +++ b/src/main/res/values/settings_deprecated.xml @@ -43,8 +43,8 @@ true - chartShowElevation - + chartShowElevation + true diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 2dd14d496..f2440509a 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -175,10 +175,10 @@ limitations under the License. Average moving speed: %1$.2f km/h (%2$.1f mi/h) Average pace: %1$s min/km (%2$s min/mi) Average speed: %1$.2f km/h (%2$.1f mi/h) - Elevation gain: %1$d m (%2$d ft) - Elevation loss: %1$d m (%2$d ft) - Elevation (ft) - Elevation (m) + Elevation gain: %1$d m (%2$d ft) + Elevation loss: %1$d m (%2$d ft) + Elevation (ft) + Elevation (m) Fastest pace: %1$s min/km (%2$s min/mi) Accuracy (m) Altitude (m) @@ -186,10 +186,10 @@ limitations under the License. Latitude (deg) Longitude (deg) Speed (m/s) - Max elevation: %1$d m (%2$d ft) + Max elevation: %1$d m (%2$d ft) Max grade: %1$d %% Max speed: %1$.2f km/h (%2$.1f mi/h) - Min elevation: %1$d m (%2$d ft) + Min elevation: %1$d m (%2$d ft) Min grade: %1$d %% Moving time: %1$s Pace (min/mi) @@ -444,7 +444,7 @@ limitations under the License. Avg moving speed Avg pace Avg speed - Elevation + Elevation Fastest pace Gain Loss diff --git a/src/main/res/xml/settings.xml b/src/main/res/xml/settings.xml index 0eaace250..3cda5767f 100644 --- a/src/main/res/xml/settings.xml +++ b/src/main/res/xml/settings.xml @@ -44,9 +44,9 @@ limitations under the License. + android:defaultValue="@bool/stats_show_altitude_default" + android:key="@string/stats_show_grade_altitude_key" + android:title="@string/stats_altitude" />