diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java index 858355aeb..cba14897d 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java @@ -56,8 +56,10 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this); } - Track.Id startNewTrack(TrackPoint segmentStartTrackPoint, ZoneOffset zoneOffset) { + Track.Id startNewTrack(TrackPointCreator trackPointCreator) { + TrackPoint segmentStartTrackPoint = trackPointCreator.createSegmentStartManual(); // Create new track + ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartTrackPoint.getTime()); Track track = new Track(zoneOffset); trackId = contentProviderUtils.insertTrack(track); track.setId(trackId); @@ -78,7 +80,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang } //TODO Handle non-existing trackId? Start a new track or exception? - void resumeExistingTrack(@NonNull Track.Id resumeTrackId, @NonNull TrackPoint segmentStartTrackPoint) { + void resumeExistingTrack(@NonNull Track.Id resumeTrackId, @NonNull TrackPointCreator trackPointCreator) { trackId = resumeTrackId; Track track = contentProviderUtils.getTrack(trackId); if (track == null) { @@ -87,7 +89,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang } trackStatisticsUpdater = new TrackStatisticsUpdater(track.getTrackStatistics()); - onNewTrackPoint(segmentStartTrackPoint); + onNewTrackPoint(trackPointCreator.createSegmentStartManual()); lastTrackPoint = null; lastStoredTrackPoint = null; diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index e2a33f4f4..59c5827ae 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -29,7 +29,6 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import java.time.Duration; -import java.time.ZoneOffset; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.data.CustomContentProvider; @@ -172,10 +171,12 @@ 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(); } @@ -195,9 +196,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator. } // Set recording status - TrackPoint segmentStartManual = trackPointCreator.createSegmentStartManual(); - ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartManual.getTime()); - Track.Id trackId = trackRecordingManager.startNewTrack(segmentStartManual, zoneOffset); + Track.Id trackId = trackRecordingManager.startNewTrack(trackPointCreator); updateRecordingStatus(RecordingStatus.record(trackId)); startRecording(); @@ -206,9 +205,8 @@ public class TrackRecordingService extends Service implements TrackPointCreator. public void resumeTrack(Track.Id trackId) { trackPointCreator.reset(); - trackRecordingManager.resumeExistingTrack(trackId, trackPointCreator.createSegmentStartManual()); + trackRecordingManager.resumeExistingTrack(trackId, trackPointCreator); - // Set recording status updateRecordingStatus(RecordingStatus.record(trackId)); startRecording();