From 3bfb212dc9e00b00fd2aae10144c08eded714d2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n?= Date: Wed, 29 Jul 2020 17:34:46 +0200 Subject: [PATCH] Bugfix: reset elevation every time track point is inserted. --- .../opentracks/services/TrackRecordingService.java | 12 ++++-------- .../opentracks/util/PressureSensorUtils.java | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 16fcef666..fc2a9a035 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -549,10 +549,6 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand //TODO Figure out how to avoid loading the lastValidTrackPoint from the database TrackPoint lastValidTrackPoint = getLastValidTrackPointInCurrentSegment(track.getId()); - if (elevationSumManager != null) { - trackPoint.setElevationGain(elevationSumManager.getElevationGain_m()); - } - //Storing trackPoint // Always insert the first segment location @@ -576,7 +572,6 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand insertTrackPoint(track, TrackPoint.createPause()); insertTrackPoint(track, trackPoint); - elevationSumManager.reset(); isIdle = false; lastTrackPoint = trackPoint; @@ -587,7 +582,6 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand insertTrackPointIfNewer(track, lastTrackPoint); insertTrackPoint(track, trackPoint); - elevationSumManager.reset(); isIdle = false; @@ -599,7 +593,6 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand insertTrackPointIfNewer(track, lastTrackPoint); insertTrackPoint(track, trackPoint); - elevationSumManager.reset(); isIdle = true; @@ -611,7 +604,6 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand insertTrackPointIfNewer(track, lastTrackPoint); insertTrackPoint(track, trackPoint); - elevationSumManager.reset(); isIdle = false; @@ -662,6 +654,10 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand */ private void insertTrackPoint(@NonNull Track track, @NonNull TrackPoint trackPoint) { try { + if (elevationSumManager != null) { + trackPoint.setElevationGain(elevationSumManager.getElevationGain_m()); + elevationSumManager.reset(); + } contentProviderUtils.insertTrackPoint(trackPoint, track.getId()); trackStatisticsUpdater.addTrackPoint(trackPoint, recordingDistanceInterval); updateTrackTotalTime(track); diff --git a/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java b/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java index 3abf12a18..11aed2675 100644 --- a/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/PressureSensorUtils.java @@ -5,7 +5,7 @@ import android.hardware.SensorManager; public class PressureSensorUtils { //Everything above is considered a meaningful change in elevation. - private static float ELEVATION_CHANGE_DIFF_M = 5.0f; + private static float ELEVATION_CHANGE_DIFF_M = 3.0f; private static float EXPONENTIAL_SMOOTHING = 0.3f;