diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java index 3cef292e6..c67ae57ad 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java @@ -132,7 +132,7 @@ public class TrackRecordingServiceTestStateMachine { assertEquals(GpsStatusValue.GPS_ENABLED, service.getGpsStatusObservable().getValue()); // when - service.stopSensors(true); + service.stopSensorsAndShutdown(); Thread.sleep(1000); // then @@ -252,7 +252,7 @@ public class TrackRecordingServiceTestStateMachine { assertEquals(GpsStatusValue.GPS_ENABLED, service.getGpsStatusObservable().getValue()); // when - service.stopSensors(false); //TODO Should be ignored as service is recording + service.stopSensors(); //TODO Should be ignored as service is recording Thread.sleep(1000); // then diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index e709f8ffd..cf3f3bfaa 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -161,24 +161,6 @@ public class TrackRecordingService extends Service implements TrackPointCreator. return binder; } - @Deprecated //TODO Should be @VisibleForTesting - public boolean isRecording() { - return recordingStatus.isRecording(); - } - - @VisibleForTesting - public boolean isPaused() { - return recordingStatus.isPaused(); - } - - public Marker.Id insertMarker(String name, String category, String description, String photoUrl) { - if (!isRecording() || isPaused()) { - return null; - } - - return trackRecordingManager.insertMarker(name, category, description, photoUrl); - } - public Track.Id startNewTrack() { if (isRecording()) { Log.w(TAG, "Ignore startNewTrack. Already recording."); @@ -256,6 +238,8 @@ public class TrackRecordingService extends Service implements TrackPointCreator. endRecording(true); ExportUtils.postWorkoutExport(this, trackId); + + stopSelf(); } @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) @@ -275,11 +259,6 @@ public class TrackRecordingService extends Service implements TrackPointCreator. notificationManager.updateContent(getString(R.string.generic_paused)); } - /** - * Common code for ending a track or pausing a track. - * - * @param trackStopped true if track is stopped, false if track is paused - */ private void endRecording(boolean trackStopped) { stopUpdateRecordingData(); if (!trackStopped) { @@ -293,22 +272,23 @@ public class TrackRecordingService extends Service implements TrackPointCreator. // Update instance variables trackPointCreator.stop(); - stopSensors(trackStopped); + stopSensors(); } public void stopSensorsAndShutdown() { - stopSensors(true); + if (isRecording()) { + return; + } + stopSensors(); + stopSelf(); } - void stopSensors(boolean shutdown) { + void stopSensors() { if (!isRecording()) return; trackPointCreator.stop(); showNotification(false); wakeLock = SystemUtils.releaseWakeLock(wakeLock); - if (shutdown) { - stopSelf(); - } } @Override @@ -346,6 +326,14 @@ public class TrackRecordingService extends Service implements TrackPointCreator. } } + public Marker.Id insertMarker(String name, String category, String description, String photoUrl) { + if (!isRecording() || isPaused()) { + return null; + } + + return trackRecordingManager.insertMarker(name, category, description, photoUrl); + } + @Deprecated @VisibleForTesting public TrackPointCreator getTrackPointCreator() { @@ -409,4 +397,14 @@ public class TrackRecordingService extends Service implements TrackPointCreator. recordingStatus = status; recordingStatusObservable.postValue(recordingStatus); } + + @Deprecated //TODO Should be @VisibleForTesting + public boolean isRecording() { + return recordingStatus.isRecording(); + } + + @VisibleForTesting + public boolean isPaused() { + return recordingStatus.isPaused(); + } } \ No newline at end of file