mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-02 09:33:06 +02:00
Cleanup: SensorManager.SensorDataChangedObserver inlined into SensorManager.
Preparation for refactoring.
This commit is contained in:
+11
-7
@@ -344,11 +344,12 @@ public class TrackRecordingServiceRecordingTest {
|
||||
String sensor1 = "2020-02-02T02:02:03Z";
|
||||
trackPointCreator.setClock(sensor1);
|
||||
|
||||
sensorManager.onChanged(new Raw<>(sensor1, HeartRate.of(5))); //Should be ignored
|
||||
//Should be ignored
|
||||
sensorManager.onChange(new Raw<HeartRate>(sensor1, HeartRate.of(5)));
|
||||
|
||||
String sensor3 = "2020-02-02T02:02:13Z";
|
||||
trackPointCreator.setClock(sensor3);
|
||||
sensorManager.onChanged(new Raw<>(sensor3, HeartRate.of(7)));
|
||||
sensorManager.onChange(new Raw<HeartRate>(sensor3, HeartRate.of(7)));
|
||||
|
||||
String stopTime = "2020-02-02T02:02:15Z";
|
||||
trackPointCreator.setClock(stopTime);
|
||||
@@ -815,12 +816,13 @@ public class TrackRecordingServiceRecordingTest {
|
||||
// when
|
||||
String sensor1 = "2020-02-02T02:02:03Z";
|
||||
trackPointCreator.setClock(sensor1);
|
||||
sensorManager.onChanged(new Raw<>(sensor1, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(1), Distance.ZERO))); //Should be ignored
|
||||
//Should be ignored
|
||||
sensorManager.onChange(new Raw<BluetoothHandlerRunningSpeedAndCadence.Data>(sensor1, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(1), Distance.ZERO)));
|
||||
|
||||
// when
|
||||
String sensor2 = "2020-02-02T02:02:04Z";
|
||||
trackPointCreator.setClock(sensor2);
|
||||
sensorManager.onChanged(new Raw<>(sensor2, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(2), Distance.of(2))));
|
||||
sensorManager.onChange(new Raw<BluetoothHandlerRunningSpeedAndCadence.Data>(sensor2, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(2), Distance.of(2))));
|
||||
|
||||
// when
|
||||
String gps1 = "2020-02-02T02:02:05Z";
|
||||
@@ -829,12 +831,13 @@ public class TrackRecordingServiceRecordingTest {
|
||||
// when
|
||||
String sensor3 = "2020-02-02T02:02:06Z";
|
||||
trackPointCreator.setClock(sensor3);
|
||||
sensorManager.onChanged(new Raw<>(sensor3, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(3), Distance.of(12))));
|
||||
sensorManager.onChange(new Raw<BluetoothHandlerRunningSpeedAndCadence.Data>(sensor3, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(3), Distance.of(12))));
|
||||
|
||||
// when
|
||||
String sensor4 = "2020-02-02T02:02:07Z";
|
||||
trackPointCreator.setClock(sensor4);
|
||||
sensorManager.onChanged(new Raw<>(sensor4, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(4), Distance.of(14)))); //Should be ignored
|
||||
//Should be ignored
|
||||
sensorManager.onChange(new Raw<BluetoothHandlerRunningSpeedAndCadence.Data>(sensor4, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(4), Distance.of(14))));
|
||||
|
||||
// when
|
||||
String gps2 = "2020-02-02T02:02:08Z";
|
||||
@@ -843,7 +846,8 @@ public class TrackRecordingServiceRecordingTest {
|
||||
// when
|
||||
String sensor5 = "2020-02-02T02:02:10Z";
|
||||
trackPointCreator.setClock(sensor5);
|
||||
sensorManager.onChanged(new Raw<>(sensor5, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(5), Distance.of(16)))); //Should be ignored
|
||||
//Should be ignored
|
||||
sensorManager.onChange(new Raw<BluetoothHandlerRunningSpeedAndCadence.Data>(sensor5, new BluetoothHandlerRunningSpeedAndCadence.Data(Speed.of(5), Cadence.of(5), Distance.of(16))));
|
||||
|
||||
// when
|
||||
String gps3 = "2020-02-02T02:02:12Z";
|
||||
|
||||
@@ -45,7 +45,7 @@ public class BluetoothConnectionManager implements Driver {
|
||||
|
||||
private static final String TAG = BluetoothConnectionManager.class.getSimpleName();
|
||||
|
||||
private final SensorManager.SensorDataChangedObserver observer;
|
||||
private final SensorManager observer;
|
||||
|
||||
private final SensorHandlerInterface sensorHandler;
|
||||
|
||||
@@ -131,7 +131,7 @@ public class BluetoothConnectionManager implements Driver {
|
||||
}
|
||||
};
|
||||
|
||||
BluetoothConnectionManager(BluetoothAdapter bluetoothAdapter, SensorManager.SensorDataChangedObserver observer, SensorHandlerInterface sensorHandler) {
|
||||
BluetoothConnectionManager(BluetoothAdapter bluetoothAdapter, SensorManager observer, SensorHandlerInterface sensorHandler) {
|
||||
this.bluetoothAdapter = bluetoothAdapter;
|
||||
this.observer = observer;
|
||||
this.sensorHandler = sensorHandler;
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ public class BluetoothHandlerBarometricPressure implements SensorHandlerInterfac
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
public void handlePayload(SensorManager observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
AtmosphericPressure value = parseEnvironmentalSensing(characteristic);
|
||||
if (value == null) return;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public class BluetoothHandlerCyclingCadence implements SensorHandlerInterface {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
public void handlePayload(SensorManager observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
if (serviceMeasurementUUID.equals(BluetoothHandlerCyclingPower.CYCLING_POWER)) {
|
||||
BluetoothHandlerCyclingPower.Data data = BluetoothHandlerCyclingPower.parseCyclingPower(characteristic);
|
||||
if (data != null && data.crank() != null) {
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ public class BluetoothHandlerCyclingDistanceSpeed implements SensorHandlerInterf
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
public void handlePayload(SensorManager observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
Pair<WheelData, BluetoothHandlerCyclingCadence.CrankData> data = parseCyclingCrankAndWheel(address, sensorName, characteristic);
|
||||
if (data.first != null) {
|
||||
observer.onChange(new Raw<>(observer.getNow(), data.first));
|
||||
|
||||
@@ -31,7 +31,7 @@ public class BluetoothHandlerCyclingPower implements SensorHandlerInterface {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePayload(SensorManager.SensorDataChangedObserver observer, @NonNull ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
public void handlePayload(SensorManager observer, @NonNull ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
Data cyclingPower = parseCyclingPower(characteristic);
|
||||
|
||||
if (cyclingPower != null) {
|
||||
|
||||
@@ -41,7 +41,7 @@ public class BluetoothHandlerHeartRate implements SensorHandlerInterface {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePayload(SensorManager.SensorDataChangedObserver observer, @NonNull ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
public void handlePayload(SensorManager observer, @NonNull ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
HeartRate heartRate = parseHeartRate(characteristic);
|
||||
|
||||
if (heartRate != null) {
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ public class BluetoothHandlerRunningSpeedAndCadence implements SensorHandlerInte
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePayload(SensorManager.SensorDataChangedObserver observer, @NonNull ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
public void handlePayload(SensorManager observer, @NonNull ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
Data data = parseRunningSpeedAndCadence(sensorName, characteristic);
|
||||
observer.onChange(new Raw<>(observer.getNow(), data));
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class BluetoothHandlerTemperature implements SensorHandlerInterface {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
public void handlePayload(SensorManager observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic) {
|
||||
Temperature value = parseEnvironmentalSensing(characteristic);
|
||||
if (value == null) return;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ public class BluetoothRemoteSensorManager implements SharedPreferences.OnSharedP
|
||||
private final BluetoothConnectionManager cyclingPower;
|
||||
private final BluetoothConnectionManager runningSpeedAndCadence;
|
||||
|
||||
public BluetoothRemoteSensorManager(@NonNull Context context, @NonNull Handler handler, @Nullable SensorManager.SensorDataChangedObserver observer) {
|
||||
public BluetoothRemoteSensorManager(@NonNull Context context, @NonNull Handler handler, @Nullable SensorManager observer) {
|
||||
this.context = context;
|
||||
this.handler = handler;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ public class GainManager {
|
||||
private static final String TAG = GainManager.class.getSimpleName();
|
||||
|
||||
|
||||
private final SensorManager.SensorDataChangedObserver listener;
|
||||
private final SensorManager listener;
|
||||
|
||||
private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = (sharedPreferences, key) -> connect();
|
||||
|
||||
@@ -26,7 +26,7 @@ public class GainManager {
|
||||
private Handler handler;
|
||||
private Driver driver;
|
||||
|
||||
public GainManager(SensorManager.SensorDataChangedObserver listener) {
|
||||
public GainManager(SensorManager listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ public class GpsManager implements LocationListenerCompat, GpsStatusManager.GpsS
|
||||
|
||||
private TrackPointCreator trackPointCreator;
|
||||
|
||||
private SensorManager.SensorDataChangedObserver observer;
|
||||
private SensorManager observer;
|
||||
private Context context;
|
||||
private Handler handler;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class GpsManager implements LocationListenerCompat, GpsStatusManager.GpsS
|
||||
private Duration gpsInterval;
|
||||
private Distance thresholdHorizontalAccuracy;
|
||||
|
||||
public GpsManager(TrackPointCreator trackPointCreator, SensorManager.SensorDataChangedObserver observer) {
|
||||
public GpsManager(TrackPointCreator trackPointCreator, SensorManager observer) {
|
||||
this.trackPointCreator = trackPointCreator;
|
||||
this.observer = observer;
|
||||
}
|
||||
|
||||
@@ -43,35 +43,6 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
||||
|
||||
private final TrackPointCreator observer;
|
||||
|
||||
private final SensorDataChangedObserver listener = new SensorDataChangedObserver() {
|
||||
|
||||
@Override
|
||||
public void onConnect(Aggregator<?, ?> aggregator) {
|
||||
add(aggregator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(Raw<?> data) {
|
||||
update(data);
|
||||
observer.onChange();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnect(Aggregator<?, ?> aggregator) {
|
||||
add(aggregator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(Aggregator<?, ?> aggregator) {
|
||||
remove(aggregator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Instant getNow() {
|
||||
return observer.createNow();
|
||||
}
|
||||
};
|
||||
|
||||
private BluetoothRemoteSensorManager bluetoothSensorManager;
|
||||
|
||||
private GainManager altitudeSumManager;
|
||||
@@ -89,9 +60,9 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
||||
|
||||
wakeLock = SystemUtils.acquireWakeLock(context, wakeLock);
|
||||
|
||||
gpsManager = new GpsManager(observer, listener);
|
||||
altitudeSumManager = new GainManager(listener);
|
||||
bluetoothSensorManager = new BluetoothRemoteSensorManager(context, handler, listener);
|
||||
gpsManager = new GpsManager(observer, this);
|
||||
altitudeSumManager = new GainManager(this);
|
||||
bluetoothSensorManager = new BluetoothRemoteSensorManager(context, handler, this);
|
||||
|
||||
onSharedPreferenceChanged(null, null);
|
||||
|
||||
@@ -133,9 +104,23 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
||||
if (gps != null) gps.resetAggregated();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public void onChanged(Raw<?> data) {
|
||||
listener.onChange(data);
|
||||
@Deprecated
|
||||
public void onConnect(Aggregator<?, ?> aggregator) {
|
||||
add(aggregator);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void onDisconnect(Aggregator<?, ?> aggregator) {
|
||||
add(aggregator);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void onRemove(Aggregator<?, ?> aggregator) {
|
||||
remove(aggregator);
|
||||
}
|
||||
|
||||
public Instant getNow() {
|
||||
return observer.createNow();
|
||||
}
|
||||
|
||||
public GpsManager getGpsManager() {
|
||||
@@ -162,20 +147,7 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
||||
}
|
||||
}
|
||||
|
||||
public interface SensorDataChangedObserver {
|
||||
|
||||
void onConnect(Aggregator<?, ?> sensorData);
|
||||
void onChange(Raw<?> sensorData);
|
||||
|
||||
void onDisconnect(Aggregator<?, ?> sensorData);
|
||||
|
||||
void onRemove(Aggregator<?, ?> sensorData);
|
||||
|
||||
Instant getNow();
|
||||
}
|
||||
|
||||
|
||||
//TODO Inline from SensorDataAggregator; Aggregators will be moved into Drivers.
|
||||
//TODO Inlined from SensorDataAggregator; Aggregators will be moved into Drivers.
|
||||
@VisibleForTesting
|
||||
public AggregatorHeartRate heartRate;
|
||||
|
||||
@@ -252,8 +224,14 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
||||
set(data, data);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void onChange(Raw<?> data) {
|
||||
update(data);
|
||||
observer.onChange();
|
||||
}
|
||||
|
||||
//TODO Refactor generic "fun" here: go explicit.
|
||||
public void update(@NonNull Raw<?> data) {
|
||||
private void update(@NonNull Raw<?> data) {
|
||||
Object value = data.value();
|
||||
|
||||
if (value instanceof HeartRate) {
|
||||
|
||||
@@ -3,6 +3,8 @@ package de.dennisguse.opentracks.sensors;
|
||||
public enum SensorType {
|
||||
NONE("NONE"),
|
||||
INTERNAL("INTERNAL"),
|
||||
|
||||
//NOTE: preferenceValue of REMOTE should not be used anywhere.
|
||||
REMOTE("*");
|
||||
|
||||
private final String preferenceValue;
|
||||
|
||||
@@ -22,7 +22,7 @@ public class BarometerInternal implements Driver {
|
||||
|
||||
private static final int SAMPLING_PERIOD = (int) TimeUnit.SECONDS.toMicros(5);
|
||||
|
||||
private final SensorManager.SensorDataChangedObserver observer;
|
||||
private final SensorManager observer;
|
||||
|
||||
private Context context;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class BarometerInternal implements Driver {
|
||||
}
|
||||
};
|
||||
|
||||
public BarometerInternal(@NonNull SensorManager.SensorDataChangedObserver observer) {
|
||||
public BarometerInternal(@NonNull SensorManager observer) {
|
||||
this.observer = observer;
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -13,5 +13,5 @@ public interface SensorHandlerInterface {
|
||||
|
||||
Aggregator<?, ?> createEmptySensorData(String address, String name);
|
||||
|
||||
void handlePayload(SensorManager.SensorDataChangedObserver observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic);
|
||||
void handlePayload(SensorManager observer, ServiceMeasurementUUID serviceMeasurementUUID, String sensorName, String address, BluetoothGattCharacteristic characteristic);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user