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.gain.setText(interval.hasGain() ? StringUtils.formatDistance(context, Distance.of(interval.getGain_m()), metricUnits) : context.getString(R.string.value_unknown));
viewHolder.loss.setText(interval.hasLoss() ? StringUtils.formatDistance(context, Distance.of(interval.getLoss_m()), metricUnits) : context.getString(R.string.value_unknown));
viewHolder.gain.setText(StringUtils.formatAltitude(context, interval.getGain_m(), metricUnits));
viewHolder.loss.setText(StringUtils.formatAltitude(context, interval.getLoss_m(), metricUnits));
}
@@ -247,11 +247,11 @@ public class StatisticsRecordedFragment extends Fragment {
Pair<String, String> parts;
parts = StringUtils.formatAltitude(getContext(), altitudeGain_m, preferenceMetricUnits);
parts = StringUtils.getAltitudeParts(getContext(), altitudeGain_m, preferenceMetricUnits);
viewBinding.statsAltitudeGainValue.setText(parts.first);
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.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.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.statsAltitudeLossUnit.setText(parts.second);
}
@@ -283,7 +283,7 @@ public class StatisticsRecordingFragment extends Fragment {
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.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}
*/
public static Pair<String, String> formatAltitude(Context context, Float altitude_m, boolean metricUnits) {
String value = context.getString(R.string.value_unknown);
public static Pair<String, String> getAltitudeParts(Context context, Float altitude_m, boolean metricUnits) {
String formattedValue = context.getString(R.string.value_unknown);
String unit = context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet);
if (altitude_m != null) {
if (!metricUnits) {
altitude_m *= (float) UnitConversions.M_TO_FT;
}
value = StringUtils.formatDecimal(altitude_m, 0);
double value = Distance.of(altitude_m).toM_FT(metricUnits);
formattedValue = StringUtils.formatDecimal(value, 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) {
@@ -146,7 +146,7 @@ public class IntervalStatistics {
return gain_m != null;
}
public float getGain_m() {
public Float getGain_m() {
return gain_m;
}
@@ -154,7 +154,7 @@ public class IntervalStatistics {
return loss_m != null;
}
public float getLoss_m() {
public Float getLoss_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 -->
<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="altitude_with_unit" translatable="false">%1$s %2$s</string>
<string name="time" translatable="false">%1$d:%2$02d</string>
<!-- List here all used libraries (will be shown in the about activity -->