Intervals: if gain/loss is not available show "-" instead of null.

Fixes #1338.
This commit is contained in:
Dennis Guse
2022-07-26 22:30:08 +02:00
parent 95f584b554
commit 78aa5d51c6
3 changed files with 13 additions and 3 deletions
@@ -13,6 +13,14 @@ public class Distance {
return new Distance(distance_m); return new Distance(distance_m);
} }
public static Distance of(Double distance_m) {
if (distance_m == null) {
return Distance.of(Double.NaN);
} else {
return Distance.of((double) distance_m);
}
}
public static Distance of(String distance_m) { public static Distance of(String distance_m) {
return of(Float.parseFloat(distance_m)); return of(Float.parseFloat(distance_m));
} }
@@ -42,12 +42,13 @@ public class DistanceFormatter {
*/ */
public Pair<String, String> getDistanceParts(Distance distance) { public Pair<String, String> getDistanceParts(Distance distance) {
if (distance.isInvalid()) { if (distance.isInvalid()) {
String valueUnknown = resources.getString(R.string.value_unknown);
switch (unitSystem) { switch (unitSystem) {
case METRIC: case METRIC:
return new Pair<>(null, resources.getString(R.string.unit_meter)); return new Pair<>(valueUnknown, resources.getString(R.string.unit_meter));
case IMPERIAL: case IMPERIAL:
case NAUTICAL_IMPERIAL: case NAUTICAL_IMPERIAL:
return new Pair<>(null, resources.getString(R.string.unit_feet)); return new Pair<>(valueUnknown, resources.getString(R.string.unit_feet));
default: default:
throw new RuntimeException("Not implemented"); throw new RuntimeException("Not implemented");
} }
@@ -254,13 +254,14 @@ 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}
*/ */
//TODO altitude_m should be double or a value object
public static Pair<String, String> getAltitudeParts(Context context, Float altitude_m, UnitSystem unitSystem) { public static Pair<String, String> getAltitudeParts(Context context, Float altitude_m, UnitSystem unitSystem) {
DistanceFormatter formatter = DistanceFormatter.Builder() DistanceFormatter formatter = DistanceFormatter.Builder()
.setDecimalCount(1) .setDecimalCount(1)
.setUnit(unitSystem) .setUnit(unitSystem)
.build(context); .build(context);
Distance distance = altitude_m != null ? Distance.of(altitude_m) : Distance.of(Double.NaN); //TODO Refactor Double.NaN Distance distance = altitude_m != null ? Distance.of(altitude_m) : Distance.of((Double) null);
return formatter.getDistanceParts(distance); return formatter.getDistanceParts(distance);
} }