diff --git a/MyTracks/src/com/google/android/apps/mytracks/ChartActivity.java b/MyTracks/src/com/google/android/apps/mytracks/ChartActivity.java index 5d03c5258..e6c06f248 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/ChartActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/ChartActivity.java @@ -300,7 +300,7 @@ public class ChartActivity extends Activity implements TrackDataListener { profileLength += d * UnitConversions.KM_TO_MI; } } - timeOrDistance = profileLength / 1000.0; + timeOrDistance = profileLength * UnitConversions.M_TO_KM; break; case BY_TIME: if (startTime == -1) { @@ -328,7 +328,7 @@ public class ChartActivity extends Activity implements TrackDataListener { && (location.getSpeed() <= trackMaxSpeed)) { speedBuffer.setNext(location.getSpeed()); } - speed = speedBuffer.getAverage() * 3.6; + speed = speedBuffer.getAverage() * UnitConversions.MS_TO_KMH; if (!metricUnits) { speed *= UnitConversions.KM_TO_MI; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/ChartView.java b/MyTracks/src/com/google/android/apps/mytracks/ChartView.java index 7116a5741..5ef92ca7c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/ChartView.java +++ b/MyTracks/src/com/google/android/apps/mytracks/ChartView.java @@ -408,11 +408,12 @@ public class ChartView extends View { } private int getWaypointX(Waypoint waypoint) { - return (mode == Mode.BY_DISTANCE) - ? getX(metricUnits - ? waypoint.getLength() / 1000.0 - : waypoint.getLength() * UnitConversions.KM_TO_MI / 1000.0) - : getX(waypoint.getDuration()); + if (mode == Mode.BY_DISTANCE) { + double lenghtInKm = waypoint.getLength() * UnitConversions.M_TO_KM; + return getX(metricUnits ? lenghtInKm : lenghtInKm * UnitConversions.KM_TO_MI); + } else { + return getX(waypoint.getDuration()); + } } /** diff --git a/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java b/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java index cbd7e23dd..7218936f6 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java @@ -22,6 +22,7 @@ import com.google.android.apps.mytracks.maps.TrackPathPainter; import com.google.android.apps.mytracks.maps.TrackPathPainterFactory; import com.google.android.apps.mytracks.maps.TrackPathUtilities; import com.google.android.apps.mytracks.util.LocationUtils; +import com.google.android.apps.mytracks.util.UnitConversions; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; @@ -103,7 +104,7 @@ public class MapOverlay extends Overlay implements OnSharedPreferenceChangeListe public CachedLocation(Location location) { this.valid = LocationUtils.isValidLocation(location); this.geoPoint = valid ? LocationUtils.getGeoPoint(location) : null; - this.speed = (int) Math.floor(location.getSpeed() * 3.6); + this.speed = (int) Math.floor(location.getSpeed() * UnitConversions.MS_TO_KMH); } }; diff --git a/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java index 62cc273fe..76af12627 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java @@ -502,7 +502,7 @@ public class SettingsActivity extends PreferenceActivity { format = getString(stringId); options[i] = String.format(format, value); } else { - double mile = value / UnitConversions.MI_TO_FEET; + double mile = value * UnitConversions.FT_TO_MI; format = getString(R.string.value_float_mile); options[i] = String.format(format, mile); } @@ -545,7 +545,7 @@ public class SettingsActivity extends PreferenceActivity { } options[i] = String.format(format, value); } else { - double mile = value / UnitConversions.MI_TO_FEET; + double mile = value * UnitConversions.FT_TO_MI; if (values[i].equals(GPS_ACCURACY_POOR)) { format = getString(R.string.value_float_mile_poor_gps); } else { @@ -644,7 +644,7 @@ public class SettingsActivity extends PreferenceActivity { String metricspeed = prefs.getString(getString(id), null); int englishspeed; try { - englishspeed = (int) (Double.parseDouble(metricspeed) * UnitConversions.KMH_TO_MPH); + englishspeed = (int) (Double.parseDouble(metricspeed) * UnitConversions.KM_TO_MI); } catch (NumberFormatException e) { englishspeed = 0; } @@ -663,7 +663,7 @@ public class SettingsActivity extends PreferenceActivity { // Convert miles/h to km/h try { metricspeed = String.valueOf( - (int) (Double.parseDouble(newValue) * UnitConversions.MPH_TO_KMH) + 1); + (int) (Double.parseDouble(newValue) * UnitConversions.MI_TO_KM)); } catch (NumberFormatException e) { metricspeed = "0"; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/StatsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/StatsActivity.java index 7ecad6d02..253f51d82 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/StatsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/StatsActivity.java @@ -23,6 +23,7 @@ import com.google.android.apps.mytracks.content.TrackDataHub.ListenerDataType; import com.google.android.apps.mytracks.content.TrackDataListener; import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.services.ServiceUtils; +import com.google.android.apps.mytracks.util.UnitConversions; import com.google.android.maps.mytracks.R; import android.app.Activity; @@ -190,7 +191,7 @@ public class StatsActivity extends Activity implements TrackDataListener { utils.setAltitude(R.id.elevation_register, l.getAltitude()); utils.setLatLong(R.id.latitude_register, l.getLatitude()); utils.setLatLong(R.id.longitude_register, l.getLongitude()); - utils.setSpeed(R.id.speed_register, l.getSpeed() * 3.6); + utils.setSpeed(R.id.speed_register, l.getSpeed() * UnitConversions.MS_TO_KMH); } private void showUnknownLocation() { diff --git a/MyTracks/src/com/google/android/apps/mytracks/StatsUtilities.java b/MyTracks/src/com/google/android/apps/mytracks/StatsUtilities.java index d4b3ab7e2..96ee5a23f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/StatsUtilities.java +++ b/MyTracks/src/com/google/android/apps/mytracks/StatsUtilities.java @@ -213,10 +213,10 @@ public class StatsUtilities { double minElevation, double maxElevation, double elevationGain, double minGrade, double maxGrade) { setTime(R.id.moving_time_register, movingTime); - setDistance(R.id.total_distance_register, totalDistance / 1000.0); - setSpeed(R.id.average_speed_register, averageSpeed * 3.6); - setSpeed(R.id.average_moving_speed_register, averageMovingSpeed * 3.6); - setSpeed(R.id.max_speed_register, maxSpeed * 3.6); + setDistance(R.id.total_distance_register, totalDistance * UnitConversions.M_TO_KM); + setSpeed(R.id.average_speed_register, averageSpeed * UnitConversions.MS_TO_KMH); + setSpeed(R.id.average_moving_speed_register, averageMovingSpeed * UnitConversions.MS_TO_KMH); + setSpeed(R.id.max_speed_register, maxSpeed * UnitConversions.MS_TO_KMH); setAltitude(R.id.min_elevation_register, minElevation); setAltitude(R.id.max_elevation_register, maxElevation); setAltitude(R.id.elevation_gain_register, elevationGain); @@ -226,11 +226,11 @@ public class StatsUtilities { public void setAllStats(TripStatistics stats) { setTime(R.id.moving_time_register, stats.getMovingTime()); - setDistance(R.id.total_distance_register, stats.getTotalDistance() / 1000.0); - setSpeed(R.id.average_speed_register, stats.getAverageSpeed() * 3.6); + setDistance(R.id.total_distance_register, stats.getTotalDistance() * UnitConversions.M_TO_KM); + setSpeed(R.id.average_speed_register, stats.getAverageSpeed() * UnitConversions.MS_TO_KMH); setSpeed(R.id.average_moving_speed_register, - stats.getAverageMovingSpeed() * 3.6); - setSpeed(R.id.max_speed_register, stats.getMaxSpeed() * 3.6); + stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH); + setSpeed(R.id.max_speed_register, stats.getMaxSpeed() * UnitConversions.MS_TO_KMH); setAltitude(R.id.min_elevation_register, stats.getMinElevation()); setAltitude(R.id.max_elevation_register, stats.getMaxElevation()); setAltitude(R.id.elevation_gain_register, stats.getTotalElevationGain()); diff --git a/MyTracks/src/com/google/android/apps/mytracks/content/SearchEngine.java b/MyTracks/src/com/google/android/apps/mytracks/content/SearchEngine.java index c94139abd..a963ded80 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/content/SearchEngine.java +++ b/MyTracks/src/com/google/android/apps/mytracks/content/SearchEngine.java @@ -17,6 +17,7 @@ package com.google.android.apps.mytracks.content; import com.google.android.apps.mytracks.stats.TripStatistics; import com.google.android.apps.mytracks.util.LocationUtils; +import com.google.android.apps.mytracks.util.UnitConversions; import android.database.Cursor; import android.location.Location; @@ -385,7 +386,7 @@ public class SearchEngine { distanceResults); // Score tracks close to the current location higher. - double distanceKm = distanceResults[0] / 1000.0; + double distanceKm = distanceResults[0] * UnitConversions.M_TO_KM; if (distanceKm > 0.0) { // Use the inverse of the amortized distance. return squash(distanceKm); diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java b/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java index adee07e89..6f62f36c4 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/docs/SendDocsUtils.java @@ -349,7 +349,7 @@ public class SendDocsUtils { */ @VisibleForTesting static final String getDistance(double distanceInMeter, boolean metricUnits) { - double distanceInKilometer = distanceInMeter / 1000.0; + double distanceInKilometer = distanceInMeter * UnitConversions.M_TO_KM; double distance = metricUnits ? distanceInKilometer : distanceInKilometer * UnitConversions.KM_TO_MI; return NUMBER_FORMAT.format(distance); @@ -363,9 +363,9 @@ public class SendDocsUtils { */ @VisibleForTesting static final String getSpeed(double speedInMeterPerSecond, boolean metricUnits) { - double speedInKilometerPerHour = speedInMeterPerSecond * 3.6; + double speedInKilometerPerHour = speedInMeterPerSecond * UnitConversions.MS_TO_KMH; double speed = metricUnits ? speedInKilometerPerHour - : speedInKilometerPerHour * UnitConversions.KMH_TO_MPH; + : speedInKilometerPerHour * UnitConversions.KM_TO_MI; return NUMBER_FORMAT.format(speed); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java b/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java index 003b52473..537ac38f8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathDescriptor.java @@ -21,6 +21,7 @@ import com.google.android.apps.mytracks.Constants; import com.google.android.apps.mytracks.content.MyTracksProviderUtils; import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.stats.TripStatistics; +import com.google.android.apps.mytracks.util.UnitConversions; import com.google.android.maps.mytracks.R; import com.google.common.annotations.VisibleForTesting; @@ -120,7 +121,8 @@ public class DynamicSpeedTrackPathDescriptor implements TrackPathDescriptor, } Track track = MyTracksProviderUtils.Factory.get(context).getTrack(currentTrackId); TripStatistics stats = track.getStatistics(); - double newAverageMovingSpeed = (int) Math.floor(stats.getAverageMovingSpeed() * 3.6); + double newAverageMovingSpeed = (int) Math.floor( + stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH); return isDifferenceSignificant(averageMovingSpeed, newAverageMovingSpeed); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/PeriodicTaskExecutor.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/PeriodicTaskExecutor.java index 2e6888c51..27b1b5769 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/PeriodicTaskExecutor.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/PeriodicTaskExecutor.java @@ -126,7 +126,7 @@ public class PeriodicTaskExecutor { return; } - double distance = service.getTripStatistics().getTotalDistance() / 1000.0; + double distance = service.getTripStatistics().getTotalDistance() * UnitConversions.M_TO_KM; if (!metricUnits) { distance *= UnitConversions.KM_TO_MI; } @@ -145,7 +145,7 @@ public class PeriodicTaskExecutor { return; } // Convert the distance in meters to km or mi. - double distance = service.getTripStatistics().getTotalDistance() / 1000.0; + double distance = service.getTripStatistics().getTotalDistance() * UnitConversions.M_TO_KM; if (!metricUnits) { distance *= UnitConversions.KM_TO_MI; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java index b588d0639..d04d1eaaf 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/StatusAnnouncerTask.java @@ -159,8 +159,8 @@ public class StatusAnnouncerTask implements PeriodicTask { reportSpeed = preferences.getBoolean(context.getString(R.string.report_speed_key), true); } - double d = stats.getTotalDistance() / 1000.0; // d is in kilometers - double s = stats.getAverageMovingSpeed() * 3.6; // s is in kilometers per hour + double d = stats.getTotalDistance() * UnitConversions.M_TO_KM; + double s = stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH; if (d == 0) { return context.getString(R.string.voice_total_distance_zero); @@ -168,7 +168,7 @@ public class StatusAnnouncerTask implements PeriodicTask { if (!metricUnits) { d *= UnitConversions.KM_TO_MI; - s *= UnitConversions.KMH_TO_MPH; + s *= UnitConversions.KM_TO_MI; } if (!reportSpeed) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java b/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java index f4f73613f..7e7e893f9 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ChartURLGenerator.java @@ -110,7 +110,7 @@ public class ChartURLGenerator { // Labels sb.append("&chxt=x,y"); - double distKM = stats.getTotalDistance() / 1000.0; + double distKM = stats.getTotalDistance() * UnitConversions.M_TO_KM; double distDisplay = metricUnits ? distKM : (distKM * UnitConversions.KM_TO_MI); int xInterval = ((int) (distDisplay / 6)); diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/LocationUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/LocationUtils.java index ca879526b..6ee4eee41 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/LocationUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/LocationUtils.java @@ -49,12 +49,12 @@ public class LocationUtils { return c2.distanceTo(c0); } - final double s0lat = c0.getLatitude() * UnitConversions.TO_RADIANS; - final double s0lng = c0.getLongitude() * UnitConversions.TO_RADIANS; - final double s1lat = c1.getLatitude() * UnitConversions.TO_RADIANS; - final double s1lng = c1.getLongitude() * UnitConversions.TO_RADIANS; - final double s2lat = c2.getLatitude() * UnitConversions.TO_RADIANS; - final double s2lng = c2.getLongitude() * UnitConversions.TO_RADIANS; + final double s0lat = c0.getLatitude() * UnitConversions.DEG_TO_RAD; + final double s0lng = c0.getLongitude() * UnitConversions.DEG_TO_RAD; + final double s1lat = c1.getLatitude() * UnitConversions.DEG_TO_RAD; + final double s1lng = c1.getLongitude() * UnitConversions.DEG_TO_RAD; + final double s2lat = c2.getLatitude() * UnitConversions.DEG_TO_RAD; + final double s2lng = c2.getLongitude() * UnitConversions.DEG_TO_RAD; double s2s1lat = s2lat - s1lat; double s2s1lng = s2lng - s1lng; diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java index 6aab3f21c..18ca4dbd6 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java @@ -90,14 +90,14 @@ public class StringUtils implements DescriptionGenerator { String distanceUnit; if (metric) { if (totalDistance > 2000.0) { - totalDistance /= 1000.0; + totalDistance *= UnitConversions.M_TO_KM; distanceUnit = context.getString(R.string.unit_kilometer); } else { distanceUnit = context.getString(R.string.unit_meter); } } else { - if (totalDistance > 2 * UnitConversions.MI_TO_M) { - totalDistance /= UnitConversions.MI_TO_M; + if (totalDistance * UnitConversions.M_TO_MI > 2) { + totalDistance *= UnitConversions.M_TO_MI; distanceUnit = context.getString(R.string.unit_mile); } else { totalDistance *= UnitConversions.M_TO_FT; @@ -259,7 +259,7 @@ public class StringUtils implements DescriptionGenerator { } TripStatistics trackStats = track.getStatistics(); - final double distanceInKm = trackStats.getTotalDistance() / 1000.0; + final double distanceInKm = trackStats.getTotalDistance() * UnitConversions.M_TO_KM; final double distanceInMiles = distanceInKm * UnitConversions.KM_TO_MI; final long minElevationInMeters = Math.round(trackStats.getMinElevation()); final long minElevationInFeet = @@ -391,8 +391,8 @@ public class StringUtils implements DescriptionGenerator { private String getSpeedString(double speed, int speedLabel, int paceLabel, boolean displaySpeed) { - double speedInKph = speed * 3.6; - double speedInMph = speedInKph * UnitConversions.KMH_TO_MPH; + double speedInKph = speed * UnitConversions.MS_TO_KMH; + double speedInMph = speedInKph * UnitConversions.KM_TO_MI; if (displaySpeed) { return String.format("%s: %.2f %s (%.1f %s)
", context.getString(speedLabel), @@ -424,16 +424,16 @@ public class StringUtils implements DescriptionGenerator { public String generateWaypointDescription(Waypoint waypoint) { TripStatistics stats = waypoint.getStatistics(); - final double distanceInKm = stats.getTotalDistance() / 1000.0; + final double distanceInKm = stats.getTotalDistance() * UnitConversions.M_TO_KM; final double distanceInMiles = distanceInKm * UnitConversions.KM_TO_MI; - final double averageSpeedInKmh = stats.getAverageSpeed() * 3.6; + final double averageSpeedInKmh = stats.getAverageSpeed() * UnitConversions.MS_TO_KMH; final double averageSpeedInMph = - averageSpeedInKmh * UnitConversions.KMH_TO_MPH; - final double movingSpeedInKmh = stats.getAverageMovingSpeed() * 3.6; + averageSpeedInKmh * UnitConversions.KM_TO_MI; + final double movingSpeedInKmh = stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH; final double movingSpeedInMph = - movingSpeedInKmh * UnitConversions.KMH_TO_MPH; - final double maxSpeedInKmh = stats.getMaxSpeed() * 3.6; - final double maxSpeedInMph = maxSpeedInKmh * UnitConversions.KMH_TO_MPH; + movingSpeedInKmh * UnitConversions.KM_TO_MI; + final double maxSpeedInKmh = stats.getMaxSpeed() * UnitConversions.MS_TO_KMH; + final double maxSpeedInMph = maxSpeedInKmh * UnitConversions.KM_TO_MI; final long minElevationInMeters = Math.round(stats.getMinElevation()); final long minElevationInFeet = Math.round(stats.getMinElevation() * UnitConversions.M_TO_FT); diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/UnitConversions.java b/MyTracks/src/com/google/android/apps/mytracks/util/UnitConversions.java index 8450d7b8a..54457924e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/UnitConversions.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/UnitConversions.java @@ -17,19 +17,37 @@ package com.google.android.apps.mytracks.util; /** * Unit conversion constants. - * + * * @author Sandor Dornbush */ -public abstract class UnitConversions { +public class UnitConversions { - public static final double KM_TO_MI = 0.621371192; - public static final double M_TO_FT = 3.2808399; - public static final double MI_TO_M = 1609.344; - public static final double MI_TO_FEET = 5280.0; - public static final double KMH_TO_MPH = 1000.0 * M_TO_FT / MI_TO_FEET; - public static final double TO_RADIANS = Math.PI / 180.0; - public static final double MPH_TO_KMH = 1.609344; + private UnitConversions() {} - protected UnitConversions() { - } + // multiplication factor to convert kilometers to miles + public static final double KM_TO_MI = 0.621371192; + + // multiplication factor to convert miles to kilometers + public static final double MI_TO_KM = 1 / KM_TO_MI; + + // multiplication factor to convert miles to feet + public static final double MI_TO_FT = 5280.0; + + // multiplication factor to convert feet to miles + public static final double FT_TO_MI = 1 / MI_TO_FT; + + // multiplication factor to convert meters to kilometers + public static final double M_TO_KM = 1 / 1000.0; + + // multiplication factor to convert meters per second to kilometers per hour + public static final double MS_TO_KMH = M_TO_KM * 60 * 60; + + // 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; + + // multiplication factor to convert degrees to radians + public static final double DEG_TO_RAD = Math.PI / 180.0; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java b/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java index 3e270441b..49ab1df9c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java +++ b/MyTracks/src/com/google/android/apps/mytracks/widgets/TrackWidgetProvider.java @@ -216,7 +216,7 @@ public class TrackWidgetProvider // TODO replace this with format strings and miles. // convert meters to kilometers - double displayDistance = stats.getTotalDistance() / 1000.0; + double displayDistance = stats.getTotalDistance() * UnitConversions.M_TO_KM; if (!isMetric) { displayDistance *= UnitConversions.KM_TO_MI; } @@ -228,9 +228,9 @@ public class TrackWidgetProvider String speed = unknown; if (!Double.isNaN(stats.getAverageMovingSpeed())) { // Convert m/s to km/h - double displaySpeed = stats.getAverageMovingSpeed() * 3.6; + double displaySpeed = stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH; if (!isMetric) { - displaySpeed *= UnitConversions.KMH_TO_MPH; + displaySpeed *= UnitConversions.KM_TO_MI; } if (reportSpeed) { speed = StringUtils.formatSingleDecimalPlace(displaySpeed) + " " + this.speedLabel;