forked from upstream-mirrors/OpenTracks
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);
|
super(sensorManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getSensorPreferenceKey() {
|
|
||||||
return R.string.settings_sensor_bluetooth_pressure_key;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected Driver createDriverInternal() {
|
protected Driver createDriverInternal() {
|
||||||
return new BarometerInternal(driverObserver);
|
return new BarometerInternal(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@@ -37,7 +32,7 @@ public class AltitudeChangeHandler extends SensorHandler<AtmosphericPressure, Al
|
|||||||
protected Driver createDriverBluetooth(String address) {
|
protected Driver createDriverBluetooth(String address) {
|
||||||
return new BluetoothDriver<>(
|
return new BluetoothDriver<>(
|
||||||
BluetoothUtils.getAdapter(getContext()),
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
driverObserver,
|
this,
|
||||||
new BarometerBluetooth()
|
new BarometerBluetooth()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -47,4 +42,9 @@ public class AltitudeChangeHandler extends SensorHandler<AtmosphericPressure, Al
|
|||||||
public AggregatorBarometer createAggregator(String sensorAddress, String sensorName) {
|
public AggregatorBarometer createAggregator(String sensorAddress, String sensorName) {
|
||||||
return new AggregatorBarometer(sensorAddress, 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) {
|
protected Driver createDriverBluetooth(String address) {
|
||||||
return new BluetoothDriver<>(
|
return new BluetoothDriver<>(
|
||||||
BluetoothUtils.getAdapter(getContext()),
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
driverObserver,
|
this,
|
||||||
new CyclingCadenceBluetooth()
|
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.CyclingDistanceSpeedBluetooth;
|
||||||
import de.dennisguse.opentracks.sensors.driver.Driver;
|
import de.dennisguse.opentracks.sensors.driver.Driver;
|
||||||
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingDistanceSpeed;
|
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingDistanceSpeed;
|
||||||
|
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||||
|
|
||||||
public class CyclingDistanceSpeedHandler extends SensorHandler<CyclingDistanceSpeedBluetooth.WheelData, AggregatorCyclingDistanceSpeed.Data> {
|
public class CyclingDistanceSpeedHandler extends SensorHandler<CyclingDistanceSpeedBluetooth.WheelData, AggregatorCyclingDistanceSpeed.Data> {
|
||||||
|
|
||||||
@@ -17,10 +18,9 @@ public class CyclingDistanceSpeedHandler extends SensorHandler<CyclingDistanceSp
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected Driver createDriverBluetooth(String address) {
|
protected Driver createDriverBluetooth(String address) {
|
||||||
//TODO ((AggregatorCyclingDistanceSpeed) getAggregator()).setWheelCircumference(PreferencesUtils.getWheelCircumference()); //TODO Fetch once and then listen for changes.);
|
|
||||||
return new BluetoothDriver<>(
|
return new BluetoothDriver<>(
|
||||||
BluetoothUtils.getAdapter(getContext()),
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
driverObserver,
|
this,
|
||||||
new CyclingDistanceSpeedBluetooth()
|
new CyclingDistanceSpeedBluetooth()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -35,4 +35,12 @@ public class CyclingDistanceSpeedHandler extends SensorHandler<CyclingDistanceSp
|
|||||||
protected int getSensorPreferenceKey() {
|
protected int getSensorPreferenceKey() {
|
||||||
return R.string.settings_sensor_bluetooth_cycling_speed_key;
|
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) {
|
protected Driver createDriverBluetooth(String address) {
|
||||||
return new BluetoothDriver<>(
|
return new BluetoothDriver<>(
|
||||||
BluetoothUtils.getAdapter(getContext()),
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
driverObserver,
|
this,
|
||||||
new CyclingPowerBluetooth()
|
new CyclingPowerBluetooth()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class HeartRateHandler extends SensorHandler<HeartRate, HeartRate> {
|
|||||||
protected Driver createDriverBluetooth(String address) {
|
protected Driver createDriverBluetooth(String address) {
|
||||||
return new BluetoothDriver<>(
|
return new BluetoothDriver<>(
|
||||||
BluetoothUtils.getAdapter(getContext()),
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
driverObserver,
|
this,
|
||||||
new HeartRateBluetooth()
|
new HeartRateBluetooth()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ public class RunningSpeedCadenceDistanceHandler extends SensorHandler<RunningSpe
|
|||||||
protected Driver createDriverBluetooth(String address) {
|
protected Driver createDriverBluetooth(String address) {
|
||||||
return new BluetoothDriver<>(
|
return new BluetoothDriver<>(
|
||||||
BluetoothUtils.getAdapter(getContext()),
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
driverObserver,
|
this,
|
||||||
new RunningSpeedAndCadenceBluetooth()
|
new RunningSpeedAndCadenceBluetooth()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,36 +15,13 @@ import de.dennisguse.opentracks.sensors.sensorData.SensorData;
|
|||||||
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
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 final SensorManager sensorManager;
|
||||||
|
|
||||||
private Driver driver;
|
private Driver driver;
|
||||||
|
|
||||||
private Aggregator<AggregatorInput, AggregatorOutput> aggregator;
|
protected 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 SensorHandler(SensorManager sensorManager) {
|
protected SensorHandler(SensorManager sensorManager) {
|
||||||
this.sensorManager = sensorManager;
|
this.sensorManager = sensorManager;
|
||||||
@@ -57,7 +34,7 @@ public abstract class SensorHandler<AggregatorInput, AggregatorOutput> {
|
|||||||
|
|
||||||
switch (PreferencesUtils.getSensorType(address)) {
|
switch (PreferencesUtils.getSensorType(address)) {
|
||||||
case NONE -> {
|
case NONE -> {
|
||||||
driverObserver.onDisconnected();
|
onDisconnected();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case INTERNAL -> {
|
case INTERNAL -> {
|
||||||
@@ -117,4 +94,24 @@ public abstract class SensorHandler<AggregatorInput, AggregatorOutput> {
|
|||||||
public void setAggregator(Aggregator<AggregatorInput, AggregatorOutput> aggregator) {
|
public void setAggregator(Aggregator<AggregatorInput, AggregatorOutput> aggregator) {
|
||||||
this.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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class TemperatureHandler extends SensorHandler<Temperature, Temperature>
|
|||||||
protected Driver createDriverBluetooth(String address) {
|
protected Driver createDriverBluetooth(String address) {
|
||||||
return new BluetoothDriver<>(
|
return new BluetoothDriver<>(
|
||||||
BluetoothUtils.getAdapter(getContext()),
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
driverObserver,
|
this,
|
||||||
new TemperatureBluetooth()
|
new TemperatureBluetooth()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user