IntervalStatistics: format gain/loss like on StatisticsRecordingFragment.

This commit is contained in:
Dennis Guse
2021-07-04 09:18:51 +02:00
parent c9231a7640
commit af8d9c08ab
6 changed files with 23 additions and 16 deletions
@@ -59,8 +59,8 @@ public class IntervalStatisticsAdapter extends RecyclerView.Adapter<RecyclerView
viewHolder.rate.setText(StringUtils.formatSpeed(context, interval.getSpeed(), metricUnits, isReportSpeed)); viewHolder.rate.setText(StringUtils.formatSpeed(context, interval.getSpeed(), metricUnits, isReportSpeed));
viewHolder.gain.setText(interval.hasGain() ? StringUtils.formatDistance(context, Distance.of(interval.getGain_m()), metricUnits) : context.getString(R.string.value_unknown)); viewHolder.gain.setText(StringUtils.formatAltitude(context, interval.getGain_m(), metricUnits));
viewHolder.loss.setText(interval.hasLoss() ? StringUtils.formatDistance(context, Distance.of(interval.getLoss_m()), metricUnits) : context.getString(R.string.value_unknown)); viewHolder.loss.setText(StringUtils.formatAltitude(context, interval.getLoss_m(), metricUnits));
} }
@@ -247,11 +247,11 @@ public class StatisticsRecordedFragment extends Fragment {
Pair<String, String> parts; Pair<String, String> parts;
parts = StringUtils.formatAltitude(getContext(), altitudeGain_m, preferenceMetricUnits); parts = StringUtils.getAltitudeParts(getContext(), altitudeGain_m, preferenceMetricUnits);
viewBinding.statsAltitudeGainValue.setText(parts.first); viewBinding.statsAltitudeGainValue.setText(parts.first);
viewBinding.statsAltitudeGainUnit.setText(parts.second); viewBinding.statsAltitudeGainUnit.setText(parts.second);
parts = StringUtils.formatAltitude(getContext(), altitudeLoss_m, preferenceMetricUnits); parts = StringUtils.getAltitudeParts(getContext(), altitudeLoss_m, preferenceMetricUnits);
viewBinding.statsAltitudeLossValue.setText(parts.first); viewBinding.statsAltitudeLossValue.setText(parts.first);
viewBinding.statsAltitudeLossUnit.setText(parts.second); viewBinding.statsAltitudeLossUnit.setText(parts.second);
} }
@@ -189,12 +189,12 @@ public class StatisticsRecordingFragment extends Fragment {
} }
{ {
Pair<String, String> parts = StringUtils.formatAltitude(getContext(), recordingData.getTrackStatistics().getTotalAltitudeGain(), preferenceMetricUnits); Pair<String, String> parts = StringUtils.getAltitudeParts(getContext(), recordingData.getTrackStatistics().getTotalAltitudeGain(), preferenceMetricUnits);
viewBinding.statsAltitudeGainValue.setText(parts.first); viewBinding.statsAltitudeGainValue.setText(parts.first);
viewBinding.statsAltitudeGainUnit.setText(parts.second); viewBinding.statsAltitudeGainUnit.setText(parts.second);
} }
{ {
Pair<String, String> parts = StringUtils.formatAltitude(getContext(), recordingData.getTrackStatistics().getTotalAltitudeLoss(), preferenceMetricUnits); Pair<String, String> parts = StringUtils.getAltitudeParts(getContext(), recordingData.getTrackStatistics().getTotalAltitudeLoss(), preferenceMetricUnits);
viewBinding.statsAltitudeLossValue.setText(parts.first); viewBinding.statsAltitudeLossValue.setText(parts.first);
viewBinding.statsAltitudeLossUnit.setText(parts.second); viewBinding.statsAltitudeLossUnit.setText(parts.second);
} }
@@ -283,7 +283,7 @@ public class StatisticsRecordingFragment extends Fragment {
labelId = latestTrackPoint.getAltitude().getLabelId(); labelId = latestTrackPoint.getAltitude().getLabelId();
} }
Pair<String, String> parts = StringUtils.formatAltitude(getContext(), altitude, preferenceMetricUnits); Pair<String, String> parts = StringUtils.getAltitudeParts(getContext(), altitude, preferenceMetricUnits);
viewBinding.statsAltitudeCurrentValue.setText(parts.first); viewBinding.statsAltitudeCurrentValue.setText(parts.first);
viewBinding.statsAltitudeCurrentUnit.setText(parts.second); viewBinding.statsAltitudeCurrentUnit.setText(parts.second);
@@ -278,16 +278,22 @@ public class StringUtils {
/** /**
* @return the formatted altitude_m (or null) and it's unit as {@link Pair} * @return the formatted altitude_m (or null) and it's unit as {@link Pair}
*/ */
public static Pair<String, String> formatAltitude(Context context, Float altitude_m, boolean metricUnits) { public static Pair<String, String> getAltitudeParts(Context context, Float altitude_m, boolean metricUnits) {
String value = context.getString(R.string.value_unknown); String formattedValue = context.getString(R.string.value_unknown);
String unit = context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet); String unit = context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet);
if (altitude_m != null) { if (altitude_m != null) {
if (!metricUnits) { double value = Distance.of(altitude_m).toM_FT(metricUnits);
altitude_m *= (float) UnitConversions.M_TO_FT; formattedValue = StringUtils.formatDecimal(value, 0);
}
value = StringUtils.formatDecimal(altitude_m, 0);
} }
return new Pair<>(value, unit);
return new Pair<>(formattedValue, unit);
}
public static String formatAltitude(Context context, Float altitude_m, boolean metricUnits) {
Pair<String, String> distanceParts = getAltitudeParts(context, altitude_m, metricUnits);
return context.getString(R.string.altitude_with_unit, distanceParts.first, distanceParts.second);
} }
public static String valueInParentheses(String text) { public static String valueInParentheses(String text) {
@@ -146,7 +146,7 @@ public class IntervalStatistics {
return gain_m != null; return gain_m != null;
} }
public float getGain_m() { public Float getGain_m() {
return gain_m; return gain_m;
} }
@@ -154,7 +154,7 @@ public class IntervalStatistics {
return loss_m != null; return loss_m != null;
} }
public float getLoss_m() { public Float getLoss_m() {
return loss_m; return loss_m;
} }
+1
View File
@@ -28,6 +28,7 @@ limitations under the License.
<!-- If the order depends on the language, we might need to make this translatable --> <!-- If the order depends on the language, we might need to make this translatable -->
<string name="distance_with_unit" translatable="false">%1$s %2$s</string> <string name="distance_with_unit" translatable="false">%1$s %2$s</string>
<string name="speed_with_unit" translatable="false">%1$s %2$s</string> <string name="speed_with_unit" translatable="false">%1$s %2$s</string>
<string name="altitude_with_unit" translatable="false">%1$s %2$s</string>
<string name="time" translatable="false">%1$d:%2$02d</string> <string name="time" translatable="false">%1$d:%2$02d</string>
<!-- List here all used libraries (will be shown in the about activity --> <!-- List here all used libraries (will be shown in the about activity -->