From e9d1080e5db50a6c683d90ffef8446dfbc695bff Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Thu, 16 Oct 2025 22:40:10 +0200 Subject: [PATCH] Cleanup: SpeedFormatter doesn't support decimal places. --- .../data/models/DistanceFormatterTest.java | 6 ++-- .../data/models/SpeedFormatterTest.java | 7 ---- .../data/models/DistanceFormatter.java | 32 +++++++++---------- .../data/models/SpeedFormatter.java | 19 +++-------- .../opentracks/settings/PreferencesUtils.java | 8 ++--- .../settings/RecordingSettingsFragment.java | 2 +- .../settings/SensorsSettingsFragment.java | 2 +- .../ui/intervals/IntervalsFragment.java | 4 +-- .../opentracks/util/StringUtils.java | 2 +- 9 files changed, 33 insertions(+), 49 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/data/models/DistanceFormatterTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/models/DistanceFormatterTest.java index 61bd210d1..dd99a3c46 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/data/models/DistanceFormatterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/models/DistanceFormatterTest.java @@ -21,7 +21,7 @@ public class DistanceFormatterTest { @Test public void testFormatDistance_metric() { DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(2) + .setDecimalPlaces(2) .setUnit(UnitSystem.METRIC) .build(context); @@ -34,7 +34,7 @@ public class DistanceFormatterTest { @Test public void testFormatDistance_imperial() { DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(2) + .setDecimalPlaces(2) .setUnit(UnitSystem.IMPERIAL_FEET) .build(context); @@ -47,7 +47,7 @@ public class DistanceFormatterTest { @Test public void testFormatDistance_nautical() { DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(2) + .setDecimalPlaces(2) .setUnit(UnitSystem.NAUTICAL_IMPERIAL) .build(context); diff --git a/src/androidTest/java/de/dennisguse/opentracks/data/models/SpeedFormatterTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/models/SpeedFormatterTest.java index 7a7618d2d..0bcfd6dde 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/data/models/SpeedFormatterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/models/SpeedFormatterTest.java @@ -21,7 +21,6 @@ public class SpeedFormatterTest { @Test public void testGetSpeedParts_pace_metric() { SpeedFormatter formatter = SpeedFormatter.Builder() - .setDecimalCount(2) .setUnit(UnitSystem.METRIC) .setReportSpeedOrPace(false) .build(context); @@ -35,7 +34,6 @@ public class SpeedFormatterTest { @Test public void testGetSpeedParts_pace_imperial() { SpeedFormatter formatter = SpeedFormatter.Builder() - .setDecimalCount(2) .setUnit(UnitSystem.IMPERIAL_FEET) .setReportSpeedOrPace(false) .build(context); @@ -47,7 +45,6 @@ public class SpeedFormatterTest { @Test public void testGetSpeedParts_pace_nautical() { SpeedFormatter formatter = SpeedFormatter.Builder() - .setDecimalCount(2) .setUnit(UnitSystem.NAUTICAL_IMPERIAL) .setReportSpeedOrPace(false) .build(context); @@ -59,7 +56,6 @@ public class SpeedFormatterTest { @Test public void testGetSpeedParts_speed_metric() { SpeedFormatter formatter = SpeedFormatter.Builder() - .setDecimalCount(2) .setUnit(UnitSystem.METRIC) .setReportSpeedOrPace(true) .build(context); @@ -71,7 +67,6 @@ public class SpeedFormatterTest { @Test public void testGetSpeedParts_speed_imperial() { SpeedFormatter formatter = SpeedFormatter.Builder() - .setDecimalCount(2) .setUnit(UnitSystem.IMPERIAL_FEET) .setReportSpeedOrPace(true) .build(context); @@ -83,7 +78,6 @@ public class SpeedFormatterTest { @Test public void testGetSpeedParts_speed_nautical() { SpeedFormatter formatter = SpeedFormatter.Builder() - .setDecimalCount(2) .setUnit(UnitSystem.NAUTICAL_IMPERIAL) .setReportSpeedOrPace(true) .build(context); @@ -95,7 +89,6 @@ public class SpeedFormatterTest { @Test public void testFormatSpeed() { SpeedFormatter formatter = SpeedFormatter.Builder() - .setDecimalCount(2) .setUnit(UnitSystem.METRIC) .setReportSpeedOrPace(false) .build(context); diff --git a/src/main/java/de/dennisguse/opentracks/data/models/DistanceFormatter.java b/src/main/java/de/dennisguse/opentracks/data/models/DistanceFormatter.java index 1be2a1e5f..62ab5cc25 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/DistanceFormatter.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/DistanceFormatter.java @@ -14,15 +14,15 @@ public class DistanceFormatter { private final Resources resources; - private final int decimalCount; + private final int decimalPlaces; private final double threshold; private final UnitSystem unitSystem; - private DistanceFormatter(Resources resources, int decimalCount, double threshold, UnitSystem unitSystem) { + private DistanceFormatter(Resources resources, int decimalPlaces, double threshold, UnitSystem unitSystem) { this.resources = resources; - this.decimalCount = decimalCount; + this.decimalPlaces = decimalPlaces; this.threshold = threshold; this.unitSystem = unitSystem; assert unitSystem != null; @@ -57,30 +57,30 @@ public class DistanceFormatter { switch (unitSystem) { case METRIC -> { if (distance.greaterThan(Distance.ofKilometer(threshold))) { - return new Pair<>(StringUtils.formatDecimal(distance.toKM(), decimalCount), resources.getString(R.string.unit_kilometer)); + return new Pair<>(StringUtils.formatDecimal(distance.toKM(), decimalPlaces), resources.getString(R.string.unit_kilometer)); } else { - return new Pair<>(StringUtils.formatDecimal(distance.toM(), decimalCount), resources.getString(R.string.unit_meter)); + return new Pair<>(StringUtils.formatDecimal(distance.toM(), decimalPlaces), resources.getString(R.string.unit_meter)); } } case IMPERIAL_FEET -> { if (distance.greaterThan(Distance.ofMile(threshold))) { - return new Pair<>(StringUtils.formatDecimal(distance.toMI(), decimalCount), resources.getString(R.string.unit_mile)); + return new Pair<>(StringUtils.formatDecimal(distance.toMI(), decimalPlaces), resources.getString(R.string.unit_mile)); } else { - return new Pair<>(StringUtils.formatDecimal(distance.toFT(), decimalCount), resources.getString(R.string.unit_feet)); + return new Pair<>(StringUtils.formatDecimal(distance.toFT(), decimalPlaces), resources.getString(R.string.unit_feet)); } } case IMPERIAL_METER -> { if (distance.greaterThan(Distance.ofMile(threshold))) { - return new Pair<>(StringUtils.formatDecimal(distance.toMI(), decimalCount), resources.getString(R.string.unit_mile)); + return new Pair<>(StringUtils.formatDecimal(distance.toMI(), decimalPlaces), resources.getString(R.string.unit_mile)); } else { - return new Pair<>(StringUtils.formatDecimal(distance.toM(), decimalCount), resources.getString(R.string.unit_meter)); + return new Pair<>(StringUtils.formatDecimal(distance.toM(), decimalPlaces), resources.getString(R.string.unit_meter)); } } case NAUTICAL_IMPERIAL -> { if (distance.greaterThan(Distance.ofNauticalMile(threshold))) { - return new Pair<>(StringUtils.formatDecimal(distance.toNauticalMiles(), decimalCount), resources.getString(R.string.unit_nautical_mile)); + return new Pair<>(StringUtils.formatDecimal(distance.toNauticalMiles(), decimalPlaces), resources.getString(R.string.unit_nautical_mile)); } else { - return new Pair<>(StringUtils.formatDecimal(distance.toFT(), decimalCount), resources.getString(R.string.unit_feet)); + return new Pair<>(StringUtils.formatDecimal(distance.toFT(), decimalPlaces), resources.getString(R.string.unit_feet)); } } default -> throw new RuntimeException("Not implemented"); @@ -93,19 +93,19 @@ public class DistanceFormatter { public static class Builder { - private int decimalCount; + private int decimalPlaces; private UnitSystem unitSystem; private double threshold; public Builder() { - decimalCount = 2; + decimalPlaces = 2; threshold = 0.5; } - public Builder setDecimalCount(int decimalCount) { - this.decimalCount = decimalCount; + public Builder setDecimalPlaces(int decimalPlaces) { + this.decimalPlaces = decimalPlaces; return this; } @@ -120,7 +120,7 @@ public class DistanceFormatter { } public DistanceFormatter build(Resources resource) { - return new DistanceFormatter(resource, decimalCount, threshold, unitSystem); + return new DistanceFormatter(resource, decimalPlaces, threshold, unitSystem); } public DistanceFormatter build(Context context) { diff --git a/src/main/java/de/dennisguse/opentracks/data/models/SpeedFormatter.java b/src/main/java/de/dennisguse/opentracks/data/models/SpeedFormatter.java index 038b489ac..92ea4f741 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/SpeedFormatter.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/SpeedFormatter.java @@ -12,17 +12,16 @@ import de.dennisguse.opentracks.util.StringUtils; public class SpeedFormatter { - private final Resources resources; + private final int DECIMAL_PLACES = 1; - private final int decimalCount; + private final Resources resources; private final UnitSystem unitSystem; private final boolean reportSpeedOrPace; - private SpeedFormatter(Resources resources, int decimalCount, UnitSystem unitSystem, boolean reportSpeedOrPace) { + private SpeedFormatter(Resources resources, UnitSystem unitSystem, boolean reportSpeedOrPace) { this.resources = resources; - this.decimalCount = decimalCount; this.unitSystem = unitSystem; this.reportSpeedOrPace = reportSpeedOrPace; } @@ -55,7 +54,7 @@ public class SpeedFormatter { } if (reportSpeedOrPace) { - return new Pair<>(StringUtils.formatDecimal(speed.to(unitSystem), 1), unitString); + return new Pair<>(StringUtils.formatDecimal(speed.to(unitSystem), DECIMAL_PLACES), unitString); } int pace = (int) speed.toPace(unitSystem).getSeconds(); @@ -71,22 +70,14 @@ public class SpeedFormatter { public static class Builder { - private int decimalCount; - private UnitSystem unitSystem; private boolean reportSpeedOrPace; public Builder() { - decimalCount = 2; reportSpeedOrPace = true; } - public Builder setDecimalCount(int decimalCount) { - this.decimalCount = decimalCount; - return this; - } - public Builder setUnit(@NonNull UnitSystem unitSystem) { this.unitSystem = unitSystem; return this; @@ -98,7 +89,7 @@ public class SpeedFormatter { } public SpeedFormatter build(Resources resource) { - return new SpeedFormatter(resource, decimalCount, unitSystem, reportSpeedOrPace); + return new SpeedFormatter(resource, unitSystem, reportSpeedOrPace); } public SpeedFormatter build(Context context) { diff --git a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java index a9a12b6b2..b05abf1d4 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java +++ b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java @@ -396,7 +396,7 @@ public class PreferencesUtils { UnitSystem unitSystem = getUnitSystem(); DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setUnit(unitSystem) .build(resources); for (int i = 0; i < entryValues.length; i++) { @@ -503,7 +503,7 @@ public class PreferencesUtils { DistanceFormatter formatter = DistanceFormatter.Builder() .setUnit(unitSystem) - .setDecimalCount(0) + .setDecimalPlaces(0) .setThreshold(Double.MAX_VALUE) .build(resources); for (int i = 0; i < entryValues.length; i++) { @@ -546,7 +546,7 @@ public class PreferencesUtils { UnitSystem unitSystem = getUnitSystem(); DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setThreshold(Double.MAX_VALUE) .setUnit(unitSystem) .build(resources); @@ -619,7 +619,7 @@ public class PreferencesUtils { UnitSystem unitSystem = getUnitSystem(); DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setThreshold(Double.MAX_VALUE) .setUnit(unitSystem) .build(resources); diff --git a/src/main/java/de/dennisguse/opentracks/settings/RecordingSettingsFragment.java b/src/main/java/de/dennisguse/opentracks/settings/RecordingSettingsFragment.java index 83fc5aac0..7408de78f 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/RecordingSettingsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/settings/RecordingSettingsFragment.java @@ -18,7 +18,7 @@ public class RecordingSettingsFragment extends PreferenceFragmentCompat { UnitSystem unitSystem = PreferencesUtils.getUnitSystem(); final DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setUnit(unitSystem) .build(getContext()); diff --git a/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java b/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java index 8a04fd3bc..c614340a3 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java @@ -31,7 +31,7 @@ public class SensorsSettingsFragment extends PreferenceFragmentCompat { UnitSystem unitSystem = PreferencesUtils.getUnitSystem(); final DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setUnit(unitSystem) .build(getContext()); diff --git a/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalsFragment.java b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalsFragment.java index 446f4ac04..7c814210e 100644 --- a/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalsFragment.java @@ -114,7 +114,7 @@ public class IntervalsFragment extends Fragment { TextView v = (TextView) super.getView(position, convertView, parent); DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setUnit(unitSystem) .build(getContext()); @@ -200,7 +200,7 @@ public class IntervalsFragment extends Fragment { private void setIntervalsDropdownText() { DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setUnit(unitSystem) .build(getContext()); diff --git a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java index b06201ae0..a5416afde 100644 --- a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java @@ -233,7 +233,7 @@ public class StringUtils { //TODO altitude_m should be double or a value object public static Pair getAltitudeParts(Context context, Float altitude_m, UnitSystem unitSystem) { DistanceFormatter formatter = DistanceFormatter.Builder() - .setDecimalCount(0) + .setDecimalPlaces(0) .setThreshold(Double.MAX_VALUE) .setUnit(unitSystem) .build(context);