diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml
index dad7c73a9..a3fcfe682 100644
--- a/MyTracks/res/values/strings.xml
+++ b/MyTracks/res/values/strings.xml
@@ -384,9 +384,9 @@ limitations under the License.
- Average moving pace: %1$.2f min/km (%2$.1f min/mi)
+ %1$s pace in minutes per kilometer
+ %2$s pace in minutes per mile">
+ Average moving pace: %1$s min/km (%2$s min/mi)
- Average pace: %1$.2f min/km (%2$.1f min/mi)
+ %1$s pace in minutes per kilometer
+ %2$s pace in minutes per mile">
+ Average pace: %1$s min/km (%2$s min/mi)
- Fastest pace: %1$.2f min/km (%2$.1f min/mi)
+ %1$s pace in minutes per kilometer
+ %2$s pace in minutes per mile">
+ Fastest pace: %1$s min/km (%2$s min/mi)
diff --git a/MyTracks/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImpl.java b/MyTracks/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImpl.java
index e647dc4f2..1669bf15d 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImpl.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImpl.java
@@ -24,7 +24,6 @@ import com.google.android.maps.mytracks.R;
import com.google.common.annotations.VisibleForTesting;
import android.content.Context;
-import android.util.Pair;
import java.util.Vector;
@@ -117,25 +116,24 @@ public class DescriptionGeneratorImpl implements DescriptionGenerator {
writeTime(stats.getMovingTime(), builder, R.string.description_moving_time, lineBreak);
// Average speed
- Pair averageSpeed = writeSpeed(
- stats.getAverageSpeed(), builder, R.string.description_average_speed, lineBreak);
+ writeSpeed(stats.getAverageSpeed(), builder, R.string.description_average_speed, lineBreak);
// Average moving speed
- Pair averageMovingSpeed = writeSpeed(stats.getAverageMovingSpeed(), builder,
- R.string.description_average_moving_speed, lineBreak);
+ writeSpeed(stats.getAverageMovingSpeed(), builder, R.string.description_average_moving_speed,
+ lineBreak);
// Max speed
- Pair maxSpeed = writeSpeed(
- stats.getMaxSpeed(), builder, R.string.description_max_speed, lineBreak);
+ writeSpeed(stats.getMaxSpeed(), builder, R.string.description_max_speed, lineBreak);
// Average pace
- writePace(averageSpeed, builder, R.string.description_average_pace, lineBreak);
+ writePace(stats.getAverageSpeed(), builder, R.string.description_average_pace, lineBreak);
// Average moving pace
- writePace(averageMovingSpeed, builder, R.string.description_average_moving_pace, lineBreak);
+ writePace(stats.getAverageMovingSpeed(), builder, R.string.description_average_moving_pace,
+ lineBreak);
// Fastest pace
- writePace(maxSpeed, builder, R.string.description_fastest_pace, lineBreak);
+ writePace(stats.getMaxSpeed(), builder, R.string.description_fastest_pace, lineBreak);
// Max elevation
writeElevation(stats.getMaxElevation(), builder, R.string.description_max_elevation, lineBreak);
@@ -199,34 +197,29 @@ public class DescriptionGeneratorImpl implements DescriptionGenerator {
* @param builder StringBuilder to append speed
* @param resId resource id of speed string
* @param lineBreak line break string
- * @return a pair of speed, first in kilometers per hour, second in miles per
- * hour.
*/
@VisibleForTesting
- Pair writeSpeed(
+ void writeSpeed(
double speed, StringBuilder builder, int resId, String lineBreak) {
double speedInKmHr = speed * UnitConversions.MS_TO_KMH;
double speedInMiHr = speedInKmHr * UnitConversions.KM_TO_MI;
builder.append(context.getString(resId, speedInKmHr, speedInMiHr));
builder.append(lineBreak);
- return Pair.create(speedInKmHr, speedInMiHr);
}
/**
* Writes pace.
- *
- * @param speed a pair of speed, first in kilometers per hour, second in miles
- * per hour
+ *
+ * @param speed speed in meters per second
* @param builder StringBuilder to append pace
* @param resId resource id of pace string
* @param lineBreak line break string
*/
@VisibleForTesting
- void writePace(
- Pair speed, StringBuilder builder, int resId, String lineBreak) {
- double paceInMinKm = getPace(speed.first);
- double paceInMinMi = getPace(speed.second);
- builder.append(context.getString(resId, paceInMinKm, paceInMinMi));
+ void writePace(double speed, StringBuilder builder, int resId, String lineBreak) {
+ String[] paceInMetrics = StringUtils.getSpeedParts(context, speed, true, false);
+ String[] paceInImperial = StringUtils.getSpeedParts(context, speed, false, false);
+ builder.append(context.getString(resId, paceInMetrics[0], paceInImperial[0]));
builder.append(lineBreak);
}
@@ -262,14 +255,4 @@ public class DescriptionGeneratorImpl implements DescriptionGenerator {
builder.append(context.getString(resId, gradeInPercent));
builder.append(lineBreak);
}
-
- /**
- * Gets pace (in minutes) from speed.
- *
- * @param speed speed in hours
- */
- @VisibleForTesting
- double getPace(double speed) {
- return speed == 0 ? 0.0 : 60.0 / speed; // convert from hours to minutes
- }
}
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImplTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImplTest.java
index 245e5f3bd..01d17fd48 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImplTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImplTest.java
@@ -68,9 +68,9 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
+ "Average speed: 120.00 km/h (74.6 mi/h)
"
+ "Average moving speed: 240.00 km/h (149.1 mi/h)
"
+ "Max speed: 360.00 km/h (223.7 mi/h)
"
- + "Average pace: 0.50 min/km (0.8 min/mi)
"
- + "Average moving pace: 0.25 min/km (0.4 min/mi)
"
- + "Fastest pace: 0.17 min/km (0.3 min/mi)
"
+ + "Average pace: 0.50 min/km (0.80 min/mi)
"
+ + "Average moving pace: 0.25 min/km (0.40 min/mi)
"
+ + "Fastest pace: 0.17 min/km (0.27 min/mi)
"
+ "Max elevation: 550 m (1804 ft)
"
+ "Min elevation: -500 m (-1640 ft)
"
+ "Elevation gain: 6000 m (19685 ft)
"
@@ -103,9 +103,9 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
+ "Average speed: 120.00 km/h (74.6 mi/h)\n"
+ "Average moving speed: 240.00 km/h (149.1 mi/h)\n"
+ "Max speed: 360.00 km/h (223.7 mi/h)\n"
- + "Average pace: 0.50 min/km (0.8 min/mi)\n"
- + "Average moving pace: 0.25 min/km (0.4 min/mi)\n"
- + "Fastest pace: 0.17 min/km (0.3 min/mi)\n"
+ + "Average pace: 0.50 min/km (0.80 min/mi)\n"
+ + "Average moving pace: 0.25 min/km (0.40 min/mi)\n"
+ + "Fastest pace: 0.17 min/km (0.27 min/mi)\n"
+ "Max elevation: 550 m (1804 ft)\n"
+ "Min elevation: -500 m (-1640 ft)\n"
+ "Elevation gain: 6000 m (19685 ft)\n"
@@ -162,9 +162,8 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
*/
public void testWritePace() {
StringBuilder builder = new StringBuilder();
- descriptionGenerator.writePace(
- new Pair(1.1, 2.2), builder, R.string.description_average_pace, "\n");
- assertEquals("Average pace: 54.55 min/km (27.3 min/mi)\n", builder.toString());
+ descriptionGenerator.writePace(1.1, builder, R.string.description_average_pace, "\n");
+ assertEquals("Average pace: 15.15 min/km (24.38 min/mi)\n", builder.toString());
}
/**
@@ -197,18 +196,4 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
Double.POSITIVE_INFINITY, builder, R.string.description_max_grade, "
");
assertEquals("Max grade: 0 %
", builder.toString());
}
-
- /**
- * Tests {@link DescriptionGeneratorImpl#getPace(double)}.
- */
- public void testGetPace() {
- assertEquals(12.0, descriptionGenerator.getPace(5));
- }
-
- /**
- * Tests {@link DescriptionGeneratorImpl#getPace(double)} with zero speed.
- */
- public void testGetPace_zero() {
- assertEquals(0.0, descriptionGenerator.getPace(0));
- }
}