GPS data recording: remove idle/non-idle changes due to reported speed greater than 0.5mph.

This avoids that to storing GPS locations if the user r actually is not moving (likely bad GPS reception).

Fixes #968.

Co-authored-by: vlmendz <91810638+vlmendz@users.noreply.github.com>
Co-authored-by: Dennis Guse <dennis.guse@alumni.tu-berlin.de>
This commit is contained in:
Román Martínez
2021-10-07 22:13:11 +02:00
committed by Dennis Guse
parent 2f7a56bb17
commit 083b620e41
2 changed files with 2 additions and 42 deletions
@@ -39,7 +39,6 @@ class TrackRecordingManager {
private boolean currentSegmentHasTrackPoint;
private TrackPoint lastTrackPoint;
private TrackPoint lastStoredTrackPoint;
private boolean isIdle;
TrackRecordingManager(Context context) {
this.context = context;
@@ -101,7 +100,6 @@ class TrackRecordingManager {
lastTrackPoint = null;
lastStoredTrackPoint = null;
currentSegmentHasTrackPoint = false;
isIdle = false;
}
Pair<Track, Pair<TrackPoint, SensorDataSet>> get(TrackPointCreator trackPointCreator) {
@@ -164,33 +162,15 @@ class TrackRecordingManager {
if (distanceToLastTrackLocation.greaterThan(maxRecordingDistance)) {
trackPoint.setType(TrackPoint.Type.SEGMENT_START_AUTOMATIC);
insertTrackPoint(trackId, trackPoint);
isIdle = false;
return true;
}
if (trackPoint.hasSensorData() || distanceToLastTrackLocation.greaterOrEqualThan(recordingDistanceInterval)) {
if (trackPoint.hasSensorData() || (distanceToLastTrackLocation.greaterOrEqualThan(recordingDistanceInterval) && trackPoint.isMoving())) {
insertTrackPoint(trackId, trackPoint);
isIdle = false;
return true;
}
}
if (!isIdle && !trackPoint.isMoving()) {
insertTrackPoint(trackId, trackPoint);
isIdle = true;
return true;
}
if (isIdle && trackPoint.isMoving()) {
insertTrackPoint(trackId, trackPoint);
isIdle = false;
return true;
}
Log.d(TAG, "Not recording TrackPoint, idle");
lastTrackPoint = trackPoint;
return false;