Bugfix: TrackStatistics handles SEGMENT_START_AUTOMATIC properly.

This commit is contained in:
Dennis Guse
2021-04-12 18:56:34 +02:00
parent 67bbd9ca24
commit da70fca389
5 changed files with 32 additions and 18 deletions
@@ -595,8 +595,8 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand
private void insertTrackPoint(@NonNull Track track, @NonNull TrackPoint trackPoint) {
try {
if (altitudeSumManager != null) {
trackPoint.setAltitudeGain(altitudeSumManager.getAltitudeGain_m());
trackPoint.setAltitudeLoss(altitudeSumManager.getAltitudeLoss_m());
trackPoint.setAltitudeGain(getAltitudeGain_m());
trackPoint.setAltitudeLoss(getAltitudeLoss_m());
altitudeSumManager.reset();
}
if (remoteSensorManager != null) {
@@ -689,6 +689,11 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand
this.remoteSensorManager = remoteSensorManager;
}
@VisibleForTesting
public void setAltitudeSumManager(AltitudeSumManager altitudeSumManager) {
this.altitudeSumManager = altitudeSumManager;
}
public GpsStatusValue getGpsStatus() {
return handlerServer.getGpsStatus();
}
@@ -123,7 +123,7 @@ public class TrackStatisticsUpdater {
currentSegment.setStopTime(trackPoint.getTime());
currentSegment.setTotalTime(Duration.between(currentSegment.getStartTime(), trackPoint.getTime()));
if (trackPoint.isSegmentStart()) {
if (trackPoint.getType() == TrackPoint.Type.SEGMENT_START_MANUAL) {
reset(trackPoint);
return;
}
@@ -183,6 +183,11 @@ public class TrackStatisticsUpdater {
updateSpeed(trackPoint, lastTrackPoint);
}
if (trackPoint.getType() == TrackPoint.Type.SEGMENT_START_AUTOMATIC) {
reset(trackPoint);
return;
}
lastTrackPoint = trackPoint;
lastMovingTrackPoint = trackPoint;
}