forked from upstream-mirrors/OpenTracks
Display pace in mm:second format.
This commit is contained in:
@@ -1974,7 +1974,7 @@ limitations under the License.
|
|||||||
</string>
|
</string>
|
||||||
<string name="settings_stats_rate_title"
|
<string name="settings_stats_rate_title"
|
||||||
translation_description="In the 'Stats' settings, the option to change the preferred rate,
|
translation_description="In the 'Stats' settings, the option to change the preferred rate,
|
||||||
either speed (mi/hr) or pace (hr/mi).
|
either speed (mi/hr) or pace (min/mi).
|
||||||
|
|
||||||
Character limit: ~23 (1 line)">
|
Character limit: ~23 (1 line)">
|
||||||
Preferred rate
|
Preferred rate
|
||||||
@@ -2131,7 +2131,7 @@ limitations under the License.
|
|||||||
Moving time
|
Moving time
|
||||||
</string>
|
</string>
|
||||||
<string name="stats_pace"
|
<string name="stats_pace"
|
||||||
translation_description="In the 'Stats' page, the pace like hours per mile.
|
translation_description="In the 'Stats' page, the pace like minutes per mile.
|
||||||
|
|
||||||
Character limit: ~23 (1 line)">
|
Character limit: ~23 (1 line)">
|
||||||
Pace
|
Pace
|
||||||
|
|||||||
@@ -219,6 +219,15 @@ public class DescriptionGeneratorImpl implements DescriptionGenerator {
|
|||||||
void writePace(double speed, StringBuilder builder, int resId, String lineBreak) {
|
void writePace(double speed, StringBuilder builder, int resId, String lineBreak) {
|
||||||
String[] paceInMetrics = StringUtils.getSpeedParts(context, speed, true, false);
|
String[] paceInMetrics = StringUtils.getSpeedParts(context, speed, true, false);
|
||||||
String[] paceInImperial = StringUtils.getSpeedParts(context, speed, false, 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(context.getString(resId, paceInMetrics[0], paceInImperial[0]));
|
||||||
builder.append(lineBreak);
|
builder.append(lineBreak);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -213,19 +213,18 @@ public class StringUtils {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
speed *= UnitConversions.MS_TO_KMH;
|
speed *= UnitConversions.MS_TO_KMH;
|
||||||
if (metricUnits) {
|
if (!metricUnits) {
|
||||||
if (!reportSpeed) {
|
|
||||||
// convert from hours to minutes
|
|
||||||
speed = speed == 0 ? 0.0 : 60.0 / speed;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
speed *= UnitConversions.KM_TO_MI;
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -68,9 +68,9 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
+ "Average speed: 120.00 km/h (74.6 mi/h)<br>"
|
+ "Average speed: 120.00 km/h (74.6 mi/h)<br>"
|
||||||
+ "Average moving speed: 240.00 km/h (149.1 mi/h)<br>"
|
+ "Average moving speed: 240.00 km/h (149.1 mi/h)<br>"
|
||||||
+ "Max speed: 360.00 km/h (223.7 mi/h)<br>"
|
+ "Max speed: 360.00 km/h (223.7 mi/h)<br>"
|
||||||
+ "Average pace: 0.50 min/km (0.80 min/mi)<br>"
|
+ "Average pace: 0:30 min/km (0:48 min/mi)<br>"
|
||||||
+ "Average moving pace: 0.25 min/km (0.40 min/mi)<br>"
|
+ "Average moving pace: 0:15 min/km (0:24 min/mi)<br>"
|
||||||
+ "Fastest pace: 0.17 min/km (0.27 min/mi)<br>"
|
+ "Fastest pace: 0:10 min/km (0:16 min/mi)<br>"
|
||||||
+ "Max elevation: 550 m (1804 ft)<br>"
|
+ "Max elevation: 550 m (1804 ft)<br>"
|
||||||
+ "Min elevation: -500 m (-1640 ft)<br>"
|
+ "Min elevation: -500 m (-1640 ft)<br>"
|
||||||
+ "Elevation gain: 6000 m (19685 ft)<br>"
|
+ "Elevation gain: 6000 m (19685 ft)<br>"
|
||||||
@@ -103,9 +103,9 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
+ "Average speed: 120.00 km/h (74.6 mi/h)\n"
|
+ "Average speed: 120.00 km/h (74.6 mi/h)\n"
|
||||||
+ "Average moving speed: 240.00 km/h (149.1 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"
|
+ "Max speed: 360.00 km/h (223.7 mi/h)\n"
|
||||||
+ "Average pace: 0.50 min/km (0.80 min/mi)\n"
|
+ "Average pace: 0:30 min/km (0:48 min/mi)\n"
|
||||||
+ "Average moving pace: 0.25 min/km (0.40 min/mi)\n"
|
+ "Average moving pace: 0:15 min/km (0:24 min/mi)\n"
|
||||||
+ "Fastest pace: 0.17 min/km (0.27 min/mi)\n"
|
+ "Fastest pace: 0:10 min/km (0:16 min/mi)\n"
|
||||||
+ "Max elevation: 550 m (1804 ft)\n"
|
+ "Max elevation: 550 m (1804 ft)\n"
|
||||||
+ "Min elevation: -500 m (-1640 ft)\n"
|
+ "Min elevation: -500 m (-1640 ft)\n"
|
||||||
+ "Elevation gain: 6000 m (19685 ft)\n"
|
+ "Elevation gain: 6000 m (19685 ft)\n"
|
||||||
@@ -163,7 +163,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWritePace() {
|
public void testWritePace() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writePace(1.1, builder, R.string.description_average_pace, "\n");
|
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user