forked from upstream-mirrors/OpenTracks
Clean up UnitConversionUtils.
This commit is contained in:
@@ -29,7 +29,7 @@ import com.google.android.apps.mytracks.content.Waypoint;
|
|||||||
import com.google.android.apps.mytracks.stats.DoubleBuffer;
|
import com.google.android.apps.mytracks.stats.DoubleBuffer;
|
||||||
import com.google.android.apps.mytracks.stats.TripStatisticsBuilder;
|
import com.google.android.apps.mytracks.stats.TripStatisticsBuilder;
|
||||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -290,13 +290,13 @@ public class ChartActivity extends Activity implements TrackDataListener {
|
|||||||
Mode mode = chartView.getMode();
|
Mode mode = chartView.getMode();
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case BY_DISTANCE:
|
case BY_DISTANCE:
|
||||||
timeOrDistance = profileLength / 1000.0;
|
timeOrDistance = profileLength * UnitConversionUtils.M_TO_KM;
|
||||||
if (lastLocation != null) {
|
if (lastLocation != null) {
|
||||||
double d = lastLocation.distanceTo(location);
|
double d = lastLocation.distanceTo(location);
|
||||||
if (metricUnits) {
|
if (metricUnits) {
|
||||||
profileLength += d;
|
profileLength += d;
|
||||||
} else {
|
} else {
|
||||||
profileLength += d * UnitConversions.KM_TO_MI;
|
profileLength += d * UnitConversionUtils.KM_TO_MI;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -313,7 +313,7 @@ public class ChartActivity extends Activity implements TrackDataListener {
|
|||||||
|
|
||||||
elevationBuffer.setNext(metricUnits
|
elevationBuffer.setNext(metricUnits
|
||||||
? location.getAltitude()
|
? location.getAltitude()
|
||||||
: location.getAltitude() * UnitConversions.M_TO_FT);
|
: location.getAltitude() * UnitConversionUtils.M_TO_FT);
|
||||||
elevation = elevationBuffer.getAverage();
|
elevation = elevationBuffer.getAverage();
|
||||||
|
|
||||||
if (lastLocation == null) {
|
if (lastLocation == null) {
|
||||||
@@ -326,9 +326,9 @@ public class ChartActivity extends Activity implements TrackDataListener {
|
|||||||
&& (location.getSpeed() <= trackMaxSpeed)) {
|
&& (location.getSpeed() <= trackMaxSpeed)) {
|
||||||
speedBuffer.setNext(location.getSpeed());
|
speedBuffer.setNext(location.getSpeed());
|
||||||
}
|
}
|
||||||
speed = speedBuffer.getAverage() * 3.6;
|
speed = speedBuffer.getAverage() * UnitConversionUtils.MS_TO_KMH;
|
||||||
if (!metricUnits) {
|
if (!metricUnits) {
|
||||||
speed *= UnitConversions.KM_TO_MI;
|
speed *= UnitConversionUtils.KM_TO_MI;
|
||||||
}
|
}
|
||||||
if (!reportSpeed) {
|
if (!reportSpeed) {
|
||||||
if (speed != 0) {
|
if (speed != 0) {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import com.google.android.apps.mytracks.ChartValueSeries.ZoomSettings;
|
|||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.stats.ExtremityMonitor;
|
import com.google.android.apps.mytracks.stats.ExtremityMonitor;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -407,11 +407,12 @@ public class ChartView extends View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int getWaypointX(Waypoint waypoint) {
|
private int getWaypointX(Waypoint waypoint) {
|
||||||
return (mode == Mode.BY_DISTANCE)
|
if (mode == Mode.BY_DISTANCE) {
|
||||||
? getX(metricUnits
|
double lenghtInKm = waypoint.getLength() * UnitConversionUtils.M_TO_KM;
|
||||||
? waypoint.getLength() / 1000.0
|
return getX(metricUnits ? lenghtInKm : lenghtInKm * UnitConversionUtils.KM_TO_MI);
|
||||||
: waypoint.getLength() * UnitConversions.KM_TO_MI / 1000.0)
|
} else {
|
||||||
: getX(waypoint.getDuration());
|
return getX(waypoint.getDuration());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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.TrackPathPainterFactory;
|
||||||
import com.google.android.apps.mytracks.maps.TrackPathUtilities;
|
import com.google.android.apps.mytracks.maps.TrackPathUtilities;
|
||||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.GeoPoint;
|
import com.google.android.maps.GeoPoint;
|
||||||
import com.google.android.maps.MapView;
|
import com.google.android.maps.MapView;
|
||||||
import com.google.android.maps.Overlay;
|
import com.google.android.maps.Overlay;
|
||||||
@@ -103,7 +104,7 @@ public class MapOverlay extends Overlay implements OnSharedPreferenceChangeListe
|
|||||||
public CachedLocation(Location location) {
|
public CachedLocation(Location location) {
|
||||||
this.valid = LocationUtils.isValidLocation(location);
|
this.valid = LocationUtils.isValidLocation(location);
|
||||||
this.geoPoint = valid ? LocationUtils.getGeoPoint(location) : null;
|
this.geoPoint = valid ? LocationUtils.getGeoPoint(location) : null;
|
||||||
this.speed = (int) Math.floor(location.getSpeed() * 3.6);
|
this.speed = (int) Math.floor(location.getSpeed() * UnitConversionUtils.MS_TO_KMH);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import com.google.android.apps.mytracks.services.sensors.ant.AntUtils;
|
|||||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||||
import com.google.android.apps.mytracks.util.BluetoothDeviceUtils;
|
import com.google.android.apps.mytracks.util.BluetoothDeviceUtils;
|
||||||
import com.google.android.apps.mytracks.util.DialogUtils;
|
import com.google.android.apps.mytracks.util.DialogUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
@@ -462,7 +462,7 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
for (int i = 0; i < values.length; i++) {
|
for (int i = 0; i < values.length; i++) {
|
||||||
int value = Integer.parseInt(values[i]);
|
int value = Integer.parseInt(values[i]);
|
||||||
if (!isMetric) {
|
if (!isMetric) {
|
||||||
value = (int) (value * UnitConversions.M_TO_FT);
|
value = (int) (value * UnitConversionUtils.M_TO_FT);
|
||||||
}
|
}
|
||||||
String format;
|
String format;
|
||||||
if (values[i].equals(RECORDING_DISTANCE_RECOMMENDED)) {
|
if (values[i].equals(RECORDING_DISTANCE_RECOMMENDED)) {
|
||||||
@@ -495,14 +495,14 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
format = getString(stringId);
|
format = getString(stringId);
|
||||||
options[i] = String.format(format, value);
|
options[i] = String.format(format, value);
|
||||||
} else {
|
} else {
|
||||||
value = (int) (value * UnitConversions.M_TO_FT);
|
value = (int) (value * UnitConversionUtils.M_TO_FT);
|
||||||
if (value < 2000) {
|
if (value < 2000) {
|
||||||
int stringId = values[i].equals(TRACK_DISTANCE_RECOMMENDED)
|
int stringId = values[i].equals(TRACK_DISTANCE_RECOMMENDED)
|
||||||
? R.string.value_integer_feet_recommended : R.string.value_integer_feet;
|
? R.string.value_integer_feet_recommended : R.string.value_integer_feet;
|
||||||
format = getString(stringId);
|
format = getString(stringId);
|
||||||
options[i] = String.format(format, value);
|
options[i] = String.format(format, value);
|
||||||
} else {
|
} else {
|
||||||
double mile = value / UnitConversions.MI_TO_FEET;
|
double mile = value * UnitConversionUtils.FT_TO_MI;
|
||||||
format = getString(R.string.value_float_mile);
|
format = getString(R.string.value_float_mile);
|
||||||
options[i] = String.format(format, mile);
|
options[i] = String.format(format, mile);
|
||||||
}
|
}
|
||||||
@@ -534,7 +534,7 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
}
|
}
|
||||||
options[i] = String.format(format, value);
|
options[i] = String.format(format, value);
|
||||||
} else {
|
} else {
|
||||||
value = (int) (value * UnitConversions.M_TO_FT);
|
value = (int) (value * UnitConversionUtils.M_TO_FT);
|
||||||
if (value < 2000) {
|
if (value < 2000) {
|
||||||
if (values[i].equals(GPS_ACCURACY_RECOMMENDED)) {
|
if (values[i].equals(GPS_ACCURACY_RECOMMENDED)) {
|
||||||
format = getString(R.string.value_integer_feet_recommended);
|
format = getString(R.string.value_integer_feet_recommended);
|
||||||
@@ -545,7 +545,7 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
}
|
}
|
||||||
options[i] = String.format(format, value);
|
options[i] = String.format(format, value);
|
||||||
} else {
|
} else {
|
||||||
double mile = value / UnitConversions.MI_TO_FEET;
|
double mile = value * UnitConversionUtils.FT_TO_MI;
|
||||||
if (values[i].equals(GPS_ACCURACY_POOR)) {
|
if (values[i].equals(GPS_ACCURACY_POOR)) {
|
||||||
format = getString(R.string.value_float_mile_poor_gps);
|
format = getString(R.string.value_float_mile_poor_gps);
|
||||||
} else {
|
} else {
|
||||||
@@ -644,7 +644,7 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
String metricspeed = prefs.getString(getString(id), null);
|
String metricspeed = prefs.getString(getString(id), null);
|
||||||
int englishspeed;
|
int englishspeed;
|
||||||
try {
|
try {
|
||||||
englishspeed = (int) (Double.parseDouble(metricspeed) * UnitConversions.KMH_TO_MPH);
|
englishspeed = (int) (Double.parseDouble(metricspeed) * UnitConversionUtils.KM_TO_MI);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
englishspeed = 0;
|
englishspeed = 0;
|
||||||
}
|
}
|
||||||
@@ -663,7 +663,7 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
// Convert miles/h to km/h
|
// Convert miles/h to km/h
|
||||||
try {
|
try {
|
||||||
metricspeed = String.valueOf(
|
metricspeed = String.valueOf(
|
||||||
(int) (Double.parseDouble(newValue) * UnitConversions.MPH_TO_KMH) + 1);
|
(int) (Double.parseDouble(newValue) * UnitConversionUtils.MI_TO_KM));
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
metricspeed = "0";
|
metricspeed = "0";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.TrackDataListener;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.services.ServiceUtils;
|
import com.google.android.apps.mytracks.services.ServiceUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -190,7 +191,7 @@ public class StatsActivity extends Activity implements TrackDataListener {
|
|||||||
utils.setAltitude(R.id.elevation_register, l.getAltitude());
|
utils.setAltitude(R.id.elevation_register, l.getAltitude());
|
||||||
utils.setLatLong(R.id.latitude_register, l.getLatitude());
|
utils.setLatLong(R.id.latitude_register, l.getLatitude());
|
||||||
utils.setLatLong(R.id.longitude_register, l.getLongitude());
|
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() * UnitConversionUtils.MS_TO_KMH);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showUnknownLocation() {
|
private void showUnknownLocation() {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ package com.google.android.apps.mytracks;
|
|||||||
|
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -106,12 +106,12 @@ public class StatsUtilities {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setAltitude(int id, double d) {
|
public void setAltitude(int id, double d) {
|
||||||
setText(id, (metricUnits ? d : (d * UnitConversions.M_TO_FT)),
|
setText(id, (metricUnits ? d : (d * UnitConversionUtils.M_TO_FT)),
|
||||||
ALTITUDE_FORMAT);
|
ALTITUDE_FORMAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDistance(int id, double d) {
|
public void setDistance(int id, double d) {
|
||||||
setText(id, (metricUnits ? d : (d * UnitConversions.KM_TO_MI)),
|
setText(id, (metricUnits ? d : (d * UnitConversionUtils.KM_TO_MI)),
|
||||||
SPEED_FORMAT);
|
SPEED_FORMAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ public class StatsUtilities {
|
|||||||
setUnknown(id);
|
setUnknown(id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
double speed = metricUnits ? d : d * UnitConversions.KM_TO_MI;
|
double speed = metricUnits ? d : d * UnitConversionUtils.KM_TO_MI;
|
||||||
if (reportSpeed) {
|
if (reportSpeed) {
|
||||||
setText(id, speed, SPEED_FORMAT);
|
setText(id, speed, SPEED_FORMAT);
|
||||||
} else {
|
} else {
|
||||||
@@ -213,10 +213,10 @@ public class StatsUtilities {
|
|||||||
double minElevation, double maxElevation, double elevationGain,
|
double minElevation, double maxElevation, double elevationGain,
|
||||||
double minGrade, double maxGrade) {
|
double minGrade, double maxGrade) {
|
||||||
setTime(R.id.moving_time_register, movingTime);
|
setTime(R.id.moving_time_register, movingTime);
|
||||||
setDistance(R.id.total_distance_register, totalDistance / 1000.0);
|
setDistance(R.id.total_distance_register, totalDistance * UnitConversionUtils.M_TO_KM);
|
||||||
setSpeed(R.id.average_speed_register, averageSpeed * 3.6);
|
setSpeed(R.id.average_speed_register, averageSpeed * UnitConversionUtils.MS_TO_KMH);
|
||||||
setSpeed(R.id.average_moving_speed_register, averageMovingSpeed * 3.6);
|
setSpeed(R.id.average_moving_speed_register, averageMovingSpeed * UnitConversionUtils.MS_TO_KMH);
|
||||||
setSpeed(R.id.max_speed_register, maxSpeed * 3.6);
|
setSpeed(R.id.max_speed_register, maxSpeed * UnitConversionUtils.MS_TO_KMH);
|
||||||
setAltitude(R.id.min_elevation_register, minElevation);
|
setAltitude(R.id.min_elevation_register, minElevation);
|
||||||
setAltitude(R.id.max_elevation_register, maxElevation);
|
setAltitude(R.id.max_elevation_register, maxElevation);
|
||||||
setAltitude(R.id.elevation_gain_register, elevationGain);
|
setAltitude(R.id.elevation_gain_register, elevationGain);
|
||||||
@@ -226,11 +226,11 @@ public class StatsUtilities {
|
|||||||
|
|
||||||
public void setAllStats(TripStatistics stats) {
|
public void setAllStats(TripStatistics stats) {
|
||||||
setTime(R.id.moving_time_register, stats.getMovingTime());
|
setTime(R.id.moving_time_register, stats.getMovingTime());
|
||||||
setDistance(R.id.total_distance_register, stats.getTotalDistance() / 1000.0);
|
setDistance(R.id.total_distance_register, stats.getTotalDistance() * UnitConversionUtils.M_TO_KM);
|
||||||
setSpeed(R.id.average_speed_register, stats.getAverageSpeed() * 3.6);
|
setSpeed(R.id.average_speed_register, stats.getAverageSpeed() * UnitConversionUtils.MS_TO_KMH);
|
||||||
setSpeed(R.id.average_moving_speed_register,
|
setSpeed(R.id.average_moving_speed_register,
|
||||||
stats.getAverageMovingSpeed() * 3.6);
|
stats.getAverageMovingSpeed() * UnitConversionUtils.MS_TO_KMH);
|
||||||
setSpeed(R.id.max_speed_register, stats.getMaxSpeed() * 3.6);
|
setSpeed(R.id.max_speed_register, stats.getMaxSpeed() * UnitConversionUtils.MS_TO_KMH);
|
||||||
setAltitude(R.id.min_elevation_register, stats.getMinElevation());
|
setAltitude(R.id.min_elevation_register, stats.getMinElevation());
|
||||||
setAltitude(R.id.max_elevation_register, stats.getMaxElevation());
|
setAltitude(R.id.max_elevation_register, stats.getMaxElevation());
|
||||||
setAltitude(R.id.elevation_gain_register, stats.getTotalElevationGain());
|
setAltitude(R.id.elevation_gain_register, stats.getTotalElevationGain());
|
||||||
|
|||||||
@@ -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.stats.TripStatistics;
|
||||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
@@ -385,7 +386,7 @@ public class SearchEngine {
|
|||||||
distanceResults);
|
distanceResults);
|
||||||
|
|
||||||
// Score tracks close to the current location higher.
|
// Score tracks close to the current location higher.
|
||||||
double distanceKm = distanceResults[0] / 1000.0;
|
double distanceKm = distanceResults[0] * UnitConversionUtils.M_TO_KM;
|
||||||
if (distanceKm > 0.0) {
|
if (distanceKm > 0.0) {
|
||||||
// Use the inverse of the amortized distance.
|
// Use the inverse of the amortized distance.
|
||||||
return squash(distanceKm);
|
return squash(distanceKm);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import com.google.android.apps.mytracks.io.gdata.docs.SpreadsheetsClient.Workshe
|
|||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
import com.google.android.apps.mytracks.util.ResourceUtils;
|
import com.google.android.apps.mytracks.util.ResourceUtils;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.wireless.gdata.client.HttpException;
|
import com.google.wireless.gdata.client.HttpException;
|
||||||
@@ -349,9 +349,9 @@ public class SendDocsUtils {
|
|||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String getDistance(double distanceInMeter, boolean metricUnits) {
|
static final String getDistance(double distanceInMeter, boolean metricUnits) {
|
||||||
double distanceInKilometer = distanceInMeter / 1000.0;
|
double distanceInKilometer = distanceInMeter * UnitConversionUtils.M_TO_KM;
|
||||||
double distance = metricUnits ? distanceInKilometer
|
double distance = metricUnits ? distanceInKilometer
|
||||||
: distanceInKilometer * UnitConversions.KM_TO_MI;
|
: distanceInKilometer * UnitConversionUtils.KM_TO_MI;
|
||||||
return NUMBER_FORMAT.format(distance);
|
return NUMBER_FORMAT.format(distance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,9 +363,9 @@ public class SendDocsUtils {
|
|||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String getSpeed(double speedInMeterPerSecond, boolean metricUnits) {
|
static final String getSpeed(double speedInMeterPerSecond, boolean metricUnits) {
|
||||||
double speedInKilometerPerHour = speedInMeterPerSecond * 3.6;
|
double speedInKilometerPerHour = speedInMeterPerSecond * UnitConversionUtils.MS_TO_KMH;
|
||||||
double speed = metricUnits ? speedInKilometerPerHour
|
double speed = metricUnits ? speedInKilometerPerHour
|
||||||
: speedInKilometerPerHour * UnitConversions.KMH_TO_MPH;
|
: speedInKilometerPerHour * UnitConversionUtils.KM_TO_MI;
|
||||||
return NUMBER_FORMAT.format(speed);
|
return NUMBER_FORMAT.format(speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,7 +377,7 @@ public class SendDocsUtils {
|
|||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String getElevation(double elevationInMeter, boolean metricUnits) {
|
static final String getElevation(double elevationInMeter, boolean metricUnits) {
|
||||||
double elevation = metricUnits ? elevationInMeter : elevationInMeter * UnitConversions.M_TO_FT;
|
double elevation = metricUnits ? elevationInMeter : elevationInMeter * UnitConversionUtils.M_TO_FT;
|
||||||
return INTEGER_FORMAT.format(elevation);
|
return INTEGER_FORMAT.format(elevation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -14,7 +14,7 @@ import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
|||||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.SystemUtils;
|
import com.google.android.apps.mytracks.util.SystemUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
import com.google.api.client.googleapis.GoogleHeaders;
|
import com.google.api.client.googleapis.GoogleHeaders;
|
||||||
import com.google.api.client.googleapis.MethodOverride;
|
import com.google.api.client.googleapis.MethodOverride;
|
||||||
@@ -245,7 +245,7 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask {
|
|||||||
tripStatisticsBuilder.addLocation(location, location.getTime());
|
tripStatisticsBuilder.addLocation(location, location.getTime());
|
||||||
// All points go into the smoothing buffer
|
// All points go into the smoothing buffer
|
||||||
elevationBuffer.setNext(metricUnits ? location.getAltitude()
|
elevationBuffer.setNext(metricUnits ? location.getAltitude()
|
||||||
: location.getAltitude() * UnitConversions.M_TO_FT);
|
: location.getAltitude() * UnitConversionUtils.M_TO_FT);
|
||||||
if (i % elevationSamplingFrequency == 0) {
|
if (i % elevationSamplingFrequency == 0) {
|
||||||
distances.add(tripStatisticsBuilder.getStatistics().getTotalDistance());
|
distances.add(tripStatisticsBuilder.getStatistics().getTotalDistance());
|
||||||
elevations.add(elevationBuffer.getAverage());
|
elevations.add(elevationBuffer.getAverage());
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import com.google.android.apps.mytracks.stats.DoubleBuffer;
|
|||||||
import com.google.android.apps.mytracks.stats.TripStatisticsBuilder;
|
import com.google.android.apps.mytracks.stats.TripStatisticsBuilder;
|
||||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.common.gdata.AndroidXmlParserFactory;
|
import com.google.android.common.gdata.AndroidXmlParserFactory;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
import com.google.wireless.gdata.client.GDataClient;
|
import com.google.wireless.gdata.client.GDataClient;
|
||||||
@@ -282,7 +282,7 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask {
|
|||||||
tripStatisticsBuilder.addLocation(location, location.getTime());
|
tripStatisticsBuilder.addLocation(location, location.getTime());
|
||||||
// All points go into the smoothing buffer
|
// All points go into the smoothing buffer
|
||||||
elevationBuffer.setNext(metricUnits ? location.getAltitude()
|
elevationBuffer.setNext(metricUnits ? location.getAltitude()
|
||||||
: location.getAltitude() * UnitConversions.M_TO_FT);
|
: location.getAltitude() * UnitConversionUtils.M_TO_FT);
|
||||||
if (i % elevationSamplingFrequency == 0) {
|
if (i % elevationSamplingFrequency == 0) {
|
||||||
distances.add(tripStatisticsBuilder.getStatistics().getTotalDistance());
|
distances.add(tripStatisticsBuilder.getStatistics().getTotalDistance());
|
||||||
elevations.add(elevationBuffer.getAverage());
|
elevations.add(elevationBuffer.getAverage());
|
||||||
|
|||||||
+3
-1
@@ -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.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
|
||||||
@@ -120,7 +121,8 @@ public class DynamicSpeedTrackPathDescriptor implements TrackPathDescriptor,
|
|||||||
}
|
}
|
||||||
Track track = MyTracksProviderUtils.Factory.get(context).getTrack(currentTrackId);
|
Track track = MyTracksProviderUtils.Factory.get(context).getTrack(currentTrackId);
|
||||||
TripStatistics stats = track.getStatistics();
|
TripStatistics stats = track.getStatistics();
|
||||||
double newAverageMovingSpeed = (int) Math.floor(stats.getAverageMovingSpeed() * 3.6);
|
double newAverageMovingSpeed = (int) Math.floor(
|
||||||
|
stats.getAverageMovingSpeed() * UnitConversionUtils.MS_TO_KMH);
|
||||||
|
|
||||||
return isDifferenceSignificant(averageMovingSpeed, newAverageMovingSpeed);
|
return isDifferenceSignificant(averageMovingSpeed, newAverageMovingSpeed);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -18,7 +18,7 @@ package com.google.android.apps.mytracks.services.tasks;
|
|||||||
import static com.google.android.apps.mytracks.Constants.TAG;
|
import static com.google.android.apps.mytracks.Constants.TAG;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingService;
|
import com.google.android.apps.mytracks.services.TrackRecordingService;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -126,9 +126,9 @@ public class PeriodicTaskExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
double distance = service.getTripStatistics().getTotalDistance() / 1000.0;
|
double distance = service.getTripStatistics().getTotalDistance() * UnitConversionUtils.M_TO_KM;
|
||||||
if (!metricUnits) {
|
if (!metricUnits) {
|
||||||
distance *= UnitConversions.KM_TO_MI;
|
distance *= UnitConversionUtils.KM_TO_MI;
|
||||||
}
|
}
|
||||||
// The index will be negative since the frequency is negative.
|
// The index will be negative since the frequency is negative.
|
||||||
int index = (int) (distance / taskFrequency);
|
int index = (int) (distance / taskFrequency);
|
||||||
@@ -145,9 +145,9 @@ public class PeriodicTaskExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Convert the distance in meters to km or mi.
|
// Convert the distance in meters to km or mi.
|
||||||
double distance = service.getTripStatistics().getTotalDistance() / 1000.0;
|
double distance = service.getTripStatistics().getTotalDistance() * UnitConversionUtils.M_TO_KM;
|
||||||
if (!metricUnits) {
|
if (!metricUnits) {
|
||||||
distance *= UnitConversions.KM_TO_MI;
|
distance *= UnitConversionUtils.KM_TO_MI;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (distance > nextTaskDistance) {
|
if (distance > nextTaskDistance) {
|
||||||
|
|||||||
+5
-5
@@ -22,7 +22,7 @@ import com.google.android.apps.mytracks.Constants;
|
|||||||
import com.google.android.apps.mytracks.services.TrackRecordingService;
|
import com.google.android.apps.mytracks.services.TrackRecordingService;
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
|
||||||
@@ -159,16 +159,16 @@ public class StatusAnnouncerTask implements PeriodicTask {
|
|||||||
reportSpeed = preferences.getBoolean(context.getString(R.string.report_speed_key), true);
|
reportSpeed = preferences.getBoolean(context.getString(R.string.report_speed_key), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
double d = stats.getTotalDistance() / 1000.0; // d is in kilometers
|
double d = stats.getTotalDistance() * UnitConversionUtils.M_TO_KM;
|
||||||
double s = stats.getAverageMovingSpeed() * 3.6; // s is in kilometers per hour
|
double s = stats.getAverageMovingSpeed() * UnitConversionUtils.MS_TO_KMH;
|
||||||
|
|
||||||
if (d == 0) {
|
if (d == 0) {
|
||||||
return context.getString(R.string.voice_total_distance_zero);
|
return context.getString(R.string.voice_total_distance_zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!metricUnits) {
|
if (!metricUnits) {
|
||||||
d *= UnitConversions.KM_TO_MI;
|
d *= UnitConversionUtils.KM_TO_MI;
|
||||||
s *= UnitConversions.KMH_TO_MPH;
|
s *= UnitConversionUtils.KM_TO_MI;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!reportSpeed) {
|
if (!reportSpeed) {
|
||||||
|
|||||||
@@ -86,13 +86,13 @@ public class ChartURLGenerator {
|
|||||||
TripStatistics stats = track.getStatistics();
|
TripStatistics stats = track.getStatistics();
|
||||||
double effectiveMaxY = metricUnits
|
double effectiveMaxY = metricUnits
|
||||||
? stats.getMaxElevation()
|
? stats.getMaxElevation()
|
||||||
: stats.getMaxElevation() * UnitConversions.M_TO_FT;
|
: stats.getMaxElevation() * UnitConversionUtils.M_TO_FT;
|
||||||
effectiveMaxY = ((int) (effectiveMaxY / 100)) * 100 + 100;
|
effectiveMaxY = ((int) (effectiveMaxY / 100)) * 100 + 100;
|
||||||
// Round it down.
|
// Round it down.
|
||||||
double effectiveMinY = 0;
|
double effectiveMinY = 0;
|
||||||
double minElevation = metricUnits
|
double minElevation = metricUnits
|
||||||
? stats.getMinElevation()
|
? stats.getMinElevation()
|
||||||
: stats.getMinElevation() * UnitConversions.M_TO_FT;
|
: stats.getMinElevation() * UnitConversionUtils.M_TO_FT;
|
||||||
|
|
||||||
effectiveMinY = ((int) (minElevation / 100)) * 100;
|
effectiveMinY = ((int) (minElevation / 100)) * 100;
|
||||||
if (stats.getMinElevation() < 0) {
|
if (stats.getMinElevation() < 0) {
|
||||||
@@ -110,9 +110,9 @@ public class ChartURLGenerator {
|
|||||||
|
|
||||||
// Labels
|
// Labels
|
||||||
sb.append("&chxt=x,y");
|
sb.append("&chxt=x,y");
|
||||||
double distKM = stats.getTotalDistance() / 1000.0;
|
double distKM = stats.getTotalDistance() * UnitConversionUtils.M_TO_KM;
|
||||||
double distDisplay =
|
double distDisplay =
|
||||||
metricUnits ? distKM : (distKM * UnitConversions.KM_TO_MI);
|
metricUnits ? distKM : (distKM * UnitConversionUtils.KM_TO_MI);
|
||||||
int xInterval = ((int) (distDisplay / 6));
|
int xInterval = ((int) (distDisplay / 6));
|
||||||
int yInterval = ((int) (ySpread / 600)) * 100;
|
int yInterval = ((int) (ySpread / 600)) * 100;
|
||||||
if (yInterval < 100) {
|
if (yInterval < 100) {
|
||||||
|
|||||||
@@ -49,12 +49,12 @@ public class LocationUtils {
|
|||||||
return c2.distanceTo(c0);
|
return c2.distanceTo(c0);
|
||||||
}
|
}
|
||||||
|
|
||||||
final double s0lat = c0.getLatitude() * UnitConversions.TO_RADIANS;
|
final double s0lat = c0.getLatitude() * UnitConversionUtils.DEG_TO_RAD;
|
||||||
final double s0lng = c0.getLongitude() * UnitConversions.TO_RADIANS;
|
final double s0lng = c0.getLongitude() * UnitConversionUtils.DEG_TO_RAD;
|
||||||
final double s1lat = c1.getLatitude() * UnitConversions.TO_RADIANS;
|
final double s1lat = c1.getLatitude() * UnitConversionUtils.DEG_TO_RAD;
|
||||||
final double s1lng = c1.getLongitude() * UnitConversions.TO_RADIANS;
|
final double s1lng = c1.getLongitude() * UnitConversionUtils.DEG_TO_RAD;
|
||||||
final double s2lat = c2.getLatitude() * UnitConversions.TO_RADIANS;
|
final double s2lat = c2.getLatitude() * UnitConversionUtils.DEG_TO_RAD;
|
||||||
final double s2lng = c2.getLongitude() * UnitConversions.TO_RADIANS;
|
final double s2lng = c2.getLongitude() * UnitConversionUtils.DEG_TO_RAD;
|
||||||
|
|
||||||
double s2s1lat = s2lat - s1lat;
|
double s2s1lat = s2lat - s1lat;
|
||||||
double s2s1lng = s2lng - s1lng;
|
double s2s1lng = s2lng - s1lng;
|
||||||
|
|||||||
@@ -90,17 +90,17 @@ public class StringUtils implements DescriptionGenerator {
|
|||||||
String distanceUnit;
|
String distanceUnit;
|
||||||
if (metric) {
|
if (metric) {
|
||||||
if (totalDistance > 2000.0) {
|
if (totalDistance > 2000.0) {
|
||||||
totalDistance /= 1000.0;
|
totalDistance *= UnitConversionUtils.M_TO_KM;
|
||||||
distanceUnit = context.getString(R.string.unit_kilometer);
|
distanceUnit = context.getString(R.string.unit_kilometer);
|
||||||
} else {
|
} else {
|
||||||
distanceUnit = context.getString(R.string.unit_meter);
|
distanceUnit = context.getString(R.string.unit_meter);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (totalDistance > 2 * UnitConversions.MI_TO_M) {
|
if (totalDistance * UnitConversionUtils.M_TO_MI > 2) {
|
||||||
totalDistance /= UnitConversions.MI_TO_M;
|
totalDistance *= UnitConversionUtils.M_TO_MI;
|
||||||
distanceUnit = context.getString(R.string.unit_mile);
|
distanceUnit = context.getString(R.string.unit_mile);
|
||||||
} else {
|
} else {
|
||||||
totalDistance *= UnitConversions.M_TO_FT;
|
totalDistance *= UnitConversionUtils.M_TO_FT;
|
||||||
distanceUnit = context.getString(R.string.unit_feet);
|
distanceUnit = context.getString(R.string.unit_feet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -259,18 +259,18 @@ public class StringUtils implements DescriptionGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TripStatistics trackStats = track.getStatistics();
|
TripStatistics trackStats = track.getStatistics();
|
||||||
final double distanceInKm = trackStats.getTotalDistance() / 1000.0;
|
final double distanceInKm = trackStats.getTotalDistance() * UnitConversionUtils.M_TO_KM;
|
||||||
final double distanceInMiles = distanceInKm * UnitConversions.KM_TO_MI;
|
final double distanceInMiles = distanceInKm * UnitConversionUtils.KM_TO_MI;
|
||||||
final long minElevationInMeters = Math.round(trackStats.getMinElevation());
|
final long minElevationInMeters = Math.round(trackStats.getMinElevation());
|
||||||
final long minElevationInFeet =
|
final long minElevationInFeet =
|
||||||
Math.round(trackStats.getMinElevation() * UnitConversions.M_TO_FT);
|
Math.round(trackStats.getMinElevation() * UnitConversionUtils.M_TO_FT);
|
||||||
final long maxElevationInMeters = Math.round(trackStats.getMaxElevation());
|
final long maxElevationInMeters = Math.round(trackStats.getMaxElevation());
|
||||||
final long maxElevationInFeet =
|
final long maxElevationInFeet =
|
||||||
Math.round(trackStats.getMaxElevation() * UnitConversions.M_TO_FT);
|
Math.round(trackStats.getMaxElevation() * UnitConversionUtils.M_TO_FT);
|
||||||
final long elevationGainInMeters =
|
final long elevationGainInMeters =
|
||||||
Math.round(trackStats.getTotalElevationGain());
|
Math.round(trackStats.getTotalElevationGain());
|
||||||
final long elevationGainInFeet = Math.round(
|
final long elevationGainInFeet = Math.round(
|
||||||
trackStats.getTotalElevationGain() * UnitConversions.M_TO_FT);
|
trackStats.getTotalElevationGain() * UnitConversionUtils.M_TO_FT);
|
||||||
|
|
||||||
long minGrade = 0;
|
long minGrade = 0;
|
||||||
long maxGrade = 0;
|
long maxGrade = 0;
|
||||||
@@ -391,8 +391,8 @@ public class StringUtils implements DescriptionGenerator {
|
|||||||
|
|
||||||
private String getSpeedString(double speed, int speedLabel, int paceLabel,
|
private String getSpeedString(double speed, int speedLabel, int paceLabel,
|
||||||
boolean displaySpeed) {
|
boolean displaySpeed) {
|
||||||
double speedInKph = speed * 3.6;
|
double speedInKph = speed * UnitConversionUtils.MS_TO_KMH;
|
||||||
double speedInMph = speedInKph * UnitConversions.KMH_TO_MPH;
|
double speedInMph = speedInKph * UnitConversionUtils.KM_TO_MI;
|
||||||
if (displaySpeed) {
|
if (displaySpeed) {
|
||||||
return String.format("%s: %.2f %s (%.1f %s)<br>",
|
return String.format("%s: %.2f %s (%.1f %s)<br>",
|
||||||
context.getString(speedLabel),
|
context.getString(speedLabel),
|
||||||
@@ -424,26 +424,26 @@ public class StringUtils implements DescriptionGenerator {
|
|||||||
public String generateWaypointDescription(Waypoint waypoint) {
|
public String generateWaypointDescription(Waypoint waypoint) {
|
||||||
TripStatistics stats = waypoint.getStatistics();
|
TripStatistics stats = waypoint.getStatistics();
|
||||||
|
|
||||||
final double distanceInKm = stats.getTotalDistance() / 1000.0;
|
final double distanceInKm = stats.getTotalDistance() * UnitConversionUtils.M_TO_KM;
|
||||||
final double distanceInMiles = distanceInKm * UnitConversions.KM_TO_MI;
|
final double distanceInMiles = distanceInKm * UnitConversionUtils.KM_TO_MI;
|
||||||
final double averageSpeedInKmh = stats.getAverageSpeed() * 3.6;
|
final double averageSpeedInKmh = stats.getAverageSpeed() * UnitConversionUtils.MS_TO_KMH;
|
||||||
final double averageSpeedInMph =
|
final double averageSpeedInMph =
|
||||||
averageSpeedInKmh * UnitConversions.KMH_TO_MPH;
|
averageSpeedInKmh * UnitConversionUtils.KM_TO_MI;
|
||||||
final double movingSpeedInKmh = stats.getAverageMovingSpeed() * 3.6;
|
final double movingSpeedInKmh = stats.getAverageMovingSpeed() * UnitConversionUtils.MS_TO_KMH;
|
||||||
final double movingSpeedInMph =
|
final double movingSpeedInMph =
|
||||||
movingSpeedInKmh * UnitConversions.KMH_TO_MPH;
|
movingSpeedInKmh * UnitConversionUtils.KM_TO_MI;
|
||||||
final double maxSpeedInKmh = stats.getMaxSpeed() * 3.6;
|
final double maxSpeedInKmh = stats.getMaxSpeed() * UnitConversionUtils.MS_TO_KMH;
|
||||||
final double maxSpeedInMph = maxSpeedInKmh * UnitConversions.KMH_TO_MPH;
|
final double maxSpeedInMph = maxSpeedInKmh * UnitConversionUtils.KM_TO_MI;
|
||||||
final long minElevationInMeters = Math.round(stats.getMinElevation());
|
final long minElevationInMeters = Math.round(stats.getMinElevation());
|
||||||
final long minElevationInFeet =
|
final long minElevationInFeet =
|
||||||
Math.round(stats.getMinElevation() * UnitConversions.M_TO_FT);
|
Math.round(stats.getMinElevation() * UnitConversionUtils.M_TO_FT);
|
||||||
final long maxElevationInMeters = Math.round(stats.getMaxElevation());
|
final long maxElevationInMeters = Math.round(stats.getMaxElevation());
|
||||||
final long maxElevationInFeet =
|
final long maxElevationInFeet =
|
||||||
Math.round(stats.getMaxElevation() * UnitConversions.M_TO_FT);
|
Math.round(stats.getMaxElevation() * UnitConversionUtils.M_TO_FT);
|
||||||
final long elevationGainInMeters =
|
final long elevationGainInMeters =
|
||||||
Math.round(stats.getTotalElevationGain());
|
Math.round(stats.getTotalElevationGain());
|
||||||
final long elevationGainInFeet = Math.round(
|
final long elevationGainInFeet = Math.round(
|
||||||
stats.getTotalElevationGain() * UnitConversions.M_TO_FT);
|
stats.getTotalElevationGain() * UnitConversionUtils.M_TO_FT);
|
||||||
long theMinGrade = 0;
|
long theMinGrade = 0;
|
||||||
long theMaxGrade = 0;
|
long theMaxGrade = 0;
|
||||||
double maxGrade = stats.getMaxGrade();
|
double maxGrade = stats.getMaxGrade();
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* 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 com.google.android.apps.mytracks.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utilities for converting units.
|
||||||
|
*
|
||||||
|
* @author Sandor Dornbush
|
||||||
|
*/
|
||||||
|
public class UnitConversionUtils {
|
||||||
|
|
||||||
|
private UnitConversionUtils() {}
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
@@ -1,35 +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 com.google.android.apps.mytracks.util;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unit conversion constants.
|
|
||||||
*
|
|
||||||
* @author Sandor Dornbush
|
|
||||||
*/
|
|
||||||
public abstract 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;
|
|
||||||
|
|
||||||
protected UnitConversions() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -26,7 +26,7 @@ import com.google.android.apps.mytracks.content.TracksColumns;
|
|||||||
import com.google.android.apps.mytracks.services.ControlRecordingService;
|
import com.google.android.apps.mytracks.services.ControlRecordingService;
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversionUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
@@ -216,9 +216,9 @@ public class TrackWidgetProvider
|
|||||||
|
|
||||||
// TODO replace this with format strings and miles.
|
// TODO replace this with format strings and miles.
|
||||||
// convert meters to kilometers
|
// convert meters to kilometers
|
||||||
double displayDistance = stats.getTotalDistance() / 1000.0;
|
double displayDistance = stats.getTotalDistance() * UnitConversionUtils.M_TO_KM;
|
||||||
if (!isMetric) {
|
if (!isMetric) {
|
||||||
displayDistance *= UnitConversions.KM_TO_MI;
|
displayDistance *= UnitConversionUtils.KM_TO_MI;
|
||||||
}
|
}
|
||||||
String distance =
|
String distance =
|
||||||
StringUtils.formatSingleDecimalPlace(displayDistance) + " " + this.distanceLabel;
|
StringUtils.formatSingleDecimalPlace(displayDistance) + " " + this.distanceLabel;
|
||||||
@@ -228,9 +228,9 @@ public class TrackWidgetProvider
|
|||||||
String speed = unknown;
|
String speed = unknown;
|
||||||
if (!Double.isNaN(stats.getAverageMovingSpeed())) {
|
if (!Double.isNaN(stats.getAverageMovingSpeed())) {
|
||||||
// Convert m/s to km/h
|
// Convert m/s to km/h
|
||||||
double displaySpeed = stats.getAverageMovingSpeed() * 3.6;
|
double displaySpeed = stats.getAverageMovingSpeed() * UnitConversionUtils.MS_TO_KMH;
|
||||||
if (!isMetric) {
|
if (!isMetric) {
|
||||||
displaySpeed *= UnitConversions.KMH_TO_MPH;
|
displaySpeed *= UnitConversionUtils.KM_TO_MI;
|
||||||
}
|
}
|
||||||
if (reportSpeed) {
|
if (reportSpeed) {
|
||||||
speed = StringUtils.formatSingleDecimalPlace(displaySpeed) + " " + this.speedLabel;
|
speed = StringUtils.formatSingleDecimalPlace(displaySpeed) + " " + this.speedLabel;
|
||||||
|
|||||||
Reference in New Issue
Block a user