Create SegmentStatisticUpdater by passing Statistics (2/2).

This commit is contained in:
Dennis Guse
2025-10-28 18:19:14 +01:00
parent fff5f2d406
commit 0ad32f676c
6 changed files with 18 additions and 13 deletions
@@ -9,6 +9,7 @@ import java.util.Collection;
import java.util.List;
import java.util.UUID;
import de.dennisguse.opentracks.data.models.Statistics;
import de.dennisguse.opentracks.data.models.Track;
//TODO Merge with TrackFilenameGeneratorTest whenever Junit5 gets available.
@@ -36,9 +37,9 @@ public class TrackFilenameGenerator2Test {
Track track = new Track();
track.setName("Best Track");
track.setUuid(UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6"));
track.getTrackStatistics().setStartTime(Instant.parse("2020-02-02T02:02:02Z"));
track.setStatistics(new Statistics(Instant.parse("2020-02-02T02:02:02Z"), null, null, null, null, false, null, null, null, null, null));
// when
String filename = subject.format(track, TrackFileFormat.GPX);
subject.format(track, TrackFileFormat.GPX);
}
}
@@ -17,6 +17,7 @@ import java.util.UUID;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.TimezoneRule;
import de.dennisguse.opentracks.data.models.Statistics;
import de.dennisguse.opentracks.data.models.Track;
@RunWith(Parameterized.class)
@@ -50,7 +51,7 @@ public class TrackFilenameGeneratorTest {
Track track = new Track();
track.setName("Best Track");
track.setUuid(UUID.fromString("0000fee0-0000-1000-8000-00805f9b34fb"));
track.getTrackStatistics().setStartTime(Instant.parse("2020-02-02T02:02:02Z"));
track.setStatistics(new Statistics(Instant.parse("2020-02-02T02:02:02Z"), null, null, null, null, false, null, null, null, null, null));
// when
String filename = subject.format(track, TrackFileFormat.GPX);
@@ -610,7 +610,7 @@ public class TrackRecordingServiceRecordingTest {
service.endCurrentTrack();
// then
assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(4), Duration.ofSeconds(4), Distance.of(11113.275390625), false, Speed.of(1111.3275390625), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null)
assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(10), Duration.ofSeconds(10), Distance.of(11113.275390625), false, Speed.of(1111.3275146484375), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null)
, contentProviderUtils.getTrack(trackId).getStatistics());
@@ -142,8 +142,9 @@ public class Track {
return trackStatistics.getStatistics();
}
public Statistics setStatistics() {
throw new RuntimeException("TODO");
public void setStatistics(Statistics statistics) {
//TODO Implementation is used for refactoring: this.statistics = statistics;
setTrackStatistics(new SegmentStatisticUpdater(statistics));
}
@Deprecated
@@ -11,6 +11,7 @@ import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import de.dennisguse.opentracks.data.models.Statistics;
import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.util.FileUtils;
@@ -91,7 +92,7 @@ public class TrackFilenameGenerator {
Track track = new Track();
track.setName("Berlin");
track.setUuid(UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6"));
track.getTrackStatistics().setStartTime(Instant.ofEpochMilli(0));
track.setStatistics(new Statistics(Instant.MIN, null, null, null, null, false, null, null, null, null, null));
return format(track, TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES);
}
@@ -8,6 +8,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import de.dennisguse.opentracks.data.models.Statistics;
import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
@@ -35,9 +36,9 @@ public class AggregatedStatistics {
public void aggregate(@NonNull Track track) {
String activityTypeLocalized = track.getActivityTypeLocalized();
if (dataMap.containsKey(activityTypeLocalized)) {
dataMap.get(activityTypeLocalized).add(track.getTrackStatistics());
dataMap.get(activityTypeLocalized).add(track.getStatistics());
} else {
dataMap.put(activityTypeLocalized, new AggregatedStatistic(activityTypeLocalized, track.getTrackStatistics()));
dataMap.put(activityTypeLocalized, new AggregatedStatistic(activityTypeLocalized, track.getStatistics()));
}
}
@@ -58,9 +59,9 @@ public class AggregatedStatistics {
private final SegmentStatisticUpdater trackStatistics;
private int countTracks = 1;
public AggregatedStatistic(String activityTypeLocalized, SegmentStatisticUpdater trackStatistics) {
public AggregatedStatistic(String activityTypeLocalized, Statistics trackStatistics) {
this.activityTypeLocalized = activityTypeLocalized;
this.trackStatistics = trackStatistics;
this.trackStatistics = new SegmentStatisticUpdater(trackStatistics);
}
public String getActivityTypeLocalized() {
@@ -75,8 +76,8 @@ public class AggregatedStatistics {
return countTracks;
}
void add(SegmentStatisticUpdater statistics) {
trackStatistics.merge(statistics);
void add(Statistics statistics) {
trackStatistics.merge(new SegmentStatisticUpdater(statistics));
countTracks++;
}
}