forked from upstream-mirrors/OpenTracks
TrackRecordingManager keeps reference to TrackPointCreator.
Part of #1187.
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user