From e5785dd3ac5ed232cf08a4e16f6f2cbbf0eb1676 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Fri, 1 Jul 2022 17:14:47 +0200 Subject: [PATCH] Distance now does all conversions itself. --- .../opentracks/data/models/Distance.java | 27 +++++++--- .../data/models/UnitConversions.java | 49 ------------------- .../share/DescriptionGenerator.java | 3 +- 3 files changed, 21 insertions(+), 58 deletions(-) delete mode 100644 src/main/java/de/dennisguse/opentracks/data/models/UnitConversions.java diff --git a/src/main/java/de/dennisguse/opentracks/data/models/Distance.java b/src/main/java/de/dennisguse/opentracks/data/models/Distance.java index acd222c92..26cad028f 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/Distance.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Distance.java @@ -34,15 +34,15 @@ public class Distance { } public static Distance ofMile(double distance_mile) { - return of(distance_mile * UnitConversions.MI_TO_M); + return of(distance_mile * MI_TO_M); } public static Distance ofNauticalMile(double distance_mile) { - return of(distance_mile * UnitConversions.NAUTICAL_MILE_TO_M); + return of(distance_mile * NAUTICAL_MILE_TO_M); } public static Distance ofKilometer(double distance_km) { - return of(distance_km * UnitConversions.KM_TO_M); + return of(distance_km * KM_TO_M); } public static Distance ofMM(double distance_mm) { @@ -117,19 +117,19 @@ public class Distance { } public double toKM() { - return distance_m * UnitConversions.M_TO_KM; + return distance_m * M_TO_KM; } public double toFT() { - return distance_m * UnitConversions.M_TO_FT; + return distance_m * M_TO_FT; } public double toMI() { - return toKM() * UnitConversions.KM_TO_MI; + return distance_m * M_TO_MI; } public double toNauticalMiles() { - return toKM() * UnitConversions.KM_TO_NAUTICAL_MILE; + return distance_m * M_TO_NAUTICAL_MILE; } public double toKM_Miles(UnitSystem unitSystem) { @@ -177,4 +177,17 @@ public class Distance { "distance_m=" + distance_m + '}'; } + + // multiplication factors for conversion + private static final double KM_TO_M = 1000.0; + private static final double M_TO_KM = 1 / KM_TO_M; + + public static final double MI_TO_M = 1609.344; + public static final double M_TO_MI = 1 / MI_TO_M; + + private static final double MI_TO_FT = 5280.0; + public static final double M_TO_FT = M_TO_MI * MI_TO_FT; + + private static final double NAUTICAL_MILE_TO_M = 1852.0; + private static final double M_TO_NAUTICAL_MILE = 1 / NAUTICAL_MILE_TO_M; } diff --git a/src/main/java/de/dennisguse/opentracks/data/models/UnitConversions.java b/src/main/java/de/dennisguse/opentracks/data/models/UnitConversions.java deleted file mode 100644 index ea6b570db..000000000 --- a/src/main/java/de/dennisguse/opentracks/data/models/UnitConversions.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2008 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package de.dennisguse.opentracks.data.models; - -/** - * Unit conversion constants. - * - * @author Sandor Dornbush - */ -public class UnitConversions { - - // multiplication factor to convert kilometers to miles - public static final double KM_TO_MI = 0.621371192; - - // Distance //TODO Make private to Distance class! - // multiplication factor to convert miles to feet - private static final double MI_TO_FT = 5280.0; - // multiplication factor to covert kilometers to meters - public static final double KM_TO_M = 1000.0; - // multiplication factor to convert meters to kilometers - public static final double M_TO_KM = 1 / KM_TO_M; - // multiplication factor to convert meters to miles - public static final double M_TO_MI = M_TO_KM * KM_TO_MI; - // multiplication factor to convert meters to feet - public static final double M_TO_FT = M_TO_MI * MI_TO_FT; - public static final double NAUTICAL_MILE_TO_M = 1852.0; - public static final double M_TO_NAUTICAL_MILE = 1 / NAUTICAL_MILE_TO_M; - public static final double KM_TO_NAUTICAL_MILE = 1000 * M_TO_NAUTICAL_MILE; - // multiplication factor to convert miles to km - public static final double MI_TO_KM = 1 / KM_TO_MI; - // multiplication factor to convert miles to m - public static final double MI_TO_M = MI_TO_KM * KM_TO_M; - - private UnitConversions() { - } -} diff --git a/src/main/java/de/dennisguse/opentracks/share/DescriptionGenerator.java b/src/main/java/de/dennisguse/opentracks/share/DescriptionGenerator.java index 50efb9511..f2c80763a 100644 --- a/src/main/java/de/dennisguse/opentracks/share/DescriptionGenerator.java +++ b/src/main/java/de/dennisguse/opentracks/share/DescriptionGenerator.java @@ -30,7 +30,6 @@ import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.Speed; import de.dennisguse.opentracks.data.models.SpeedFormatter; import de.dennisguse.opentracks.data.models.Track; -import de.dennisguse.opentracks.data.models.UnitConversions; import de.dennisguse.opentracks.settings.UnitSystem; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.StringUtils; @@ -230,7 +229,7 @@ public class DescriptionGenerator { @VisibleForTesting 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); + long altitudeInFt = Math.round(Distance.of(altitude_m).toFT()); builder.append(context.getString(resId, altitudeInM, altitudeInFt)); builder.append(lineBreak); }