mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-03 01:53:05 +02:00
Cleanup: SensorManager.SensorDataChangedObserver inlined into SensorManager.
Preparation for refactoring.
This commit is contained in:
@@ -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