Gain/loss: handle events in our TrackRecordingService.handler (avoids potential race conditions).

This commit is contained in:
Dennis Guse
2022-07-01 12:50:15 +02:00
parent e7d6f65508
commit 1502b0cfa7
2 changed files with 4 additions and 3 deletions
@@ -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;
@@ -58,7 +58,7 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat
altitudeSumManager = new AltitudeSumManager();
remoteSensorManager.start();
altitudeSumManager.start(context);
altitudeSumManager.start(context, handler);
}