From 1f0a99c49a1392569ac76ff3284c2b98d6472b93 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Thu, 18 Nov 2021 22:37:06 +0100 Subject: [PATCH] Recording: ignore TrackPoints that contain sensor data and do not fulfill recording distance interval. Follow-up to 08ba7d50c73197a1230eca8cc72dc1d501d7a6af Part of #1027. --- .../io/file/importer/ExportImportTest.java | 14 +++--- .../TrackRecordingServiceTestLocation.java | 43 ------------------- .../services/TrackRecordingManager.java | 4 +- 3 files changed, 9 insertions(+), 52 deletions(-) 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 f6eaa13ed..4f33f7de5 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 @@ -124,7 +124,7 @@ public class ExportImportTest { trackPointCreator.setClock(Clock.fixed(Instant.parse("2020-02-02T02:02:02Z"), ZoneId.of("CET"))); trackId = service.startNewTrack(); - Distance sensorDistance = hasSensorDistance ? Distance.of(5) : null; + Distance sensorDistance = hasSensorDistance ? Distance.of(10) : null; // recording distance interval sendLocation(trackPointCreator, Instant.parse("2020-02-02T02:02:03Z"), 3, 14, 10, 15, 10, 1, 66, 3, 50, sensorDistance); service.insertMarker("Marker 1", "Marker 1 category", "Marker 1 desc", null); @@ -218,12 +218,12 @@ public class ExportImportTest { assertEquals(Duration.ofSeconds(4), importedTrackStatistics.getMovingTime()); // Distance - assertEquals(Distance.of(30), importedTrackStatistics.getTotalDistance()); + assertEquals(Distance.of(60), importedTrackStatistics.getTotalDistance()); // Speed assertEquals(Speed.of(15), importedTrackStatistics.getMaxSpeed()); - assertEquals(Speed.of(3.75), importedTrackStatistics.getAverageSpeed()); - assertEquals(Speed.of(7.5), importedTrackStatistics.getAverageMovingSpeed()); + assertEquals(Speed.of(7.5), importedTrackStatistics.getAverageSpeed()); + assertEquals(Speed.of(15), importedTrackStatistics.getAverageMovingSpeed()); // Altitude assertEquals(10, importedTrackStatistics.getMinAltitude(), 0.01); @@ -316,12 +316,12 @@ public class ExportImportTest { assertEquals(Duration.ofSeconds(19), importedTrackStatistics.getMovingTime()); // Distance - assertEquals(Distance.of(30), importedTrackStatistics.getTotalDistance()); + assertEquals(Distance.of(60), importedTrackStatistics.getTotalDistance()); // Speed assertEquals(Speed.of(15), importedTrackStatistics.getMaxSpeed()); - assertEquals(Speed.of(1.5), importedTrackStatistics.getAverageSpeed()); - assertEquals(Speed.of(1.5789473684210527), importedTrackStatistics.getAverageMovingSpeed()); + assertEquals(Speed.of(3.0), importedTrackStatistics.getAverageSpeed()); + assertEquals(Speed.of(3.1578947368421053), importedTrackStatistics.getAverageMovingSpeed()); // Altitude assertEquals(10, importedTrackStatistics.getMinAltitude(), 0.01); diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java index 175aadff7..cdf3d081c 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java @@ -20,14 +20,11 @@ import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.internal.debugging.LocationImpl; -import java.time.Instant; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import de.dennisguse.opentracks.content.data.Altitude; import de.dennisguse.opentracks.content.data.Distance; import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; @@ -350,46 +347,6 @@ public class TrackRecordingServiceTestLocation { .setAltitudeGain(0f) .setAltitudeLoss(0f) .setHeartRate_bpm(5f), - new TrackPoint(TrackPoint.Type.TRACKPOINT, null) - .setLatitude(45) - .setLongitude(35) - .setHorizontalAccuracy(Distance.of(2)) - .setSpeed(Speed.of(0)) - .setAltitudeGain(0f) - .setAltitudeLoss(0f) - .setHeartRate_bpm(5f), - new TrackPoint(TrackPoint.Type.TRACKPOINT, null) - .setLatitude(45) - .setLongitude(35) - .setHorizontalAccuracy(Distance.of(3)) - .setSpeed(Speed.of(0)) - .setAltitudeGain(0f) - .setAltitudeLoss(0f) - .setHeartRate_bpm(5f), - new TrackPoint(TrackPoint.Type.TRACKPOINT, null) - .setLatitude(45) - .setLongitude(35) - .setHorizontalAccuracy(Distance.of(4)) - .setSpeed(Speed.of(0)) - .setAltitudeGain(0f) - .setAltitudeLoss(0f) - .setHeartRate_bpm(5f), - new TrackPoint(TrackPoint.Type.TRACKPOINT, null) - .setLatitude(45) - .setLongitude(35) - .setHorizontalAccuracy(Distance.of(5)) - .setSpeed(Speed.of(0)) - .setAltitudeGain(0f) - .setAltitudeLoss(0f) - .setHeartRate_bpm(5f), - new TrackPoint(TrackPoint.Type.TRACKPOINT, null) - .setLatitude(45) - .setLongitude(35) - .setHorizontalAccuracy(Distance.of(6)) - .setSpeed(Speed.of(0)) - .setAltitudeGain(0f) - .setAltitudeLoss(0f) - .setHeartRate_bpm(5f), new TrackPoint(TrackPoint.Type.SEGMENT_END_MANUAL, null) .setAltitudeGain(0f) .setAltitudeLoss(0f) diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java index 6b054db8d..2739909f5 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java @@ -17,9 +17,9 @@ import de.dennisguse.opentracks.content.data.TrackPoint; import de.dennisguse.opentracks.content.provider.ContentProviderUtils; import de.dennisguse.opentracks.content.sensor.SensorDataSet; import de.dennisguse.opentracks.services.handlers.TrackPointCreator; +import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; -import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackNameUtils; @@ -161,7 +161,7 @@ class TrackRecordingManager { return true; } - if (trackPoint.hasSensorData() || (distanceToLastTrackLocation.greaterOrEqualThan(recordingDistanceInterval) && trackPoint.isMoving())) { + if (distanceToLastTrackLocation.greaterOrEqualThan(recordingDistanceInterval) && trackPoint.isMoving()) { insertTrackPoint(trackId, trackPoint); return true; }