diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java index f1ad9a91b..49f336138 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java @@ -221,8 +221,8 @@ public class ExportImportTest { assertEquals(8540.359, trackStatistics.getAverageMovingSpeed().toMPS(), 0.01); // Altitude - assertEquals(999.122, trackStatistics.getMinAltitude(), 0.01); - assertEquals(1020.25, trackStatistics.getMaxAltitude(), 0.01); + assertEquals(999.122, trackStatistics.altitudeExtremities().min_m(), 0.01); + assertEquals(1020.25, trackStatistics.altitudeExtremities().max_m(), 0.01); assertEquals(2, trackStatistics.altitudeGainLoss().gain_m(), 0.01); assertEquals(2, trackStatistics.altitudeGainLoss().loss_m(), 0.01); @@ -345,8 +345,8 @@ public class ExportImportTest { assertEquals(8540.362, importedTrackStatistics.getAverageMovingSpeed().toMPS(), 0.01); // Altitude - assertEquals(999.122, importedTrackStatistics.getMinAltitude(), 0.01); - assertEquals(1020.25, importedTrackStatistics.getMaxAltitude(), 0.01); + assertEquals(999.122, importedTrackStatistics.altitudeExtremities().min_m(), 0.01); + assertEquals(1020.25, importedTrackStatistics.altitudeExtremities().max_m(), 0.01); assertEquals(2, importedTrackStatistics.altitudeGainLoss().gain_m(), 0.01); assertEquals(2, importedTrackStatistics.altitudeGainLoss().loss_m(), 0.01); @@ -485,8 +485,8 @@ public class ExportImportTest { assertEquals(2077.305, importedTrackStatistics.getAverageMovingSpeed().toMPS(), 0.01); // Altitude - assertEquals(999.099, importedTrackStatistics.getMinAltitude(), 0.01); - assertEquals(1020.2, importedTrackStatistics.getMaxAltitude(), 0.01); + assertEquals(999.099, importedTrackStatistics.altitudeExtremities().min_m(), 0.01); + assertEquals(1020.2, importedTrackStatistics.altitudeExtremities().max_m(), 0.01); assertEquals(2, importedTrackStatistics.altitudeGainLoss().gain_m(), 0.01); assertEquals(2, importedTrackStatistics.altitudeGainLoss().loss_m(), 0.01); diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java index 9961e9bdd..5c084a6bb 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java @@ -52,9 +52,6 @@ import de.dennisguse.opentracks.sensors.sensorData.Raw; import de.dennisguse.opentracks.services.handlers.TrackPointCreator; import de.dennisguse.opentracks.settings.PreferencesUtils; -/** - * Tests insert location. - */ @RunWith(AndroidJUnit4.class) public class TrackRecordingServiceRecordingTest { @@ -110,7 +107,7 @@ public class TrackRecordingServiceRecordingTest { // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(startTime), Duration.ZERO, Duration.ZERO, Distance.ZERO, Speed.ZERO, new AltitudeExtremities(0.0, 0.0), null, null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(startTime), Duration.ZERO, Duration.ZERO, Distance.ZERO, Speed.ZERO, null, null, null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); new TrackPointAssert().assertEquals(List.of( @@ -124,7 +121,7 @@ public class TrackRecordingServiceRecordingTest { service.endCurrentTrack(); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.ZERO, new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.ZERO, null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); new TrackPointAssert().assertEquals(List.of( @@ -199,7 +196,7 @@ public class TrackRecordingServiceRecordingTest { service.endCurrentTrack(); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(pauseTime), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.ZERO, new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(pauseTime), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.ZERO, null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); new TrackPointAssert().assertEquals(List.of( @@ -214,7 +211,7 @@ public class TrackRecordingServiceRecordingTest { service.resumeTrack(trackId); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(resumeTime), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.ZERO, new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(resumeTime), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.ZERO, null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); new TrackPointAssert().assertEquals(List.of( @@ -342,7 +339,7 @@ public class TrackRecordingServiceRecordingTest { sendGPSLocation(trackPointCreator, gps1, 45.0, 35.0, 1, 15); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps1), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.of(15), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps1), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.of(15), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); // when @@ -350,7 +347,7 @@ public class TrackRecordingServiceRecordingTest { sendGPSLocation(trackPointCreator, gps2, 45.0001, 35.0, 1, 15); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps2), Duration.ofSeconds(4), Duration.ofSeconds(4), Distance.of(11.113178253173828), Speed.of(15), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps2), Duration.ofSeconds(4), Duration.ofSeconds(4), Distance.of(11.113178253173828), Speed.of(15), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); // when @@ -358,7 +355,7 @@ public class TrackRecordingServiceRecordingTest { sendGPSLocation(trackPointCreator, gps3, 45.0002, 35.0, 1, 15); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps3), Duration.ofSeconds(6), Duration.ofSeconds(6), Distance.of(22.226356506347656), Speed.of(15), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps3), Duration.ofSeconds(6), Duration.ofSeconds(6), Distance.of(22.226356506347656), Speed.of(15), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); // when @@ -367,7 +364,7 @@ public class TrackRecordingServiceRecordingTest { service.endCurrentTrack(); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(10), Duration.ofSeconds(10), Distance.of(22.226356506347656), Speed.of(15), 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(22.226356506347656), Speed.of(15), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); new TrackPointAssert().assertEquals(List.of( @@ -416,7 +413,7 @@ public class TrackRecordingServiceRecordingTest { sendGPSLocation(trackPointCreator, gps1, 45.0, 35.0, 1, 15); // then - Statistics gps1Statistics = new Statistics(Instant.parse(startTime), Instant.parse(gps1), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.of(15), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null); + Statistics gps1Statistics = new Statistics(Instant.parse(startTime), Instant.parse(gps1), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.of(15), null, new AltitudeGainLoss(0, 0), null, null); assertEquals(gps1Statistics, contentProviderUtils.getTrack(trackId).getStatistics()); // when @@ -439,7 +436,7 @@ public class TrackRecordingServiceRecordingTest { service.endCurrentTrack(); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(10), Duration.ofSeconds(10), Distance.of(2.222635507583618), Speed.of(15), 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(2.222635507583618), Speed.of(15), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); new TrackPointAssert().assertEquals(List.of( @@ -538,7 +535,7 @@ public class TrackRecordingServiceRecordingTest { sendGPSLocation(trackPointCreator, gps1, 45.0, 35.0, 100, 15); // then - Statistics startStatistics = new Statistics(Instant.parse(startTime), Instant.parse(startTime), Duration.ZERO, Duration.ZERO, Distance.ZERO, Speed.ZERO, new AltitudeExtremities(0.0, 0.0), null, null, null); + Statistics startStatistics = new Statistics(Instant.parse(startTime), Instant.parse(startTime), Duration.ZERO, Duration.ZERO, Distance.ZERO, Speed.ZERO, null, null, null, null); assertEquals(startStatistics, contentProviderUtils.getTrack(trackId).getStatistics()); @@ -556,7 +553,7 @@ public class TrackRecordingServiceRecordingTest { service.endCurrentTrack(); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(10), Duration.ofSeconds(10), Distance.ZERO, Speed.ZERO, 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.ZERO, Speed.ZERO, null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); // then @@ -582,7 +579,7 @@ public class TrackRecordingServiceRecordingTest { sendGPSLocation(trackPointCreator, gps1, 45.0, 35.0, 1, 15); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps1), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.of(15), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps1), Duration.ofSeconds(1), Duration.ofSeconds(1), Distance.ZERO, Speed.of(15), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); // when @@ -590,7 +587,7 @@ public class TrackRecordingServiceRecordingTest { sendGPSLocation(trackPointCreator, gps2, 45.1, 35.0, 1, 15); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps2), Duration.ofSeconds(4), Duration.ofSeconds(4), Distance.of(11113.275390625), Speed.of(2778.31884765625f), new AltitudeExtremities(0.0, 0.0), new AltitudeGainLoss(0, 0), null, null) + assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(gps2), Duration.ofSeconds(4), Duration.ofSeconds(4), Distance.of(11113.275390625), Speed.of(2778.31884765625f), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); // when @@ -599,7 +596,7 @@ public class TrackRecordingServiceRecordingTest { service.endCurrentTrack(); // then - assertEquals(new Statistics(Instant.parse(startTime), Instant.parse(stopTime), Duration.ofSeconds(10), Duration.ofSeconds(10), Distance.of(11113.275390625), Speed.of(1111.3275146484375), 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), Speed.of(1111.3275146484375), null, new AltitudeGainLoss(0, 0), null, null) , contentProviderUtils.getTrack(trackId).getStatistics()); diff --git a/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java index 8fa1945ce..6b066c7c4 100644 --- a/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java @@ -288,7 +288,6 @@ public class ContentProviderUtils { private ContentValues createContentValues(Track track) { ContentValues values = new ContentValues(); - Statistics trackStatistics = track.getStatistics(); if (track.getId() != null) { values.put(TracksColumns._ID, track.getId().id()); @@ -300,27 +299,7 @@ public class ContentProviderUtils { values.put(TracksColumns.ACTIVITY_TYPE_LOCALIZED, track.getActivityTypeLocalized()); values.put(TracksColumns.STARTTIME_OFFSET, track.getZoneOffset().getTotalSeconds()); - //TODO Duplicates createContentValues(Statistics trackStatistics) - 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.TOTALDISTANCE, trackStatistics.totalDistance().toM()); - values.put(TracksColumns.TOTALTIME, trackStatistics.totalDuration().toMillis()); - values.put(TracksColumns.MOVINGTIME, trackStatistics.movingDuration().toMillis()); - values.put(TracksColumns.MAXSPEED, trackStatistics.maxSpeed().toMPS()); - - if (trackStatistics.altitudeExtremities() != null) { - values.put(TracksColumns.MIN_ALTITUDE, trackStatistics.getMinAltitude()); - values.put(TracksColumns.MAX_ALTITUDE, trackStatistics.getMaxAltitude()); - } - - if (trackStatistics.altitudeGainLoss() != null) { - values.put(TracksColumns.ALTITUDE_GAIN, trackStatistics.altitudeGainLoss().gain_m()); - values.put(TracksColumns.ALTITUDE_LOSS, trackStatistics.altitudeGainLoss().loss_m()); - } + values.putAll(createContentValues(track.getStatistics())); return values; } @@ -341,8 +320,10 @@ public class ContentProviderUtils { values.put(TracksColumns.TOTALTIME, trackStatistics.totalDuration().toMillis()); values.put(TracksColumns.MOVINGTIME, trackStatistics.movingDuration().toMillis()); values.put(TracksColumns.MAXSPEED, trackStatistics.maxSpeed().toMPS()); - values.put(TracksColumns.MIN_ALTITUDE, trackStatistics.getMinAltitude()); - values.put(TracksColumns.MAX_ALTITUDE, trackStatistics.getMaxAltitude()); + if (trackStatistics.altitudeExtremities() != null) { + values.put(TracksColumns.MIN_ALTITUDE, trackStatistics.altitudeExtremities().min_m()); + values.put(TracksColumns.MAX_ALTITUDE, trackStatistics.altitudeExtremities().max_m()); + } if (trackStatistics.altitudeGainLoss() != null) { values.put(TracksColumns.ALTITUDE_GAIN, trackStatistics.altitudeGainLoss().gain_m()); values.put(TracksColumns.ALTITUDE_LOSS, trackStatistics.altitudeGainLoss().loss_m()); 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 cc8579d86..e44d781ce 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Statistics.java @@ -64,20 +64,6 @@ public record Statistics( return Speed.of(totalDistance, movingDuration); } - @Deprecated - //TODO null should be return (need adjusting ContentPtoviderUtils.createContentValues() - public double getMinAltitude() { - if (altitudeExtremities == null) return 0; - return altitudeExtremities.min_m(); - } - - @Deprecated - //TODO null should be return (need adjusting ContentPtoviderUtils.createContentValues() - public double getMaxAltitude() { - if (altitudeExtremities == null) return 0; - return altitudeExtremities.max_m(); - } - /** * Combines these statistics with those from another object. * This assumes that the time periods covered by each do not intersect.