diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java index 4920899a2..d687130a8 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java @@ -6,6 +6,7 @@ import android.util.Pair; import java.io.File; import java.io.IOException; +import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.List; @@ -16,6 +17,7 @@ import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.Marker; import de.dennisguse.opentracks.data.models.Position; import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Statistics; import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.ui.markers.MarkerUtils; @@ -34,7 +36,7 @@ public class TestDataUtil { * Create a track without any trackPoints. */ public static Track createTrack(Track.Id trackId) { - Track track = new Track(); + Track track = new Track(Statistics.DEFAULT); track.setId(trackId); track.setName("Test: " + trackId.id()); diff --git a/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java index ac16c0b62..e19a36bb1 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java @@ -130,7 +130,7 @@ public class CustomContentProviderUtilsTest { } private TrackPoint.Id initializeTrack(Track.Id id, int numPoints) { - Track track = new Track(); + Track track = new Track(Statistics.DEFAULT); track.setId(id); track.setName("Test: " + id.id()); contentProviderUtils.insertTrack(track); diff --git a/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java index 6b066c7c4..19bab7529 100644 --- a/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java @@ -120,14 +120,14 @@ public class ContentProviderUtils { int altitudeLossIndex = cursor.getColumnIndexOrThrow(TracksColumns.ALTITUDE_LOSS); 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)), + Instant.ofEpochMilli(cursor.getLong(startTimeIndex)), + Instant.ofEpochMilli(cursor.getLong(stopTimeIndex)), + Duration.ofMillis(cursor.getLong(totalTimeIndex)), + Duration.ofMillis(cursor.getLong(movingTimeIndex)), - cursor.isNull(totalDistanceIndex) ? null : Distance.of(cursor.getFloat(totalDistanceIndex)), + Distance.of(cursor.getFloat(totalDistanceIndex)), - cursor.isNull(maxSpeedIndex) ? null : Speed.of(cursor.getFloat(maxSpeedIndex)), + 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)), @@ -136,12 +136,8 @@ public class ContentProviderUtils { ); Track track = new Track(ZoneOffset.ofTotalSeconds(cursor.getInt(startTimeOffsetIndex)), trackStatistics); - if (!cursor.isNull(idIndex)) { - track.setId(new Track.Id(cursor.getLong(idIndex))); - } - if (!cursor.isNull(uuidIndex)) { - track.setUuid(UUIDUtils.fromBytes(cursor.getBlob(uuidIndex))); - } + track.setId(new Track.Id(cursor.getLong(idIndex))); + track.setUuid(UUIDUtils.fromBytes(cursor.getBlob(uuidIndex))); if (!cursor.isNull(nameIndex)) { track.setName(cursor.getString(nameIndex)); } @@ -310,12 +306,8 @@ public class ContentProviderUtils { private ContentValues createContentValues(Statistics trackStatistics) { ContentValues values = new ContentValues(); - if (trackStatistics.startTime() != null) { - values.put(TracksColumns.STARTTIME, trackStatistics.startTime().toEpochMilli()); - } - if (trackStatistics.stopTime() != null) { - values.put(TracksColumns.STOPTIME, trackStatistics.stopTime().toEpochMilli()); - } + values.put(TracksColumns.STARTTIME, trackStatistics.startTime().toEpochMilli()); + values.put(TracksColumns.STOPTIME, trackStatistics.stopTime().toEpochMilli()); values.put(TracksColumns.TOTALDISTANCE, trackStatistics.totalDistance().toM()); values.put(TracksColumns.TOTALTIME, trackStatistics.totalDuration().toMillis()); values.put(TracksColumns.MOVINGTIME, trackStatistics.movingDuration().toMillis()); 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 aa7f574d7..587f37b13 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java @@ -40,8 +40,8 @@ public record Statistics( @Deprecated public static final Statistics DEFAULT = new Statistics( - null, - null, + Instant.EPOCH, + Instant.EPOCH, Duration.ZERO, Duration.ZERO, Distance.ZERO, @@ -122,8 +122,8 @@ public record Statistics( } return new Statistics( - startTime == null ? other.startTime : startTime.isBefore(other.startTime) ? startTime : other.startTime, - stopTime == null ? other.stopTime : stopTime.isAfter(other.stopTime) ? stopTime : other.stopTime, + startTime.isBefore(other.startTime) ? startTime : other.startTime, + stopTime.isAfter(other.stopTime) ? stopTime : other.stopTime, totalDuration.plus(other.totalDuration), movingDuration.plus(other.movingDuration), totalDistance.plus(other.totalDistance), diff --git a/src/main/java/de/dennisguse/opentracks/data/models/Track.java b/src/main/java/de/dennisguse/opentracks/data/models/Track.java index 8044d9cba..dd3ab2105 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/Track.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Track.java @@ -55,12 +55,6 @@ public class Track { @NonNull private Statistics trackStatistics; - @Deprecated - @VisibleForTesting - public Track() { - this(ZoneOffset.UTC); - } - @VisibleForTesting public Track(Statistics statistics) { this(ZoneOffset.UTC, statistics); diff --git a/src/main/java/de/dennisguse/opentracks/io/file/TrackFilenameGenerator.java b/src/main/java/de/dennisguse/opentracks/io/file/TrackFilenameGenerator.java index 111053260..8c294bfdd 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/TrackFilenameGenerator.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/TrackFilenameGenerator.java @@ -3,6 +3,7 @@ package de.dennisguse.opentracks.io.file; import androidx.annotation.NonNull; import java.time.Instant; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -89,7 +90,7 @@ public class TrackFilenameGenerator { } public String getExample() { - Track track = new Track(new Statistics(Instant.EPOCH, null, null, null, null, null, null, null, null, null)); + Track track = new Track(ZoneOffset.UTC, Statistics.DEFAULT); track.setName("Berlin"); track.setUuid(UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6"));