From 29f92b887cffaa0312b60eec98bb6d06ab1acd55 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 11 Dec 2019 23:33:04 +0100 Subject: [PATCH] Fixed TrackRecordingService.insertWaypoint() to allow deprecated behavior. --- .../services/TrackRecordingServiceTest.java | 11 ------- .../TrackRecordingServiceTestLooper.java | 4 +-- .../opentracks/content/Waypoint.java | 3 +- .../content/WaypointCreationRequest.java | 3 +- .../services/TrackRecordingService.java | 32 ++++--------------- 5 files changed, 10 insertions(+), 43 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java index 00f752031..08493dabf 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java @@ -190,17 +190,6 @@ public class TrackRecordingServiceTest { Assert.assertEquals(PreferencesUtils.RECORDING_TRACK_ID_DEFAULT, service.getRecordingTrackId()); } - @MediumTest - @Test - @Deprecated - public void testInsertStatisticsMarker_noRecordingTrack() throws Exception { - ITrackRecordingService service = ((ITrackRecordingService) mServiceRule.bindService(createStartIntent(context))); - Assert.assertFalse(service.isRecording()); - - long waypointId = service.insertWaypoint(WaypointCreationRequest.DEFAULT_STATISTICS); - Assert.assertEquals(-1L, waypointId); - } - // NOTE: Do not use to create a track that is currently recording. private void createDummyTrack(long id, long stopTime, boolean isRecording) { Track dummyTrack = new Track(); diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java index 8d583ea9a..9975ba03c 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java @@ -218,9 +218,7 @@ public class TrackRecordingServiceTestLooper { location.setBearing(3.0f); service.insertTrackPoint(location); - if (i % 10 == 0) { - service.insertWaypoint(WaypointCreationRequest.DEFAULT_STATISTICS); - } else if (i % 7 == 0) { + if (i % 7 == 0) { service.insertWaypoint(WaypointCreationRequest.DEFAULT_WAYPOINT); } } diff --git a/src/main/java/de/dennisguse/opentracks/content/Waypoint.java b/src/main/java/de/dennisguse/opentracks/content/Waypoint.java index 87984f996..a27ec02be 100644 --- a/src/main/java/de/dennisguse/opentracks/content/Waypoint.java +++ b/src/main/java/de/dennisguse/opentracks/content/Waypoint.java @@ -188,6 +188,7 @@ public final class Waypoint { } public enum WaypointType { - WAYPOINT, STATISTICS + WAYPOINT, + STATISTICS //Always the first waypoint; only one can exist. } } diff --git a/src/main/java/de/dennisguse/opentracks/content/WaypointCreationRequest.java b/src/main/java/de/dennisguse/opentracks/content/WaypointCreationRequest.java index 5743c99cc..896e461c8 100644 --- a/src/main/java/de/dennisguse/opentracks/content/WaypointCreationRequest.java +++ b/src/main/java/de/dennisguse/opentracks/content/WaypointCreationRequest.java @@ -26,8 +26,7 @@ public class WaypointCreationRequest { public final static WaypointCreationRequest DEFAULT_WAYPOINT = new WaypointCreationRequest(WaypointType.WAYPOINT, false); - public final static WaypointCreationRequest DEFAULT_STATISTICS = new WaypointCreationRequest(WaypointType.STATISTICS, false); - + @Deprecated // TODO Do not create per public final static WaypointCreationRequest DEFAULT_START_TRACK = new WaypointCreationRequest(WaypointType.STATISTICS, true); private WaypointType type; diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 8d5dbb489..21a1c299b 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -49,7 +49,6 @@ import de.dennisguse.opentracks.content.LocationIterator; import de.dennisguse.opentracks.content.SensorDataSetLocation; import de.dennisguse.opentracks.content.Track; import de.dennisguse.opentracks.content.Waypoint; -import de.dennisguse.opentracks.content.Waypoint.WaypointType; import de.dennisguse.opentracks.content.WaypointCreationRequest; import de.dennisguse.opentracks.content.sensor.SensorDataSet; import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; @@ -275,23 +274,14 @@ public class TrackRecordingService extends Service { super.onDestroy(); } - /** - * Returns true if the service is recording. - */ public boolean isRecording() { return PreferencesUtils.isRecording(recordingTrackId); } - /** - * Returns true if the current recording is paused. - */ public boolean isPaused() { return recordingTrackPaused; } - /** - * Gets the trip statistics. - */ public TripStatistics getTripStatistics() { if (trackTripStatisticsUpdater == null) { return null; @@ -310,31 +300,19 @@ public class TrackRecordingService extends Service { return -1L; } - WaypointType waypointType = waypointCreationRequest.getType(); - if (waypointType == WaypointType.STATISTICS) - throw new RuntimeException("statistics waypoints are not supported anymore."); - - // Get name - String name; - if (waypointCreationRequest.getName() != null) { - name = waypointCreationRequest.getName(); - } else { - int nextWaypointNumber = contentProviderUtils.getNextWaypointNumber(recordingTrackId, waypointType); + String name = waypointCreationRequest.getName(); + if (name == null) { + int nextWaypointNumber = contentProviderUtils.getNextWaypointNumber(recordingTrackId, waypointCreationRequest.getType()); if (nextWaypointNumber == -1) { nextWaypointNumber = 0; } name = getString(R.string.marker_name_format, nextWaypointNumber); } - // Get category String category = waypointCreationRequest.getCategory() != null ? waypointCreationRequest.getCategory() : ""; - - // Get tripStatistics, description, and icon String description = waypointCreationRequest.getDescription() != null ? waypointCreationRequest.getDescription() : ""; - //TODO Bundle icon? String icon = getString(R.string.marker_waypoint_icon_url); - // Get length and duration double length; long duration; Location location = getLastValidTrackPointInCurrentSegment(recordingTrackId); @@ -357,7 +335,7 @@ public class TrackRecordingService extends Service { String photoUrl = waypointCreationRequest.getPhotoUrl() != null ? waypointCreationRequest.getPhotoUrl() : ""; // Insert waypoint - Waypoint waypoint = new Waypoint(name, description, category, icon, recordingTrackId, waypointType, length, duration, -1L, -1L, location, null, photoUrl); + Waypoint waypoint = new Waypoint(name, description, category, icon, recordingTrackId, waypointCreationRequest.getType(), length, duration, -1L, -1L, location, null, photoUrl); Uri uri = contentProviderUtils.insertWaypoint(waypoint); return Long.parseLong(uri.getLastPathSegment()); } @@ -392,6 +370,8 @@ public class TrackRecordingService extends Service { track.setIcon(TrackIconUtils.getIconValue(this, category)); track.setTripStatistics(trackTripStatisticsUpdater.getTripStatistics()); contentProviderUtils.updateTrack(track); + + //TODO Do not use insertWaypoint insertWaypoint(WaypointCreationRequest.DEFAULT_START_TRACK); startRecording(true);