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 ContentProviderUtils contentProviderUtils;
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
|
||||||
|
private final TrackPointCreator trackPointCreator;
|
||||||
|
|
||||||
private Distance recordingDistanceInterval;
|
private Distance recordingDistanceInterval;
|
||||||
private Distance maxRecordingDistance;
|
private Distance maxRecordingDistance;
|
||||||
@@ -51,8 +52,9 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
private TrackPoint lastStoredTrackPoint;
|
private TrackPoint lastStoredTrackPoint;
|
||||||
private TrackPoint lastStoredTrackPointWithLocation;
|
private TrackPoint lastStoredTrackPointWithLocation;
|
||||||
|
|
||||||
TrackRecordingManager(Context context) {
|
TrackRecordingManager(Context context, TrackPointCreator trackPointCreator) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
this.trackPointCreator = trackPointCreator;
|
||||||
contentProviderUtils = new ContentProviderUtils(context);
|
contentProviderUtils = new ContentProviderUtils(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +66,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this);
|
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Track.Id startNewTrack(TrackPointCreator trackPointCreator) {
|
Track.Id startNewTrack() {
|
||||||
TrackPoint segmentStartTrackPoint = trackPointCreator.createSegmentStartManual();
|
TrackPoint segmentStartTrackPoint = trackPointCreator.createSegmentStartManual();
|
||||||
// Create new track
|
// Create new track
|
||||||
ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartTrackPoint.getTime());
|
ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartTrackPoint.getTime());
|
||||||
@@ -90,7 +92,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
/**
|
/**
|
||||||
* @return if the recording could be started.
|
* @return if the recording could be started.
|
||||||
*/
|
*/
|
||||||
boolean resumeExistingTrack(@NonNull Track.Id resumeTrackId, @NonNull TrackPointCreator trackPointCreator) {
|
boolean resumeExistingTrack(@NonNull Track.Id resumeTrackId) {
|
||||||
trackId = resumeTrackId;
|
trackId = resumeTrackId;
|
||||||
Track track = contentProviderUtils.getTrack(trackId);
|
Track track = contentProviderUtils.getTrack(trackId);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
@@ -106,7 +108,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void end(TrackPointCreator trackPointCreator) {
|
void end() {
|
||||||
TrackPoint segmentEnd = trackPointCreator.createSegmentEnd();
|
TrackPoint segmentEnd = trackPointCreator.createSegmentEnd();
|
||||||
insertTrackPoint(segmentEnd, true);
|
insertTrackPoint(segmentEnd, true);
|
||||||
|
|
||||||
@@ -116,7 +118,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
Pair<Track, Pair<TrackPoint, SensorDataSet>> getDataForUI(@NonNull TrackPointCreator trackPointCreator) {
|
Pair<Track, Pair<TrackPoint, SensorDataSet>> getDataForUI() {
|
||||||
TrackStatisticsUpdater tmpTrackStatisticsUpdater = new TrackStatisticsUpdater(trackStatisticsUpdater);
|
TrackStatisticsUpdater tmpTrackStatisticsUpdater = new TrackStatisticsUpdater(trackStatisticsUpdater);
|
||||||
Pair<TrackPoint, SensorDataSet> current = trackPointCreator.createCurrentTrackPoint(lastTrackPointUIWithSpeed, lastTrackPointUIWithAltitude, lastStoredTrackPointWithLocation);
|
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);
|
gpsStatusObservable = new MutableLiveData<>(STATUS_GPS_DEFAULT);
|
||||||
recordingDataObservable = new MutableLiveData<>(NOT_RECORDING);
|
recordingDataObservable = new MutableLiveData<>(NOT_RECORDING);
|
||||||
|
|
||||||
trackRecordingManager = new TrackRecordingManager(this);
|
|
||||||
trackRecordingManager.start();
|
|
||||||
trackPointCreator = new TrackPointCreator(this, this, handler);
|
trackPointCreator = new TrackPointCreator(this, this, handler);
|
||||||
|
trackRecordingManager = new TrackRecordingManager(this, trackPointCreator);
|
||||||
|
trackRecordingManager.start();
|
||||||
|
|
||||||
voiceAnnouncementManager = new VoiceAnnouncementManager(this);
|
voiceAnnouncementManager = new VoiceAnnouncementManager(this);
|
||||||
notificationManager = new TrackRecordingServiceNotificationManager(this);
|
notificationManager = new TrackRecordingServiceNotificationManager(this);
|
||||||
@@ -157,7 +157,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set recording status
|
// Set recording status
|
||||||
Track.Id trackId = trackRecordingManager.startNewTrack(trackPointCreator);
|
Track.Id trackId = trackRecordingManager.startNewTrack();
|
||||||
updateRecordingStatus(RecordingStatus.record(trackId));
|
updateRecordingStatus(RecordingStatus.record(trackId));
|
||||||
|
|
||||||
startRecording();
|
startRecording();
|
||||||
@@ -165,7 +165,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void resumeTrack(Track.Id trackId) {
|
public void resumeTrack(Track.Id trackId) {
|
||||||
if (!trackRecordingManager.resumeExistingTrack(trackId, trackPointCreator)) {
|
if (!trackRecordingManager.resumeExistingTrack(trackId)) {
|
||||||
Log.w(TAG, "Cannot resume a non-existing track.");
|
Log.w(TAG, "Cannot resume a non-existing track.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -209,7 +209,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
// Set recording status
|
// Set recording status
|
||||||
updateRecordingStatus(STATUS_DEFAULT);
|
updateRecordingStatus(STATUS_DEFAULT);
|
||||||
|
|
||||||
trackRecordingManager.end(trackPointCreator);
|
trackRecordingManager.end();
|
||||||
endRecording();
|
endRecording();
|
||||||
|
|
||||||
stopSelf();
|
stopSelf();
|
||||||
@@ -297,7 +297,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Compute temporary track statistics using sensorData and update time.
|
// 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);
|
voiceAnnouncementManager.update(this, data.first);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user