forked from upstream-mirrors/OpenTracks
Created RunningSpeedCadenceDistanceHandler.
This commit is contained in:
+12
-6
@@ -810,19 +810,22 @@ public class TrackRecordingServiceRecordingTest {
|
|||||||
trackPointCreator.setClock(startTime);
|
trackPointCreator.setClock(startTime);
|
||||||
Track.Id trackId = service.startNewTrack();
|
Track.Id trackId = service.startNewTrack();
|
||||||
|
|
||||||
|
AggregatorRunning aggregatorRunning = new AggregatorRunning("", "");
|
||||||
SensorManager sensorManager = trackPointCreator.getSensorManager();
|
SensorManager sensorManager = trackPointCreator.getSensorManager();
|
||||||
sensorManager.add(new AggregatorRunning("", ""));
|
sensorManager.add(aggregatorRunning);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String sensor1 = "2020-02-02T02:02:03Z";
|
String sensor1 = "2020-02-02T02:02:03Z";
|
||||||
trackPointCreator.setClock(sensor1);
|
trackPointCreator.setClock(sensor1);
|
||||||
//Should be ignored
|
//Should be ignored
|
||||||
sensorManager.onChange(new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(1), Distance.ZERO));
|
aggregatorRunning.add(trackPointCreator.getNow(), new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(1), Distance.ZERO));
|
||||||
|
sensorManager.onChange();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String sensor2 = "2020-02-02T02:02:04Z";
|
String sensor2 = "2020-02-02T02:02:04Z";
|
||||||
trackPointCreator.setClock(sensor2);
|
trackPointCreator.setClock(sensor2);
|
||||||
sensorManager.onChange(new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(2), Distance.of(2)));
|
aggregatorRunning.add(trackPointCreator.getNow(), new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(2), Distance.of(2)));
|
||||||
|
sensorManager.onChange();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String gps1 = "2020-02-02T02:02:05Z";
|
String gps1 = "2020-02-02T02:02:05Z";
|
||||||
@@ -831,13 +834,15 @@ public class TrackRecordingServiceRecordingTest {
|
|||||||
// when
|
// when
|
||||||
String sensor3 = "2020-02-02T02:02:06Z";
|
String sensor3 = "2020-02-02T02:02:06Z";
|
||||||
trackPointCreator.setClock(sensor3);
|
trackPointCreator.setClock(sensor3);
|
||||||
sensorManager.onChange(new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(3), Distance.of(12)));
|
aggregatorRunning.add(trackPointCreator.getNow(), new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(3), Distance.of(12)));
|
||||||
|
sensorManager.onChange();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String sensor4 = "2020-02-02T02:02:07Z";
|
String sensor4 = "2020-02-02T02:02:07Z";
|
||||||
trackPointCreator.setClock(sensor4);
|
trackPointCreator.setClock(sensor4);
|
||||||
//Should be ignored
|
//Should be ignored
|
||||||
sensorManager.onChange(new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(4), Distance.of(14)));
|
aggregatorRunning.add(trackPointCreator.getNow(), new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(4), Distance.of(14)));
|
||||||
|
sensorManager.onChange();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String gps2 = "2020-02-02T02:02:08Z";
|
String gps2 = "2020-02-02T02:02:08Z";
|
||||||
@@ -847,7 +852,8 @@ public class TrackRecordingServiceRecordingTest {
|
|||||||
String sensor5 = "2020-02-02T02:02:10Z";
|
String sensor5 = "2020-02-02T02:02:10Z";
|
||||||
trackPointCreator.setClock(sensor5);
|
trackPointCreator.setClock(sensor5);
|
||||||
//Should be ignored
|
//Should be ignored
|
||||||
sensorManager.onChange(new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(5), Distance.of(16)));
|
aggregatorRunning.add(trackPointCreator.getNow(), new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(5), Distance.of(16)));
|
||||||
|
sensorManager.onChange();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String gps3 = "2020-02-02T02:02:12Z";
|
String gps3 = "2020-02-02T02:02:12Z";
|
||||||
|
|||||||
+57
@@ -0,0 +1,57 @@
|
|||||||
|
package de.dennisguse.opentracks.sensors;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import de.dennisguse.opentracks.R;
|
||||||
|
import de.dennisguse.opentracks.sensors.driver.Driver;
|
||||||
|
import de.dennisguse.opentracks.sensors.driver.DriverObserver0;
|
||||||
|
import de.dennisguse.opentracks.sensors.sensorData.Aggregator;
|
||||||
|
import de.dennisguse.opentracks.sensors.sensorData.AggregatorRunning;
|
||||||
|
|
||||||
|
public class RunningSpeedCadenceDistanceHandler extends SensorHandler<BluetoothHandlerRunningSpeedAndCadence.Data> {
|
||||||
|
|
||||||
|
protected RunningSpeedCadenceDistanceHandler(SensorManager sensorManager) {
|
||||||
|
super(sensorManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
protected Driver createDriverBluetooth(String address) {
|
||||||
|
return new BluetoothConnectionManager(
|
||||||
|
BluetoothUtils.getAdapter(getContext()),
|
||||||
|
new DriverObserver0() {
|
||||||
|
@Override
|
||||||
|
public void onConnect(Aggregator<?, ?> emptySensorData) {
|
||||||
|
driverObserver.onConnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisconnect(Aggregator<?, ?> emptySensorData) {
|
||||||
|
driverObserver.onDisconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRemove(Aggregator<?, ?> emptySensorData) {
|
||||||
|
driverObserver.onRemove();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChange(Record value) {
|
||||||
|
driverObserver.onData((BluetoothHandlerRunningSpeedAndCadence.Data) value);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new BluetoothHandlerRunningSpeedAndCadence()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
protected AggregatorRunning createAggregator() {
|
||||||
|
return new AggregatorRunning("", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getSensorPreferenceKey() {
|
||||||
|
return R.string.settings_sensor_bluetooth_running_speed_and_cadence_key;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package de.dennisguse.opentracks.sensors;
|
package de.dennisguse.opentracks.sensors;
|
||||||
|
|
||||||
import android.bluetooth.BluetoothAdapter;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -13,7 +12,6 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
|
||||||
import de.dennisguse.opentracks.data.models.Cadence;
|
import de.dennisguse.opentracks.data.models.Cadence;
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.HeartRate;
|
import de.dennisguse.opentracks.data.models.HeartRate;
|
||||||
@@ -54,7 +52,7 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
private CyclingCadenceHandler cyclingCadenceHandler;
|
private CyclingCadenceHandler cyclingCadenceHandler;
|
||||||
private CyclingDistanceSpeedHandler cyclingDistanceSpeedHandler;
|
private CyclingDistanceSpeedHandler cyclingDistanceSpeedHandler;
|
||||||
private CyclingPowerHandler cyclingPowerHandler;
|
private CyclingPowerHandler cyclingPowerHandler;
|
||||||
private BluetoothConnectionManager runningSpeedAndCadenceManager;
|
private RunningSpeedCadenceDistanceHandler runningSpeedCadenceDistanceHandler;
|
||||||
|
|
||||||
private GainManager altitudeSumManager;
|
private GainManager altitudeSumManager;
|
||||||
|
|
||||||
@@ -80,9 +78,7 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
this.cyclingCadenceHandler = new CyclingCadenceHandler(this);
|
this.cyclingCadenceHandler = new CyclingCadenceHandler(this);
|
||||||
this.cyclingDistanceSpeedHandler = new CyclingDistanceSpeedHandler(this);
|
this.cyclingDistanceSpeedHandler = new CyclingDistanceSpeedHandler(this);
|
||||||
this.cyclingPowerHandler = new CyclingPowerHandler(this);
|
this.cyclingPowerHandler = new CyclingPowerHandler(this);
|
||||||
|
this.runningSpeedCadenceDistanceHandler = new RunningSpeedCadenceDistanceHandler(this);
|
||||||
BluetoothAdapter bluetoothAdapter = BluetoothUtils.getAdapter(context);
|
|
||||||
this.runningSpeedAndCadenceManager = new BluetoothConnectionManager(bluetoothAdapter, this, new BluetoothHandlerRunningSpeedAndCadence());
|
|
||||||
|
|
||||||
altitudeSumManager.start(context, handler);
|
altitudeSumManager.start(context, handler);
|
||||||
heartRateHandler.start(context, handler);
|
heartRateHandler.start(context, handler);
|
||||||
@@ -90,6 +86,8 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
cyclingCadenceHandler.start(context, handler);
|
cyclingCadenceHandler.start(context, handler);
|
||||||
cyclingDistanceSpeedHandler.start(context, handler);
|
cyclingDistanceSpeedHandler.start(context, handler);
|
||||||
cyclingPowerHandler.start(context, handler);
|
cyclingPowerHandler.start(context, handler);
|
||||||
|
runningSpeedCadenceDistanceHandler.start(context, handler);
|
||||||
|
|
||||||
onSharedPreferenceChanged(null, null);
|
onSharedPreferenceChanged(null, null);
|
||||||
|
|
||||||
gpsManager.start(context, handler);
|
gpsManager.start(context, handler);
|
||||||
@@ -113,8 +111,8 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
cyclingPowerHandler.stop();
|
cyclingPowerHandler.stop();
|
||||||
cyclingPowerHandler = null;
|
cyclingPowerHandler = null;
|
||||||
|
|
||||||
runningSpeedAndCadenceManager.disconnect();
|
runningSpeedCadenceDistanceHandler.stop();
|
||||||
runningSpeedAndCadenceManager = null;
|
runningSpeedCadenceDistanceHandler = null;
|
||||||
|
|
||||||
altitudeSumManager.stop();
|
altitudeSumManager.stop();
|
||||||
altitudeSumManager = null;
|
altitudeSumManager = null;
|
||||||
@@ -141,7 +139,7 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
if (cyclingCadenceHandler.getAggregator() != null) cyclingCadenceHandler.getAggregator().resetAggregated();
|
if (cyclingCadenceHandler.getAggregator() != null) cyclingCadenceHandler.getAggregator().resetAggregated();
|
||||||
if (cyclingDistanceSpeedHandler.getAggregator() != null) cyclingDistanceSpeedHandler.getAggregator().resetAggregated();
|
if (cyclingDistanceSpeedHandler.getAggregator() != null) cyclingDistanceSpeedHandler.getAggregator().resetAggregated();
|
||||||
if (cyclingPowerHandler.getAggregator() != null) cyclingPowerHandler.getAggregator().resetAggregated();
|
if (cyclingPowerHandler.getAggregator() != null) cyclingPowerHandler.getAggregator().resetAggregated();
|
||||||
if (runningDistanceSpeedCadence != null) runningDistanceSpeedCadence.resetAggregated();
|
if (runningSpeedCadenceDistanceHandler.getAggregator() != null) runningSpeedCadenceDistanceHandler.getAggregator().resetAggregated();
|
||||||
if (altitudeSumManager.getAggregator() != null) altitudeSumManager.getAggregator().resetAggregated();
|
if (altitudeSumManager.getAggregator() != null) altitudeSumManager.getAggregator().resetAggregated();
|
||||||
if (gpsManager.getAggregatorGPS() != null) gpsManager.getAggregatorGPS().resetAggregated();
|
if (gpsManager.getAggregatorGPS() != null) gpsManager.getAggregatorGPS().resetAggregated();
|
||||||
}
|
}
|
||||||
@@ -195,10 +193,8 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
cyclingPowerHandler.connect();
|
cyclingPowerHandler.connect();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PreferencesUtils.isKey(R.string.settings_sensor_bluetooth_running_speed_and_cadence_key, key)) {
|
if (PreferencesUtils.isKey(runningSpeedCadenceDistanceHandler.getSensorPreferenceKey(), key)) {
|
||||||
String address = PreferencesUtils.getBluetoothRunningSpeedAndCadenceAddress();
|
runningSpeedCadenceDistanceHandler.connect();
|
||||||
|
|
||||||
connect(runningSpeedAndCadenceManager, address);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -206,30 +202,32 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
//TODO Inlined from SensorDataAggregator; Aggregators will be moved into Drivers.
|
//TODO Inlined from SensorDataAggregator; Aggregators will be moved into Drivers.
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void onConnect(Aggregator<?, ?> aggregator) {
|
public void onConnect(Aggregator<?, ?> aggregator) {
|
||||||
add(aggregator);
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void onDisconnect(Aggregator<?, ?> aggregator) {
|
public void onDisconnect(Aggregator<?, ?> aggregator) {
|
||||||
add(aggregator);
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void onRemove(Aggregator<?, ?> aggregator) {
|
public void onRemove(Aggregator<?, ?> aggregator) {
|
||||||
remove(aggregator);
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChange(Record value) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Instant getNow() {
|
public Instant getNow() {
|
||||||
return observer.getNow();
|
return observer.getNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
public AggregatorRunning runningDistanceSpeedCadence;
|
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public SensorData<HeartRate> getHeartRate(Instant now) {
|
public SensorData<HeartRate> getHeartRate(Instant now) {
|
||||||
if (heartRateHandler.getAggregator() != null) {
|
if (heartRateHandler.getAggregator() != null) {
|
||||||
SensorData<HeartRate> value = (SensorData<HeartRate>) heartRateHandler.getAggregator().getAggregatedValueWithSensorName(now);
|
SensorData<HeartRate> value = ((AggregatorHeartRate) heartRateHandler.getAggregator()).getAggregatedValueWithSensorName(now);
|
||||||
//TODO Move this check into HeartRateHandler
|
//TODO Move this check into HeartRateHandler
|
||||||
if (value.data().isValid()) return value;
|
if (value.data().isValid()) return value;
|
||||||
}
|
}
|
||||||
@@ -239,11 +237,11 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
|
|
||||||
private SensorData<Cadence> getCadence(Instant now) {
|
private SensorData<Cadence> getCadence(Instant now) {
|
||||||
if (cyclingCadenceHandler.getAggregator() != null) {
|
if (cyclingCadenceHandler.getAggregator() != null) {
|
||||||
return (SensorData<Cadence>) cyclingCadenceHandler.getAggregator().getAggregatedValueWithSensorName(now);
|
return ((AggregatorCyclingCadence) cyclingCadenceHandler.getAggregator()).getAggregatedValueWithSensorName(now);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runningDistanceSpeedCadence != null && runningDistanceSpeedCadence.hasReceivedData() && runningDistanceSpeedCadence.getAggregatedValue(now).cadence() != null) {
|
if (runningSpeedCadenceDistanceHandler.getAggregator() != null && runningSpeedCadenceDistanceHandler.getAggregator().hasReceivedData() && ((AggregatorRunning)runningSpeedCadenceDistanceHandler.getAggregator()).getAggregatedValue(now).cadence() != null) {
|
||||||
return new SensorData<>(runningDistanceSpeedCadence.getAggregatedValue().cadence(), runningDistanceSpeedCadence.getSensorNameOrAddress());
|
return new SensorData<>(((AggregatorRunning)runningSpeedCadenceDistanceHandler.getAggregator()).getAggregatedValue().cadence(), runningSpeedCadenceDistanceHandler.getAggregator().getSensorNameOrAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@@ -254,8 +252,8 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
return new SensorData<>(((AggregatorCyclingDistanceSpeed) cyclingDistanceSpeedHandler.getAggregator()).getAggregatedValue(now).distanceOverall(), cyclingDistanceSpeedHandler.getAggregator().getSensorNameOrAddress());
|
return new SensorData<>(((AggregatorCyclingDistanceSpeed) cyclingDistanceSpeedHandler.getAggregator()).getAggregatedValue(now).distanceOverall(), cyclingDistanceSpeedHandler.getAggregator().getSensorNameOrAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runningDistanceSpeedCadence != null && runningDistanceSpeedCadence.hasReceivedData()) {
|
if (runningSpeedCadenceDistanceHandler.getAggregator() != null && runningSpeedCadenceDistanceHandler.getAggregator().hasReceivedData()) {
|
||||||
return new SensorData<>(runningDistanceSpeedCadence.getAggregatedValue(now).distance(), runningDistanceSpeedCadence.getSensorNameOrAddress());
|
return new SensorData<>(((AggregatorRunning)runningSpeedCadenceDistanceHandler.getAggregator()).getAggregatedValue(now).distance(), runningSpeedCadenceDistanceHandler.getAggregator().getSensorNameOrAddress());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,8 +267,8 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
return new SensorData<>(((AggregatorCyclingDistanceSpeed) cyclingDistanceSpeedHandler.getAggregator()).getAggregatedValue(now).speed(), cyclingDistanceSpeedHandler.getAggregator().getSensorNameOrAddress());
|
return new SensorData<>(((AggregatorCyclingDistanceSpeed) cyclingDistanceSpeedHandler.getAggregator()).getAggregatedValue(now).speed(), cyclingDistanceSpeedHandler.getAggregator().getSensorNameOrAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runningDistanceSpeedCadence != null && runningDistanceSpeedCadence.hasReceivedData() && runningDistanceSpeedCadence.getAggregatedValue(now).speed() != null) {
|
if (runningSpeedCadenceDistanceHandler.getAggregator() != null && runningSpeedCadenceDistanceHandler.getAggregator().hasReceivedData() && ((AggregatorRunning)runningSpeedCadenceDistanceHandler.getAggregator()).getAggregatedValue(now).speed() != null) {
|
||||||
return new SensorData<>(runningDistanceSpeedCadence.getAggregatedValue().speed(), runningDistanceSpeedCadence.getSensorNameOrAddress());
|
return new SensorData<>(((AggregatorRunning)runningSpeedCadenceDistanceHandler.getAggregator()).getAggregatedValue().speed(), runningSpeedCadenceDistanceHandler.getAggregator().getSensorNameOrAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@@ -297,46 +295,25 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (data instanceof AggregatorCyclingPower) {
|
if (data instanceof AggregatorCyclingPower) {
|
||||||
cyclingPowerHandler.setAggregator((Aggregator<BluetoothHandlerCyclingPower.Data, ?>) data);
|
cyclingPowerHandler.setAggregator((AggregatorCyclingPower) data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (data instanceof AggregatorRunning) {
|
||||||
|
runningSpeedCadenceDistanceHandler.setAggregator((AggregatorRunning) data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
set(data, data);
|
throw new UnsupportedOperationException(data.getClass().getCanonicalName());
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public void onChange(Record data) {
|
|
||||||
update(data);
|
|
||||||
onChange();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onChange() {
|
public void onChange() {
|
||||||
observer.onChange();
|
observer.onChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Refactor generic "fun" here: go explicit.
|
|
||||||
@Deprecated
|
|
||||||
private void update(@NonNull Record value) {
|
|
||||||
Instant now = getNow();
|
|
||||||
if (value instanceof BluetoothHandlerRunningSpeedAndCadence.Data) {
|
|
||||||
this.runningDistanceSpeedCadence.add(now, (BluetoothHandlerRunningSpeedAndCadence.Data) value);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new UnsupportedOperationException(value.getClass().getCanonicalName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public void remove(@NonNull Aggregator<?, ?> type) {
|
|
||||||
set(type, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO inline with stop()?
|
// TODO inline with stop()?
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void clear() {
|
public void clear() {
|
||||||
Log.i(TAG, "Removing all aggregators");
|
Log.i(TAG, "Removing all aggregators");
|
||||||
this.runningDistanceSpeedCadence = null;
|
|
||||||
|
|
||||||
//TODO This is to ExportImportTest alive; refactor test.
|
//TODO This is to ExportImportTest alive; refactor test.
|
||||||
if (this.altitudeSumManager != null) {
|
if (this.altitudeSumManager != null) {
|
||||||
@@ -357,6 +334,9 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
if (cyclingPowerHandler != null) {
|
if (cyclingPowerHandler != null) {
|
||||||
cyclingPowerHandler.setAggregator(null);
|
cyclingPowerHandler.setAggregator(null);
|
||||||
}
|
}
|
||||||
|
if (runningSpeedCadenceDistanceHandler != null) {
|
||||||
|
runningSpeedCadenceDistanceHandler.setAggregator(null);
|
||||||
|
}
|
||||||
if (this.gpsManager != null) {
|
if (this.gpsManager != null) {
|
||||||
this.gpsManager.setAggregatorGPS();
|
this.gpsManager.setAggregatorGPS();
|
||||||
}
|
}
|
||||||
@@ -377,16 +357,4 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
barometer != null && barometer.hasReceivedData() ? barometer.getAggregatedValueWithSensorName(now) : null
|
barometer != null && barometer.hasReceivedData() ? barometer.getAggregatedValueWithSensorName(now) : null
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Refactor generic "fun" here: go explicit.
|
|
||||||
private void set(@NonNull Aggregator<?, ?> type, @Nullable Aggregator<?, ?> sensorData) {
|
|
||||||
Log.i(TAG, "Setting aggregator " + type.getClass().getCanonicalName() + " to " + sensorData);
|
|
||||||
|
|
||||||
if (type instanceof AggregatorRunning) {
|
|
||||||
runningDistanceSpeedCadence = (AggregatorRunning) sensorData;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new UnsupportedOperationException(type.getClass().getCanonicalName());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -269,10 +269,6 @@ public class PreferencesUtils {
|
|||||||
return Distance.ofMM(getInt(R.string.settings_sensor_bluetooth_cycling_speed_wheel_circumference_key, DEFAULT));
|
return Distance.ofMM(getInt(R.string.settings_sensor_bluetooth_cycling_speed_wheel_circumference_key, DEFAULT));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getBluetoothRunningSpeedAndCadenceAddress() {
|
|
||||||
return getString(R.string.settings_sensor_bluetooth_running_speed_and_cadence_key, getBluetoothSensorAddressNone());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean getBluetoothFilterEnabled() {
|
public static boolean getBluetoothFilterEnabled() {
|
||||||
final boolean DEFAULT = resources.getBoolean(R.bool.settings_sensor_bluetooth_service_filter_enabled_default);
|
final boolean DEFAULT = resources.getBoolean(R.bool.settings_sensor_bluetooth_service_filter_enabled_default);
|
||||||
return getBoolean(R.string.settings_sensor_bluetooth_service_filter_enabled_key, DEFAULT);
|
return getBoolean(R.string.settings_sensor_bluetooth_service_filter_enabled_key, DEFAULT);
|
||||||
|
|||||||
Reference in New Issue
Block a user