Added value object: AltitudeExtremities.

This commit is contained in:
Dennis Guse
2025-10-28 08:31:43 +01:00
parent 4580f2a7bb
commit be653b73ee
7 changed files with 18 additions and 21 deletions
@@ -339,7 +339,7 @@ public class ContentProviderUtils {
values.put(TracksColumns.AVGMOVINGSPEED, trackStatistics.getAverageMovingSpeed().toMPS());
values.put(TracksColumns.MAXSPEED, trackStatistics.maxSpeed().toMPS());
if (track.getTrackStatistics().hasAltitudeExtremities()) {
if (trackStatistics.altitudeExtremities() != null) {
values.put(TracksColumns.MIN_ALTITUDE, trackStatistics.getMinAltitude());
values.put(TracksColumns.MAX_ALTITUDE, trackStatistics.getMaxAltitude());
}
@@ -0,0 +1,4 @@
package de.dennisguse.opentracks.data.models;
public record AltitudeExtremities(double min_m, double max_m) {
}
@@ -17,11 +17,8 @@ public record Statistics(
boolean isIdle, //TODO Check if this is persisted; if not: remove
Speed maxSpeed,
//TODO Create record for min/max altitude
@Nullable
Double altitudeMin_m,
@Nullable
Double altitudeMax_m,
AltitudeExtremities altitudeExtremities,
@Nullable
AltitudeGainLoss altitudeGainLoss,
@@ -49,14 +46,14 @@ public record Statistics(
@Deprecated
//TODO null should be return (need adjusting ContentPtoviderUtils.createContentValues()
public double getMinAltitude() {
if (altitudeMin_m == null) return 0;
return altitudeMin_m;
if (altitudeExtremities == null) return 0;
return altitudeExtremities.min_m();
}
@Deprecated
//TODO null should be return (need adjusting ContentPtoviderUtils.createContentValues()
public double getMaxAltitude() {
if (altitudeMax_m == null) return 0;
return altitudeMax_m;
if (altitudeExtremities == null) return 0;
return altitudeExtremities.max_m();
}
}
@@ -109,9 +109,9 @@ public class TrackShareSummaryGenerator {
writePace(stats.maxSpeed(), builder, R.string.description_fastest_pace_in_minute);
// Min and Max altitude
if (stats.altitudeMax_m() != null & stats.altitudeMin_m() != null) {
writeAltitude(stats.altitudeMax_m(), builder, R.string.description_max_altitude);
writeAltitude(stats.altitudeMin_m(), builder, R.string.description_min_altitude);
if (stats.altitudeExtremities() != null) {
writeAltitude(stats.altitudeExtremities().max_m(), builder, R.string.description_max_altitude);
writeAltitude(stats.altitudeExtremities().min_m(), builder, R.string.description_min_altitude);
}
// Altitude gain & loss
@@ -24,6 +24,7 @@ import java.time.Duration;
import java.time.Instant;
import de.dennisguse.opentracks.data.models.Altitude;
import de.dennisguse.opentracks.data.models.AltitudeExtremities;
import de.dennisguse.opentracks.data.models.AltitudeGainLoss;
import de.dennisguse.opentracks.data.models.Distance;
import de.dennisguse.opentracks.data.models.HeartRate;
@@ -85,7 +86,9 @@ public class SegmentStatisticUpdater {
totalTime = statistics.totalTime();
movingTime = statistics.movingTime();
maxSpeed = statistics.maxSpeed();
altitudeExtremities.set(statistics.altitudeMin_m(), statistics.altitudeMax_m());
if (statistics.altitudeExtremities() != null) {
altitudeExtremities.set(statistics.altitudeExtremities().min_m(), statistics.altitudeExtremities().max_m());
}
if (statistics.altitudeGainLoss() != null) {
totalAltitudeGain_m = statistics.altitudeGainLoss().gain_m();
totalAltitudeLoss_m = statistics.altitudeGainLoss().loss_m();
@@ -217,8 +220,7 @@ public class SegmentStatisticUpdater {
totalDistance,
isIdle,
getMaxSpeed(),
altitudeExtremities.hasData() ? altitudeExtremities.getMin() : null,
altitudeExtremities.hasData() ? altitudeExtremities.getMax() : null,
altitudeExtremities.hasData() ? new AltitudeExtremities(altitudeExtremities.getMin(), altitudeExtremities.getMax()) : null,
totalAltitudeGain_m != null && totalAltitudeLoss_m != null ? new AltitudeGainLoss(totalAltitudeGain_m, totalAltitudeLoss_m) : null,
avgHeartRate,
avgPower
@@ -343,10 +345,6 @@ public class SegmentStatisticUpdater {
this.maxSpeed = maxSpeed;
}
public boolean hasAltitudeExtremities() {
return altitudeExtremities.hasData();
}
public double getMinAltitude() {
return altitudeExtremities.getMin();
}
@@ -49,7 +49,6 @@ public class SettingsCustomLayoutEditAdapter extends RecyclerView.Adapter<Recycl
false,
Speed.of(0),
null,
null,
new AltitudeGainLoss(0f, 0f),