diff --git a/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java b/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java index e44d781ce..aa7f574d7 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java @@ -70,7 +70,9 @@ public record Statistics( */ //TODO Should be refactored to append only @NonNull - public Statistics merge(@NonNull Statistics other) { + public Statistics merge(Statistics other) { + if (other == null) return this; + HeartRate newAvgHeartRate = avgHeartRate; if (avgHeartRate == null) { newAvgHeartRate = other.avgHeartRate; diff --git a/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java index b0a62a9fa..84ff857ec 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/SegmentStatisticUpdater.java @@ -107,7 +107,7 @@ public class SegmentStatisticUpdater { } public Statistics merge(Statistics statistics) { - return statistics.merge(getStatistics()); + return getStatistics().merge(statistics); } public Statistics getStatistics() { diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java index 37f7c3eef..7531f1c34 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java @@ -41,8 +41,7 @@ public class TrackStatisticsUpdater { private static final String TAG = TrackStatisticsUpdater.class.getSimpleName(); - @NonNull - private Statistics statisticsWithoutCurrentSegment; + private Statistics statisticsWithoutCurrentSegment = null; private float averageHeartRateBPM; private Duration totalHeartRateDuration = Duration.ZERO; @@ -56,18 +55,11 @@ public class TrackStatisticsUpdater { private boolean isIdle; - @Deprecated - public TrackStatisticsUpdater() { - this(Statistics.DEFAULT); - } - public TrackStatisticsUpdater(@NonNull TrackPoint trackPoint) { - this(); addTrackPoint(trackPoint); } public TrackStatisticsUpdater(List trackPoints) { - this(); assert !trackPoints.isEmpty(); //TODO Enforce that this is always true (e.g., import) trackPoints.forEach(this::addTrackPoint); @@ -163,10 +155,10 @@ public class TrackStatisticsUpdater { currentSegment.addTotalDistance(movingDistance); } - if (!isIdle) { - if (!trackPoint.isSegmentManualStart() && lastTrackPoint != null) { - currentSegment.addMovingTime(trackPoint, lastTrackPoint); - } + if (!isIdle + && !trackPoint.isSegmentManualStart() + && lastTrackPoint != null) { + currentSegment.addMovingTime(trackPoint, lastTrackPoint); } if (trackPoint.isIdleTriggered()) {