Cleanup: Track simplify constructors.

This commit is contained in:
Dennis Guse
2025-11-01 17:24:03 +01:00
parent 3db0a53377
commit 7791ff8659
8 changed files with 29 additions and 33 deletions
@@ -34,10 +34,9 @@ public class TrackFilenameGenerator2Test {
@Test(expected = TrackFilenameGenerator.TemplateInvalidException.class)
public void testFilenameTemplate() {
// given
Track track = new Track();
Track track = new Track(new Statistics(Instant.parse("2020-02-02T02:02:02Z"), null, null, null, null, null, null, null, null, null));
track.setName("Best Track");
track.setUuid(UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6"));
track.setStatistics(new Statistics(Instant.parse("2020-02-02T02:02:02Z"), null, null, null, null, null, null, null, null, null));
// when
subject.format(track, TrackFileFormat.GPX);
@@ -48,10 +48,9 @@ public class TrackFilenameGeneratorTest {
@Test
public void testFilenameTemplate() {
// given
Track track = new Track();
Track track = new Track(new Statistics(Instant.parse("2020-02-02T02:02:02Z"), null, null, null, null, null, null, null, null, null));
track.setName("Best Track");
track.setUuid(UUID.fromString("0000fee0-0000-1000-8000-00805f9b34fb"));
track.setStatistics(new Statistics(Instant.parse("2020-02-02T02:02:02Z"), null, null, null, null, null, null, null, null, null));
// when
String filename = subject.format(track, TrackFileFormat.GPX);
@@ -99,9 +99,6 @@ public class IntervalStatisticsUpdaterTest {
// given
float distanceInterval = 1000f;
int numberOfPoints = 10000;
Track dummyTrack = new Track();
dummyTrack.setId(new Track.Id(System.currentTimeMillis()));
dummyTrack.setName("Dummy Track Without Elevation Loss");
TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater();
ArrayList<TrackPoint> trackPoints = new ArrayList<>();
@@ -110,7 +107,10 @@ public class IntervalStatisticsUpdaterTest {
}
trackStatisticsUpdater.addTrackPoints(trackPoints);
dummyTrack.setStatistics(trackStatisticsUpdater.getTrackStatistics());
Track dummyTrack = new Track(trackStatisticsUpdater.getTrackStatistics());
dummyTrack.setId(new Track.Id(System.currentTimeMillis()));
dummyTrack.setName("Dummy Track Without Elevation Loss");
Pair<Track, List<TrackPoint>> trackWithStats = new Pair<>(dummyTrack, trackPoints);
// when and then
@@ -118,7 +118,23 @@ public class ContentProviderUtils {
int altitudeGainIndex = cursor.getColumnIndexOrThrow(TracksColumns.ALTITUDE_GAIN);
int altitudeLossIndex = cursor.getColumnIndexOrThrow(TracksColumns.ALTITUDE_LOSS);
Track track = new Track(ZoneOffset.ofTotalSeconds(cursor.getInt(startTimeOffsetIndex)));
Statistics trackStatistics = new Statistics(
cursor.isNull(startTimeIndex) ? null : Instant.ofEpochMilli(cursor.getLong(startTimeIndex)),
cursor.isNull(stopTimeIndex) ? null : Instant.ofEpochMilli(cursor.getLong(stopTimeIndex)),
cursor.isNull(totalTimeIndex) ? null : Duration.ofMillis(cursor.getLong(totalTimeIndex)),
cursor.isNull(movingTimeIndex) ? null : Duration.ofMillis(cursor.getLong(movingTimeIndex)),
cursor.isNull(totalDistanceIndex) ? null : Distance.of(cursor.getFloat(totalDistanceIndex)),
cursor.isNull(maxSpeedIndex) ? null : Speed.of(cursor.getFloat(maxSpeedIndex)),
cursor.isNull(minAltitudeIndex) || cursor.isNull(maxAltitudeIndex) ? null : new AltitudeExtremities(cursor.getFloat(minAltitudeIndex), cursor.getFloat(maxAltitudeIndex)),
cursor.isNull(altitudeGainIndex) || cursor.isNull(altitudeLossIndex) ? null : new AltitudeGainLoss(cursor.getFloat(altitudeGainIndex), cursor.getFloat(altitudeLossIndex)),
null,
null
);
Track track = new Track(ZoneOffset.ofTotalSeconds(cursor.getInt(startTimeOffsetIndex)), trackStatistics);
if (!cursor.isNull(idIndex)) {
track.setId(new Track.Id(cursor.getLong(idIndex)));
}
@@ -138,23 +154,6 @@ public class ContentProviderUtils {
track.setActivityTypeLocalized(cursor.getString(activityTypeLocalizedIndex));
}
Statistics trackStatistics = new Statistics(
cursor.isNull(startTimeIndex) ? null : Instant.ofEpochMilli(cursor.getLong(startTimeIndex)),
cursor.isNull(stopTimeIndex) ? null : Instant.ofEpochMilli(cursor.getLong(stopTimeIndex)),
cursor.isNull(totalTimeIndex) ? null : Duration.ofMillis(cursor.getLong(totalTimeIndex)),
cursor.isNull(movingTimeIndex) ? null : Duration.ofMillis(cursor.getLong(movingTimeIndex)),
cursor.isNull(totalDistanceIndex) ? null : Distance.of(cursor.getFloat(totalDistanceIndex)),
cursor.isNull(maxSpeedIndex) ? null : Speed.of(cursor.getFloat(maxSpeedIndex)),
cursor.isNull(minAltitudeIndex) || cursor.isNull(maxAltitudeIndex) ? null : new AltitudeExtremities(cursor.getFloat(minAltitudeIndex), cursor.getFloat(maxAltitudeIndex)),
cursor.isNull(altitudeGainIndex) || cursor.isNull(altitudeLossIndex) ? null : new AltitudeGainLoss(cursor.getFloat(altitudeGainIndex), cursor.getFloat(altitudeLossIndex)),
null,
null
);
track.setStatistics(trackStatistics);
return track;
}
@@ -48,7 +48,7 @@ public class Track {
private ActivityType activityType;
//TODO Move to Statistics?
@NonNull
private ZoneOffset zoneOffset;
@NonNull
@@ -89,10 +89,9 @@ public class TrackFilenameGenerator {
}
public String getExample() {
Track track = new Track();
Track track = new Track(new Statistics(Instant.EPOCH, null, null, null, null, null, null, null, null, null));
track.setName("Berlin");
track.setUuid(UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6"));
track.setStatistics(new Statistics(Instant.EPOCH, null, null, null, null, null, null, null, null, null));
return format(track, TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES);
}
@@ -69,12 +69,12 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
TrackPoint segmentStartTrackPoint = trackPointCreator.createSegmentStartManual();
ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartTrackPoint.getTime());
Track track = new Track(zoneOffset);
trackStatisticsUpdater = new TrackStatisticsUpdater();
Track track = new Track(zoneOffset, trackStatisticsUpdater.getTrackStatistics());
trackId = contentProviderUtils.insertTrack(track);
track.setId(trackId);
trackStatisticsUpdater = new TrackStatisticsUpdater();
onNewTrackPoint(segmentStartTrackPoint);
String activityTypeLocalized = PreferencesUtils.getDefaultActivityTypeLocalized();
@@ -54,7 +54,7 @@ public class SettingsCustomLayoutEditAdapter extends RecyclerView.Adapter<Recycl
null,
null
);
Track track = new Track(ZoneOffset.UTC); //TODO Pass statistics as well
Track track = new Track(ZoneOffset.UTC, statistics);
Position position = new Position(
Instant.ofEpochMilli(0),