From 0b849c3d55a25fc6bd6c0f2dc18f7c2618b5a889 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Mon, 2 Feb 2026 21:39:23 +0100 Subject: [PATCH] CyclingDistanceSpeedHandler: uses wheel size (again). Skipped while to SensorHandler: a5dcbec3961957dfc651cf4ffd62ec075324c0ba --- .../sensors/AltitudeChangeHandler.java | 14 +++--- .../sensors/CyclingCadenceHandler.java | 2 +- .../sensors/CyclingDistanceSpeedHandler.java | 12 ++++- .../sensors/CyclingPowerHandler.java | 2 +- .../opentracks/sensors/HeartRateHandler.java | 2 +- .../RunningSpeedCadenceDistanceHandler.java | 2 +- .../opentracks/sensors/SensorHandler.java | 49 +++++++++---------- .../sensors/TemperatureHandler.java | 2 +- 8 files changed, 45 insertions(+), 40 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/sensors/AltitudeChangeHandler.java b/src/main/java/de/dennisguse/opentracks/sensors/AltitudeChangeHandler.java index af429029a..1eee74bfc 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/AltitudeChangeHandler.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/AltitudeChangeHandler.java @@ -21,15 +21,10 @@ public class AltitudeChangeHandler extends SensorHandler( BluetoothUtils.getAdapter(getContext()), - driverObserver, + this, new BarometerBluetooth() ); } @@ -47,4 +42,9 @@ public class AltitudeChangeHandler extends SensorHandler( BluetoothUtils.getAdapter(getContext()), - driverObserver, + this, new CyclingCadenceBluetooth() ); } diff --git a/src/main/java/de/dennisguse/opentracks/sensors/CyclingDistanceSpeedHandler.java b/src/main/java/de/dennisguse/opentracks/sensors/CyclingDistanceSpeedHandler.java index 7bef5c16d..79dbd6d9a 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/CyclingDistanceSpeedHandler.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/CyclingDistanceSpeedHandler.java @@ -7,6 +7,7 @@ import de.dennisguse.opentracks.sensors.driver.BluetoothDriver; import de.dennisguse.opentracks.sensors.driver.CyclingDistanceSpeedBluetooth; import de.dennisguse.opentracks.sensors.driver.Driver; import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingDistanceSpeed; +import de.dennisguse.opentracks.settings.PreferencesUtils; public class CyclingDistanceSpeedHandler extends SensorHandler { @@ -17,10 +18,9 @@ public class CyclingDistanceSpeedHandler extends SensorHandler( BluetoothUtils.getAdapter(getContext()), - driverObserver, + this, new CyclingDistanceSpeedBluetooth() ); } @@ -35,4 +35,12 @@ public class CyclingDistanceSpeedHandler extends SensorHandler( BluetoothUtils.getAdapter(getContext()), - driverObserver, + this, new CyclingPowerBluetooth() ); } diff --git a/src/main/java/de/dennisguse/opentracks/sensors/HeartRateHandler.java b/src/main/java/de/dennisguse/opentracks/sensors/HeartRateHandler.java index 4241cd16d..d44bd8b66 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/HeartRateHandler.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/HeartRateHandler.java @@ -20,7 +20,7 @@ public class HeartRateHandler extends SensorHandler { protected Driver createDriverBluetooth(String address) { return new BluetoothDriver<>( BluetoothUtils.getAdapter(getContext()), - driverObserver, + this, new HeartRateBluetooth() ); } diff --git a/src/main/java/de/dennisguse/opentracks/sensors/RunningSpeedCadenceDistanceHandler.java b/src/main/java/de/dennisguse/opentracks/sensors/RunningSpeedCadenceDistanceHandler.java index 2fa8c5712..d9581d669 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/RunningSpeedCadenceDistanceHandler.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/RunningSpeedCadenceDistanceHandler.java @@ -19,7 +19,7 @@ public class RunningSpeedCadenceDistanceHandler extends SensorHandler( BluetoothUtils.getAdapter(getContext()), - driverObserver, + this, new RunningSpeedAndCadenceBluetooth() ); } diff --git a/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java b/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java index e8d45f548..7d2003b3f 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java @@ -15,36 +15,13 @@ import de.dennisguse.opentracks.sensors.sensorData.SensorData; import de.dennisguse.opentracks.settings.PreferencesUtils; -public abstract class SensorHandler { +public abstract class SensorHandler implements DriverObserver { private final SensorManager sensorManager; private Driver driver; - private Aggregator aggregator; - - protected final DriverObserver driverObserver = new DriverObserver<>() { - @Override - public void onConnected(String sensorAddress, String sensorName) { - SensorHandler.this.aggregator = createAggregator(sensorAddress, sensorName); - } - - @Override - public void onConnectionLost() { - SensorHandler.this.aggregator.resetAggregated(); - } - - @Override - public void onDataReceived(AggregatorInput value) { - SensorHandler.this.aggregator.add(sensorManager.getNow(), value); - sensorManager.onChange(); - } - - @Override - public void onDisconnected() { - SensorHandler.this.aggregator = null; - } - }; + protected Aggregator aggregator; protected SensorHandler(SensorManager sensorManager) { this.sensorManager = sensorManager; @@ -57,7 +34,7 @@ public abstract class SensorHandler { switch (PreferencesUtils.getSensorType(address)) { case NONE -> { - driverObserver.onDisconnected(); + onDisconnected(); return; } case INTERNAL -> { @@ -117,4 +94,24 @@ public abstract class SensorHandler { public void setAggregator(Aggregator aggregator) { this.aggregator = aggregator; } + + public void onConnected(String sensorAddress, String sensorName) { + SensorHandler.this.aggregator = createAggregator(sensorAddress, sensorName); + } + + @Override + public void onConnectionLost() { + SensorHandler.this.aggregator.resetAggregated(); + } + + @Override + public void onDataReceived(AggregatorInput value) { + SensorHandler.this.aggregator.add(sensorManager.getNow(), value); + sensorManager.onChange(); + } + + @Override + public void onDisconnected() { + SensorHandler.this.aggregator = null; + } } diff --git a/src/main/java/de/dennisguse/opentracks/sensors/TemperatureHandler.java b/src/main/java/de/dennisguse/opentracks/sensors/TemperatureHandler.java index 7c1a6d972..146797d5d 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/TemperatureHandler.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/TemperatureHandler.java @@ -20,7 +20,7 @@ public class TemperatureHandler extends SensorHandler protected Driver createDriverBluetooth(String address) { return new BluetoothDriver<>( BluetoothUtils.getAdapter(getContext()), - driverObserver, + this, new TemperatureBluetooth() ); }