TrackRecordingManager keeps reference to TrackPointCreator.

Part of #1187.
This commit is contained in:
Dennis Guse
2023-07-31 19:30:32 +02:00
parent 0fa0f4b5ec
commit f35eef4c57
2 changed files with 13 additions and 11 deletions
@@ -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<Track, Pair<TrackPoint, SensorDataSet>> getDataForUI(@NonNull TrackPointCreator trackPointCreator) {
Pair<Track, Pair<TrackPoint, SensorDataSet>> getDataForUI() {
TrackStatisticsUpdater tmpTrackStatisticsUpdater = new TrackStatisticsUpdater(trackStatisticsUpdater);
Pair<TrackPoint, SensorDataSet> current = trackPointCreator.createCurrentTrackPoint(lastTrackPointUIWithSpeed, lastTrackPointUIWithAltitude, lastStoredTrackPointWithLocation);
@@ -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<Track, Pair<TrackPoint, SensorDataSet>> data = trackRecordingManager.getDataForUI(trackPointCreator);
Pair<Track, Pair<TrackPoint, SensorDataSet>> data = trackRecordingManager.getDataForUI();
voiceAnnouncementManager.update(this, data.first);