diff --git a/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java index 6ddeb9fee..fa7df7193 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java @@ -361,10 +361,6 @@ public class SegmentStatisticUpdater { } } - public boolean hasTotalAltitudeGain() { - return totalAltitudeGain_m != null; - } - @Nullable public Float getTotalAltitudeGain() { return totalAltitudeGain_m; diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java index c1e93c328..724ebb762 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java @@ -79,6 +79,7 @@ public class TrackStatisticsUpdater { } //TODO Return Statistic? + @Deprecated public SegmentStatisticUpdater getTrackStatistics() { // Take a snapshot - we don't want anyone messing with our trackStatistics SegmentStatisticUpdater stats = new SegmentStatisticUpdater(segmentStatisticUpdater); @@ -86,6 +87,10 @@ public class TrackStatisticsUpdater { return stats; } + public Statistics getStatistics() { + return getTrackStatistics().getStatistics(); + } + public Statistics getCurrentSegment() { return currentSegment.getStatistics(); } diff --git a/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsUpdater.java index 8295afa0f..317d10214 100644 --- a/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsUpdater.java @@ -11,8 +11,8 @@ import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.HeartRate; import de.dennisguse.opentracks.data.models.Power; import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Statistics; import de.dennisguse.opentracks.data.models.TrackPoint; -import de.dennisguse.opentracks.stats.SegmentStatisticUpdater; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; public class IntervalStatisticsUpdater { @@ -46,8 +46,8 @@ public class IntervalStatisticsUpdater { trackPoint = trackPointIterator.next(); trackStatisticsUpdater.addTrackPoint(trackPoint); - if (trackStatisticsUpdater.getTrackStatistics().getTotalDistance().plus(interval.distance).greaterOrEqualThan(distanceInterval)) { - interval.add(trackStatisticsUpdater.getTrackStatistics(), trackPoint); + if (trackStatisticsUpdater.getStatistics().totalDistance().plus(interval.distance).greaterOrEqualThan(distanceInterval)) { + interval.add(trackStatisticsUpdater.getStatistics(), trackPoint); double adjustFactor = distanceInterval.dividedBy(interval.distance); Interval adjustedInterval = new Interval(interval, adjustFactor); @@ -66,9 +66,9 @@ public class IntervalStatisticsUpdater { } if (newIntervalAdded) { - lastInterval.add(trackStatisticsUpdater.getTrackStatistics(), null); + lastInterval.add(trackStatisticsUpdater.getStatistics(), null); } else { - lastInterval.set(trackStatisticsUpdater.getTrackStatistics()); + lastInterval.set(trackStatisticsUpdater.getStatistics()); } return trackPoint != null ? trackPoint.getId() : null; @@ -98,6 +98,7 @@ public class IntervalStatisticsUpdater { return null; } + //TODO Could be replaced with Statistics? public static class Interval { private Distance distance = Distance.of(0); private Duration time = Duration.ofSeconds(0); @@ -172,13 +173,15 @@ public class IntervalStatisticsUpdater { return avgPower; } - private void add(SegmentStatisticUpdater trackStatistics, @Nullable TrackPoint lastTrackPoint) { - distance = distance.plus(trackStatistics.getTotalDistance()); - time = time.plus(trackStatistics.getTotalTime()); - gain_m = trackStatistics.hasTotalAltitudeGain() ? trackStatistics.getTotalAltitudeGain() : gain_m; - loss_m = trackStatistics.hasTotalAltitudeLoss() ? trackStatistics.getTotalAltitudeLoss() : loss_m; - avgHeartRate = trackStatistics.getAverageHeartRate(); - avgPower = trackStatistics.getAveragePower(); + private void add(Statistics trackStatistics, @Nullable TrackPoint lastTrackPoint) { + distance = distance.plus(trackStatistics.totalDistance()); + time = time.plus(trackStatistics.totalTime()); + if (trackStatistics.altitudeGainLoss() != null) { + gain_m = trackStatistics.altitudeGainLoss().gain_m(); + loss_m = trackStatistics.altitudeGainLoss().loss_m(); + } + avgHeartRate = trackStatistics.avgHeartRate(); + avgPower = trackStatistics.avgPower(); if (lastTrackPoint == null) { return; } @@ -190,13 +193,15 @@ public class IntervalStatisticsUpdater { } } - private void set(SegmentStatisticUpdater trackStatistics) { - distance = trackStatistics.getTotalDistance(); - time = trackStatistics.getTotalTime(); - gain_m = trackStatistics.hasTotalAltitudeGain() ? trackStatistics.getTotalAltitudeGain() : gain_m; - loss_m = trackStatistics.hasTotalAltitudeLoss() ? trackStatistics.getTotalAltitudeLoss() : loss_m; - avgHeartRate = trackStatistics.getAverageHeartRate(); - avgPower = trackStatistics.getAveragePower(); + private void set(Statistics trackStatistics) { + distance = trackStatistics.totalDistance(); + time = trackStatistics.totalTime(); + if (trackStatistics.altitudeGainLoss() != null) { + gain_m = trackStatistics.altitudeGainLoss().gain_m(); + loss_m = trackStatistics.altitudeGainLoss().loss_m(); + } + avgHeartRate = trackStatistics.avgHeartRate(); + avgPower = trackStatistics.avgPower(); } } }