From af8d9c08ab6e62319a8eec103aa846107a56eb98 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 4 Jul 2021 09:18:51 +0200 Subject: [PATCH] IntervalStatistics: format gain/loss like on StatisticsRecordingFragment. --- .../adapters/IntervalStatisticsAdapter.java | 4 ++-- .../fragments/StatisticsRecordedFragment.java | 4 ++-- .../StatisticsRecordingFragment.java | 6 +++--- .../opentracks/util/StringUtils.java | 20 ++++++++++++------- .../viewmodels/IntervalStatistics.java | 4 ++-- src/main/res/values/do_not_translate.xml | 1 + 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java b/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java index 0c598d1e0..7f0fb6f4b 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.formatAltitude(getContext(), altitudeGain_m, preferenceMetricUnits); + parts = StringUtils.getAltitudeParts(getContext(), altitudeGain_m, preferenceMetricUnits); viewBinding.statsAltitudeGainValue.setText(parts.first); viewBinding.statsAltitudeGainUnit.setText(parts.second); - parts = StringUtils.formatAltitude(getContext(), altitudeLoss_m, preferenceMetricUnits); + parts = StringUtils.getAltitudeParts(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 b0ca3345a..65dc774ac 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java @@ -189,12 +189,12 @@ public class StatisticsRecordingFragment extends Fragment { } { - Pair parts = StringUtils.formatAltitude(getContext(), recordingData.getTrackStatistics().getTotalAltitudeGain(), preferenceMetricUnits); + Pair parts = StringUtils.getAltitudeParts(getContext(), recordingData.getTrackStatistics().getTotalAltitudeGain(), preferenceMetricUnits); viewBinding.statsAltitudeGainValue.setText(parts.first); viewBinding.statsAltitudeGainUnit.setText(parts.second); } { - Pair parts = StringUtils.formatAltitude(getContext(), recordingData.getTrackStatistics().getTotalAltitudeLoss(), preferenceMetricUnits); + Pair parts = StringUtils.getAltitudeParts(getContext(), recordingData.getTrackStatistics().getTotalAltitudeLoss(), preferenceMetricUnits); viewBinding.statsAltitudeLossValue.setText(parts.first); viewBinding.statsAltitudeLossUnit.setText(parts.second); } @@ -283,7 +283,7 @@ public class StatisticsRecordingFragment extends Fragment { labelId = latestTrackPoint.getAltitude().getLabelId(); } - Pair parts = StringUtils.formatAltitude(getContext(), altitude, preferenceMetricUnits); + Pair parts = StringUtils.getAltitudeParts(getContext(), altitude, preferenceMetricUnits); viewBinding.statsAltitudeCurrentValue.setText(parts.first); viewBinding.statsAltitudeCurrentUnit.setText(parts.second); diff --git a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java index a77a23d9b..885866348 100644 --- a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java @@ -278,16 +278,22 @@ public class StringUtils { /** * @return the formatted altitude_m (or null) and it's unit as {@link Pair} */ - public static Pair formatAltitude(Context context, Float altitude_m, boolean metricUnits) { - String value = context.getString(R.string.value_unknown); + public static Pair getAltitudeParts(Context context, Float altitude_m, boolean metricUnits) { + String formattedValue = context.getString(R.string.value_unknown); String unit = context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet); + if (altitude_m != null) { - if (!metricUnits) { - altitude_m *= (float) UnitConversions.M_TO_FT; - } - value = StringUtils.formatDecimal(altitude_m, 0); + double value = Distance.of(altitude_m).toM_FT(metricUnits); + formattedValue = StringUtils.formatDecimal(value, 0); } - return new Pair<>(value, unit); + + return new Pair<>(formattedValue, unit); + } + + public static String formatAltitude(Context context, Float altitude_m, boolean metricUnits) { + Pair distanceParts = getAltitudeParts(context, altitude_m, metricUnits); + + return context.getString(R.string.altitude_with_unit, distanceParts.first, distanceParts.second); } public static String valueInParentheses(String text) { diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java index 46ee4acd1..f2657b06d 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java @@ -146,7 +146,7 @@ public class IntervalStatistics { return gain_m != null; } - public float getGain_m() { + public Float getGain_m() { return gain_m; } @@ -154,7 +154,7 @@ public class IntervalStatistics { return loss_m != null; } - public float getLoss_m() { + public Float getLoss_m() { return loss_m; } diff --git a/src/main/res/values/do_not_translate.xml b/src/main/res/values/do_not_translate.xml index 2a760fe49..c43d744ef 100644 --- a/src/main/res/values/do_not_translate.xml +++ b/src/main/res/values/do_not_translate.xml @@ -28,6 +28,7 @@ limitations under the License. %1$s %2$s %1$s %2$s + %1$s %2$s %1$d:%2$02d