From 6d33adffce177f7dadabc8ca6da040049b5013b3 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sat, 22 Nov 2025 17:49:35 +0100 Subject: [PATCH] Move temp functionality into TrackStatisticsUpdater. --- .../stats/TrackStatisticsUpdaterTest.java | 31 ++++++++++++++++--- .../services/TrackRecordingManager.java | 3 +- .../stats/TrackStatisticsUpdater.java | 7 +++-- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java index d9a136a8c..b9c9be8df 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java @@ -301,15 +301,36 @@ public class TrackStatisticsUpdaterTest { tp4.setSpeed(Speed.of(5f)); TrackPoint tp5 = new TrackPoint(TrackPoint.Type.SEGMENT_END_MANUAL, Instant.ofEpochMilli(5000)); - TrackStatisticsUpdater subject = new TrackStatisticsUpdater(List.of(tp1, tp2,tp3, tp4)); + TrackStatisticsUpdater initial = new TrackStatisticsUpdater(List.of(tp1, tp2,tp3, tp4)); // when - TrackStatisticsUpdater copy = new TrackStatisticsUpdater(subject); - subject.addTrackPoint(tp5); - copy.addTrackPoint(tp5); + TrackStatisticsUpdater subject = new TrackStatisticsUpdater(initial, tp5); // then - assertEquals(Distance.of(55.28713929653168), subject.getTrackStatistics().totalDistance()); + assertEquals(new Statistics( + Instant.ofEpochMilli(1000), + Instant.ofEpochMilli(4000), + Duration.ofSeconds(3), + Duration.ofSeconds(3), + Distance.of(55.28713929653168), + Speed.of(18.429046432177227), + new AltitudeExtremities(5, 5), + null, + null, + null + ), initial.getTrackStatistics()); + assertEquals(new Statistics( + Instant.ofEpochMilli(1000), + Instant.ofEpochMilli(5000), + Duration.ofSeconds(4), + Duration.ofSeconds(4), + Distance.of(55.28713929653168), + Speed.of(18.429046432177227), + new AltitudeExtremities(5, 5), + null, + null, + null + ), subject.getTrackStatistics()); } public TrackPoint createTrackPoint(double latitude, double longitude, Altitude altitude, Instant time) { diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java index 9975ed9cc..00b82fea5 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java @@ -116,10 +116,9 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen } RecordingData getDataForUI() { - TrackStatisticsUpdater tmpTrackStatisticsUpdater = new TrackStatisticsUpdater(trackStatisticsUpdater); Pair current = trackPointCreator.createCurrentTrackPoint(lastTrackPointUIWithSpeed, lastTrackPointUIWithAltitude, lastStoredTrackPointWithLocation); - tmpTrackStatisticsUpdater.addTrackPoint(current.first); + TrackStatisticsUpdater tmpTrackStatisticsUpdater = new TrackStatisticsUpdater(trackStatisticsUpdater, current.first); ALTITUDE_CORRECTION_MANAGER.correctAltitude(context, current.first); diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java index 7531f1c34..128bf17a9 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java @@ -72,13 +72,14 @@ public class TrackStatisticsUpdater { resetAverageHeartRate(); } - @Deprecated - public TrackStatisticsUpdater(@NonNull TrackStatisticsUpdater toCopy) { - this.currentSegment = new SegmentStatisticUpdater(toCopy.currentSegment); + public TrackStatisticsUpdater(@NonNull TrackStatisticsUpdater toCopy, TrackPoint tmp) { this.statisticsWithoutCurrentSegment = toCopy.statisticsWithoutCurrentSegment; + this.currentSegment = new SegmentStatisticUpdater(toCopy.currentSegment); this.lastTrackPoint = toCopy.lastTrackPoint; resetAverageHeartRate(); + + addTrackPoint(tmp); } /**