From f35eef4c577d781b09704f6275e02afff716e929 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Mon, 31 Jul 2023 19:30:32 +0200 Subject: [PATCH] TrackRecordingManager keeps reference to TrackPointCreator. Part of #1187. --- .../opentracks/services/TrackRecordingManager.java | 12 +++++++----- .../opentracks/services/TrackRecordingService.java | 12 ++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java index 38a3884e5..24d89f5b1 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java @@ -37,6 +37,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang private final ContentProviderUtils contentProviderUtils; private final Context context; + private final TrackPointCreator trackPointCreator; private Distance recordingDistanceInterval; private Distance maxRecordingDistance; @@ -51,8 +52,9 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang private TrackPoint lastStoredTrackPoint; private TrackPoint lastStoredTrackPointWithLocation; - TrackRecordingManager(Context context) { + TrackRecordingManager(Context context, TrackPointCreator trackPointCreator) { this.context = context; + this.trackPointCreator = trackPointCreator; contentProviderUtils = new ContentProviderUtils(context); } @@ -64,7 +66,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this); } - Track.Id startNewTrack(TrackPointCreator trackPointCreator) { + Track.Id startNewTrack() { TrackPoint segmentStartTrackPoint = trackPointCreator.createSegmentStartManual(); // Create new track ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartTrackPoint.getTime()); @@ -90,7 +92,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang /** * @return if the recording could be started. */ - boolean resumeExistingTrack(@NonNull Track.Id resumeTrackId, @NonNull TrackPointCreator trackPointCreator) { + boolean resumeExistingTrack(@NonNull Track.Id resumeTrackId) { trackId = resumeTrackId; Track track = contentProviderUtils.getTrack(trackId); if (track == null) { @@ -106,7 +108,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang return true; } - void end(TrackPointCreator trackPointCreator) { + void end() { TrackPoint segmentEnd = trackPointCreator.createSegmentEnd(); insertTrackPoint(segmentEnd, true); @@ -116,7 +118,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang reset(); } - Pair> getDataForUI(@NonNull TrackPointCreator trackPointCreator) { + Pair> getDataForUI() { TrackStatisticsUpdater tmpTrackStatisticsUpdater = new TrackStatisticsUpdater(trackStatisticsUpdater); Pair current = trackPointCreator.createCurrentTrackPoint(lastTrackPointUIWithSpeed, lastTrackPointUIWithAltitude, lastStoredTrackPointWithLocation); diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index d902fecb0..ac450063e 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -101,9 +101,9 @@ public class TrackRecordingService extends Service implements TrackPointCreator. gpsStatusObservable = new MutableLiveData<>(STATUS_GPS_DEFAULT); recordingDataObservable = new MutableLiveData<>(NOT_RECORDING); - trackRecordingManager = new TrackRecordingManager(this); - trackRecordingManager.start(); trackPointCreator = new TrackPointCreator(this, this, handler); + trackRecordingManager = new TrackRecordingManager(this, trackPointCreator); + trackRecordingManager.start(); voiceAnnouncementManager = new VoiceAnnouncementManager(this); notificationManager = new TrackRecordingServiceNotificationManager(this); @@ -157,7 +157,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator. } // Set recording status - Track.Id trackId = trackRecordingManager.startNewTrack(trackPointCreator); + Track.Id trackId = trackRecordingManager.startNewTrack(); updateRecordingStatus(RecordingStatus.record(trackId)); startRecording(); @@ -165,7 +165,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator. } public void resumeTrack(Track.Id trackId) { - if (!trackRecordingManager.resumeExistingTrack(trackId, trackPointCreator)) { + if (!trackRecordingManager.resumeExistingTrack(trackId)) { Log.w(TAG, "Cannot resume a non-existing track."); return; } @@ -209,7 +209,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator. // Set recording status updateRecordingStatus(STATUS_DEFAULT); - trackRecordingManager.end(trackPointCreator); + trackRecordingManager.end(); endRecording(); stopSelf(); @@ -297,7 +297,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator. } // Compute temporary track statistics using sensorData and update time. - Pair> data = trackRecordingManager.getDataForUI(trackPointCreator); + Pair> data = trackRecordingManager.getDataForUI(); voiceAnnouncementManager.update(this, data.first);