From e0111c2ffd29d0149b2f58e741266116d2de507f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n=20Mart=C3=ADnez?= Date: Tue, 7 Sep 2021 11:53:25 +0200 Subject: [PATCH] Gain and loss are integers. --- .../adapters/IntervalStatisticsAdapter.java | 4 ++-- .../fragments/StatisticsRecordedFragment.java | 4 ++-- .../file/exporter/SharePictureTrackExporter.java | 2 +- .../dennisguse/opentracks/util/StringUtils.java | 15 +++++++++++++++ .../viewmodels/StatisticDataBuilder.java | 4 ++-- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java b/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java index 7f0fb6f4b..df247ab38 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java @@ -59,8 +59,8 @@ public class IntervalStatisticsAdapter extends RecyclerView.Adapter parts; - parts = StringUtils.getAltitudeParts(getContext(), altitudeGain_m, preferenceMetricUnits); + parts = StringUtils.getAltitudeChangeParts(getContext(), altitudeGain_m, preferenceMetricUnits); viewBinding.statsAltitudeGainValue.setText(parts.first); viewBinding.statsAltitudeGainUnit.setText(parts.second); - parts = StringUtils.getAltitudeParts(getContext(), altitudeLoss_m, preferenceMetricUnits); + parts = StringUtils.getAltitudeChangeParts(getContext(), altitudeLoss_m, preferenceMetricUnits); viewBinding.statsAltitudeLossValue.setText(parts.first); viewBinding.statsAltitudeLossUnit.setText(parts.second); diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java index af9246d91..1abea2569 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java @@ -66,7 +66,7 @@ public class SharePictureTrackExporter implements TrackExporter { viewBinding.sharePictureTotalTime.setText(StringUtils.formatElapsedTimeWithHour(track.getTrackStatistics().getTotalTime())); viewBinding.sharePictureTotalDistance.setText(StringUtils.formatDistance(context, track.getTrackStatistics().getTotalDistance(), metricUnits)); - viewBinding.sharePictureGain.setText(StringUtils.formatAltitude(context, trackStatistics.getTotalAltitudeGain(), metricUnits)); + viewBinding.sharePictureGain.setText(StringUtils.formatAltitudeChange(context, trackStatistics.getTotalAltitudeGain(), metricUnits)); // prepare rendering View view = viewBinding.getRoot(); diff --git a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java index a4129a718..28bb2cc95 100644 --- a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java @@ -341,6 +341,21 @@ public class StringUtils { return context.getString(R.string.altitude_with_unit, distanceParts.first, distanceParts.second); } + /** + * @return the formatted altitudeDifference_m (or null) and it's unit as {@link Pair} + */ + public static Pair getAltitudeChangeParts(Context context, Float altitudeDifference_m, boolean metricUnits) { + String formattedValue = altitudeDifference_m != null ? String.valueOf((int) Distance.of(altitudeDifference_m).toM_FT(metricUnits)) : context.getString(R.string.value_unknown); + String unit = context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet); + return new Pair<>(formattedValue, unit); + } + + public static String formatAltitudeChange(Context context, Float altitude_m, boolean metricUnits) { + Pair distanceParts = getAltitudeChangeParts(context, altitude_m, metricUnits); + + return context.getString(R.string.altitude_with_unit, distanceParts.first, distanceParts.second); + } + public static String valueInParentheses(String text) { return "(" + text + ")"; } diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java index 40318dc83..eca0ecfb4 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java @@ -84,10 +84,10 @@ public class StatisticDataBuilder { description = latestTrackPoint != null && latestTrackPoint.hasAltitude() ? context.getString(latestTrackPoint.getAltitude().getLabelId()) : null; valueAndUnit = StringUtils.getAltitudeParts(context, altitude, metricUnits); } else if (fieldKey.equals(context.getString(R.string.stats_custom_layout_gain_key))) { - valueAndUnit = StringUtils.getAltitudeParts(context, recordingData.getTrackStatistics().getTotalAltitudeGain(), metricUnits); + valueAndUnit = StringUtils.getAltitudeChangeParts(context, recordingData.getTrackStatistics().getTotalAltitudeGain(), metricUnits); title = context.getString(R.string.stats_gain); } else if (fieldKey.equals(context.getString(R.string.stats_custom_layout_loss_key))) { - valueAndUnit = StringUtils.getAltitudeParts(context, recordingData.getTrackStatistics().getTotalAltitudeLoss(), metricUnits); + valueAndUnit = StringUtils.getAltitudeChangeParts(context, recordingData.getTrackStatistics().getTotalAltitudeLoss(), metricUnits); title = context.getString(R.string.stats_loss); } else if (fieldKey.equals(context.getString(R.string.stats_custom_layout_coordinates_key))) { title = context.getString(R.string.stats_coordinates);