forked from upstream-mirrors/OpenTracks
Bugfix: reset on SensorDataSet should only take place if the TrackPoint was stored
Fixes #969.
This commit is contained in:
@@ -83,14 +83,6 @@ public class TrackPointCreator {
|
||||
return sensorDataSet;
|
||||
}
|
||||
|
||||
public SensorDataSet fillAndReset(TrackPoint trackPoint) {
|
||||
SensorDataSet sensorDataSet = fill(trackPoint);
|
||||
resetSensorData();
|
||||
|
||||
return sensorDataSet;
|
||||
}
|
||||
|
||||
|
||||
public void stop() {
|
||||
locationHandler.onStop();
|
||||
|
||||
@@ -112,9 +104,12 @@ public class TrackPointCreator {
|
||||
}
|
||||
|
||||
public void onNewTrackPoint(TrackPoint trackPoint, Distance thresholdHorizontalAccuracy) {
|
||||
fillAndReset(trackPoint);
|
||||
fill(trackPoint);
|
||||
|
||||
service.newTrackPoint(trackPoint, thresholdHorizontalAccuracy);
|
||||
boolean stored = service.newTrackPoint(trackPoint, thresholdHorizontalAccuracy);
|
||||
if (stored) {
|
||||
resetSensorData();
|
||||
}
|
||||
}
|
||||
|
||||
public TrackPoint createSegmentStartManual() {
|
||||
@@ -123,7 +118,8 @@ public class TrackPointCreator {
|
||||
|
||||
public TrackPoint createSegmentEnd() {
|
||||
TrackPoint segmentEnd = TrackPoint.createSegmentEndWithTime(createNow());
|
||||
fillAndReset(segmentEnd);
|
||||
fill(segmentEnd);
|
||||
resetSensorData();
|
||||
return segmentEnd;
|
||||
}
|
||||
|
||||
@@ -181,7 +177,10 @@ public class TrackPointCreator {
|
||||
}
|
||||
|
||||
public interface Callback {
|
||||
void newTrackPoint(TrackPoint trackPoint, Distance thresholdHorizontalAccuracy);
|
||||
/**
|
||||
* @return Was TrackPoint stored (not discarded)?
|
||||
*/
|
||||
boolean newTrackPoint(TrackPoint trackPoint, Distance thresholdHorizontalAccuracy);
|
||||
|
||||
void newGpsStatus(GpsStatusValue gpsStatusValue);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user