Idle: TrackRecordingManager creates IDLE TrackPoints.

Fixes of #1187.
This commit is contained in:
Dennis Guse
2023-07-31 20:07:53 +02:00
parent 60fd1cd105
commit 6be9d2477c
14 changed files with 167 additions and 361 deletions
@@ -36,16 +36,11 @@ public class TrackPointCreator implements SharedPreferences.OnSharedPreferenceCh
private Clock clock = new MonotonicClock();
private SensorManager sensorManager;
public TrackPointCreator(Callback service, Context context, Handler handler) {
public TrackPointCreator(Callback service) {
this.service = service;
this.sensorManager = new SensorManager(this);
}
@VisibleForTesting
TrackPointCreator(Callback service) {
this.service = service;
}
public synchronized void start(@NonNull Context context, @NonNull Handler handler) {
this.context = context;
@@ -106,6 +101,13 @@ public class TrackPointCreator implements SharedPreferences.OnSharedPreferenceCh
return segmentEnd;
}
public synchronized TrackPoint createIdle() {
TrackPoint idle = new TrackPoint(TrackPoint.Type.IDLE, createNow());
addSensorData(idle);
reset();
return idle;
}
public Pair<TrackPoint, SensorDataSet> createCurrentTrackPoint(@Nullable TrackPoint lastTrackPointUISpeed, @Nullable TrackPoint lastTrackPointUIAltitude, @Nullable TrackPoint lastStoredTrackPointWithLocation) {
TrackPoint currentTrackPoint = new TrackPoint(TrackPoint.Type.TRACKPOINT, createNow());