diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml
index a3fcfe682..90f50c968 100644
--- a/MyTracks/res/values/strings.xml
+++ b/MyTracks/res/values/strings.xml
@@ -1974,7 +1974,7 @@ limitations under the License.
Preferred rate
@@ -2131,7 +2131,7 @@ limitations under the License.
Moving time
Pace
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 1669bf15d..42cbeae64 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImpl.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/content/DescriptionGeneratorImpl.java
@@ -219,6 +219,15 @@ public class DescriptionGeneratorImpl implements DescriptionGenerator {
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);
+
+ if (paceInMetrics[0] == null) {
+ paceInMetrics[0] = context.getString(R.string.value_unknown);
+ }
+
+ if (paceInImperial[0] == null) {
+ paceInImperial[0] = context.getString(R.string.value_unknown);
+ }
+
builder.append(context.getString(resId, paceInMetrics[0], paceInImperial[0]));
builder.append(lineBreak);
}
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 0e09a817e..9771fbbf0 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java
@@ -213,19 +213,18 @@ public class StringUtils {
return result;
}
speed *= UnitConversions.MS_TO_KMH;
- if (metricUnits) {
- if (!reportSpeed) {
- // convert from hours to minutes
- speed = speed == 0 ? 0.0 : 60.0 / speed;
- }
- } else {
+ if (!metricUnits) {
speed *= UnitConversions.KM_TO_MI;
- if (!reportSpeed) {
- // convert from hours to minutes
- speed = speed == 0 ? 0.0 : 60.0 / speed;
- }
}
- result[0] = String.format("%.2f", speed);
+ if (reportSpeed) {
+ result[0] = String.format("%.2f", speed);
+ } else {
+ // convert from hours to minutes
+ double pace = speed == 0 ? 0.0 : 60.0 / speed;
+ int minutes = (int) pace;
+ int seconds = (int) Math.round((pace - minutes) * 60.0);
+ result[0] = String.format("%d:%02d", minutes, seconds);
+ }
return result;
}
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 01d17fd48..d2d672693 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.80 min/mi)
"
- + "Average moving pace: 0.25 min/km (0.40 min/mi)
"
- + "Fastest pace: 0.17 min/km (0.27 min/mi)
"
+ + "Average pace: 0:30 min/km (0:48 min/mi)
"
+ + "Average moving pace: 0:15 min/km (0:24 min/mi)
"
+ + "Fastest pace: 0:10 min/km (0:16 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.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"
+ + "Average pace: 0:30 min/km (0:48 min/mi)\n"
+ + "Average moving pace: 0:15 min/km (0:24 min/mi)\n"
+ + "Fastest pace: 0:10 min/km (0:16 min/mi)\n"
+ "Max elevation: 550 m (1804 ft)\n"
+ "Min elevation: -500 m (-1640 ft)\n"
+ "Elevation gain: 6000 m (19685 ft)\n"
@@ -163,7 +163,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
public void testWritePace() {
StringBuilder builder = new StringBuilder();
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());
+ assertEquals("Average pace: 15:09 min/km (24:23 min/mi)\n", builder.toString());
}
/**