mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-09-30 16:52:21 +02:00
CyclingDistanceSpeedHandler: uses wheel size (again).
Skipped while to SensorHandler: a5dcbec3961957dfc651cf4ffd62ec075324c0ba
This commit is contained in:
@@ -21,15 +21,10 @@ public class AltitudeChangeHandler extends SensorHandler<AtmosphericPressure, Al
|
||||
super(sensorManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getSensorPreferenceKey() {
|
||||
return R.string.settings_sensor_bluetooth_pressure_key;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
protected Driver createDriverInternal() {
|
||||
return new BarometerInternal(driverObserver);
|
||||
return new BarometerInternal(this);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@@ -37,7 +32,7 @@ public class AltitudeChangeHandler extends SensorHandler<AtmosphericPressure, Al
|
||||
protected Driver createDriverBluetooth(String address) {
|
||||
return new BluetoothDriver<>(
|
||||
BluetoothUtils.getAdapter(getContext()),
|
||||
driverObserver,
|
||||
this,
|
||||
new BarometerBluetooth()
|
||||
);
|
||||
}
|
||||
@@ -47,4 +42,9 @@ public class AltitudeChangeHandler extends SensorHandler<AtmosphericPressure, Al
|
||||
public AggregatorBarometer createAggregator(String sensorAddress, String sensorName) {
|
||||
return new AggregatorBarometer(sensorAddress, sensorName);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getSensorPreferenceKey() {
|
||||
return R.string.settings_sensor_bluetooth_pressure_key;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public class CyclingCadenceHandler extends SensorHandler<CyclingCadenceBluetooth
|
||||
protected Driver createDriverBluetooth(String address) {
|
||||
return new BluetoothDriver<>(
|
||||
BluetoothUtils.getAdapter(getContext()),
|
||||
driverObserver,
|
||||
this,
|
||||
new CyclingCadenceBluetooth()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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<CyclingDistanceSpeedBluetooth.WheelData, AggregatorCyclingDistanceSpeed.Data> {
|
||||
|
||||
@@ -17,10 +18,9 @@ public class CyclingDistanceSpeedHandler extends SensorHandler<CyclingDistanceSp
|
||||
@NonNull
|
||||
@Override
|
||||
protected Driver createDriverBluetooth(String address) {
|
||||
//TODO ((AggregatorCyclingDistanceSpeed) getAggregator()).setWheelCircumference(PreferencesUtils.getWheelCircumference()); //TODO Fetch once and then listen for changes.);
|
||||
return new BluetoothDriver<>(
|
||||
BluetoothUtils.getAdapter(getContext()),
|
||||
driverObserver,
|
||||
this,
|
||||
new CyclingDistanceSpeedBluetooth()
|
||||
);
|
||||
}
|
||||
@@ -35,4 +35,12 @@ public class CyclingDistanceSpeedHandler extends SensorHandler<CyclingDistanceSp
|
||||
protected int getSensorPreferenceKey() {
|
||||
return R.string.settings_sensor_bluetooth_cycling_speed_key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataReceived(CyclingDistanceSpeedBluetooth.WheelData value) {
|
||||
//TODO Fetch once and then listen for changes.
|
||||
((AggregatorCyclingDistanceSpeed) aggregator).setWheelCircumference(PreferencesUtils.getWheelCircumference());
|
||||
|
||||
super.onDataReceived(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public class CyclingPowerHandler extends SensorHandler<CyclingPowerBluetooth.Dat
|
||||
protected Driver createDriverBluetooth(String address) {
|
||||
return new BluetoothDriver<>(
|
||||
BluetoothUtils.getAdapter(getContext()),
|
||||
driverObserver,
|
||||
this,
|
||||
new CyclingPowerBluetooth()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public class HeartRateHandler extends SensorHandler<HeartRate, HeartRate> {
|
||||
protected Driver createDriverBluetooth(String address) {
|
||||
return new BluetoothDriver<>(
|
||||
BluetoothUtils.getAdapter(getContext()),
|
||||
driverObserver,
|
||||
this,
|
||||
new HeartRateBluetooth()
|
||||
);
|
||||
}
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ public class RunningSpeedCadenceDistanceHandler extends SensorHandler<RunningSpe
|
||||
protected Driver createDriverBluetooth(String address) {
|
||||
return new BluetoothDriver<>(
|
||||
BluetoothUtils.getAdapter(getContext()),
|
||||
driverObserver,
|
||||
this,
|
||||
new RunningSpeedAndCadenceBluetooth()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -15,36 +15,13 @@ import de.dennisguse.opentracks.sensors.sensorData.SensorData;
|
||||
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||
|
||||
|
||||
public abstract class SensorHandler<AggregatorInput, AggregatorOutput> {
|
||||
public abstract class SensorHandler<AggregatorInput, AggregatorOutput> implements DriverObserver<AggregatorInput> {
|
||||
|
||||
private final SensorManager sensorManager;
|
||||
|
||||
private Driver driver;
|
||||
|
||||
private Aggregator<AggregatorInput, AggregatorOutput> aggregator;
|
||||
|
||||
protected final DriverObserver<AggregatorInput> 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<AggregatorInput, AggregatorOutput> aggregator;
|
||||
|
||||
protected SensorHandler(SensorManager sensorManager) {
|
||||
this.sensorManager = sensorManager;
|
||||
@@ -57,7 +34,7 @@ public abstract class SensorHandler<AggregatorInput, AggregatorOutput> {
|
||||
|
||||
switch (PreferencesUtils.getSensorType(address)) {
|
||||
case NONE -> {
|
||||
driverObserver.onDisconnected();
|
||||
onDisconnected();
|
||||
return;
|
||||
}
|
||||
case INTERNAL -> {
|
||||
@@ -117,4 +94,24 @@ public abstract class SensorHandler<AggregatorInput, AggregatorOutput> {
|
||||
public void setAggregator(Aggregator<AggregatorInput, AggregatorOutput> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public class TemperatureHandler extends SensorHandler<Temperature, Temperature>
|
||||
protected Driver createDriverBluetooth(String address) {
|
||||
return new BluetoothDriver<>(
|
||||
BluetoothUtils.getAdapter(getContext()),
|
||||
driverObserver,
|
||||
this,
|
||||
new TemperatureBluetooth()
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user