From 1502b0cfa73c064f12c88c0ecd619e48e6dfa321 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Fri, 1 Jul 2022 12:50:15 +0200 Subject: [PATCH] Gain/loss: handle events in our TrackRecordingService.handler (avoids potential race conditions). --- .../de/dennisguse/opentracks/sensors/AltitudeSumManager.java | 5 +++-- .../opentracks/services/handlers/TrackPointCreator.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/sensors/AltitudeSumManager.java b/src/main/java/de/dennisguse/opentracks/sensors/AltitudeSumManager.java index fde48a321..437945399 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/AltitudeSumManager.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/AltitudeSumManager.java @@ -5,6 +5,7 @@ import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; +import android.os.Handler; import android.util.Log; import androidx.annotation.NonNull; @@ -31,7 +32,7 @@ public class AltitudeSumManager implements SensorEventListener { private Float altitudeGain_m; private Float altitudeLoss_m; - public void start(Context context) { + public void start(Context context, Handler handler) { SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); Sensor pressureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE); @@ -39,7 +40,7 @@ public class AltitudeSumManager implements SensorEventListener { Log.w(TAG, "No pressure sensor available."); isConnected = false; } else { - isConnected = sensorManager.registerListener(this, pressureSensor, (int) TimeUnit.SECONDS.toMicros(5)); + isConnected = sensorManager.registerListener(this, pressureSensor, (int) TimeUnit.SECONDS.toMicros(5), handler); } lastAcceptedPressureValue_hPa = Float.NaN; diff --git a/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java b/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java index ec3ab5e95..ef0c7f211 100644 --- a/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java +++ b/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java @@ -58,7 +58,7 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat altitudeSumManager = new AltitudeSumManager(); remoteSensorManager.start(); - altitudeSumManager.start(context); + altitudeSumManager.start(context, handler); }