mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-02 17:43:06 +02:00
Cleanup: created new DriverObserver interface.
This commit is contained in:
@@ -8,6 +8,7 @@ import android.util.Log;
|
||||
import de.dennisguse.opentracks.data.models.AtmosphericPressure;
|
||||
import de.dennisguse.opentracks.sensors.driver.BarometerInternal;
|
||||
import de.dennisguse.opentracks.sensors.driver.Driver;
|
||||
import de.dennisguse.opentracks.sensors.driver.DriverObserver;
|
||||
import de.dennisguse.opentracks.sensors.driver.DriverObserver0;
|
||||
import de.dennisguse.opentracks.sensors.sensorData.Aggregator;
|
||||
import de.dennisguse.opentracks.sensors.sensorData.AggregatorBarometer;
|
||||
@@ -17,7 +18,7 @@ import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||
* Estimates the altitude gain and altitude loss using the device's pressure sensor (i.e., barometer).
|
||||
*/
|
||||
//TODO Rename class
|
||||
public class GainManager implements DriverObserver0 {
|
||||
public class GainManager implements DriverObserver<AtmosphericPressure> {
|
||||
|
||||
private static final String TAG = GainManager.class.getSimpleName();
|
||||
|
||||
@@ -73,7 +74,27 @@ public class GainManager implements DriverObserver0 {
|
||||
case REMOTE -> driver =
|
||||
new BluetoothConnectionManager(
|
||||
BluetoothUtils.getAdapter(context),
|
||||
this,
|
||||
new DriverObserver0() {
|
||||
@Override
|
||||
public void onConnect(Aggregator<?, ?> emptySensorData) {
|
||||
GainManager.this.onConnect();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnect(Aggregator<?, ?> emptySensorData) {
|
||||
GainManager.this.onDisconnect();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(Aggregator<?, ?> emptySensorData) {
|
||||
GainManager.this.onRemove();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(Record value) {
|
||||
onData((AtmosphericPressure) value);
|
||||
}
|
||||
},
|
||||
new BluetoothHandlerBarometricPressure()
|
||||
);
|
||||
default -> throw new RuntimeException("Not implemented");
|
||||
@@ -90,23 +111,22 @@ public class GainManager implements DriverObserver0 {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(Aggregator<?, ?> emptySensorData) {
|
||||
this.aggregatorBarometer = null;
|
||||
public void onConnect() {
|
||||
this.aggregatorBarometer = new AggregatorBarometer("", null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConnect(Aggregator<?, ?> emptySensorData) {
|
||||
//TODO Aggregator should be created here.
|
||||
this.aggregatorBarometer = (AggregatorBarometer) emptySensorData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnect(Aggregator<?, ?> emptySensorData) {
|
||||
public void onDisconnect() {
|
||||
this.aggregatorBarometer.resetAggregated();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(Record first) {
|
||||
this.aggregatorBarometer.add(sensorManager.getNow(), (AtmosphericPressure) first);
|
||||
public void onData(AtmosphericPressure value) {
|
||||
this.aggregatorBarometer.add(sensorManager.getNow(), value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
this.aggregatorBarometer = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import androidx.annotation.NonNull;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import de.dennisguse.opentracks.data.models.AtmosphericPressure;
|
||||
import de.dennisguse.opentracks.sensors.sensorData.AggregatorBarometer;
|
||||
|
||||
public class BarometerInternal implements Driver {
|
||||
|
||||
@@ -20,7 +19,7 @@ public class BarometerInternal implements Driver {
|
||||
|
||||
private static final int SAMPLING_PERIOD = (int) TimeUnit.SECONDS.toMicros(5);
|
||||
|
||||
private final DriverObserver0 observer;
|
||||
private final DriverObserver<AtmosphericPressure> observer;
|
||||
|
||||
private Context context;
|
||||
|
||||
@@ -32,7 +31,7 @@ public class BarometerInternal implements Driver {
|
||||
return;
|
||||
}
|
||||
|
||||
observer.onChange(AtmosphericPressure.ofHPA(event.values[0]));
|
||||
observer.onData(AtmosphericPressure.ofHPA(event.values[0]));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -41,7 +40,7 @@ public class BarometerInternal implements Driver {
|
||||
}
|
||||
};
|
||||
|
||||
public BarometerInternal(@NonNull DriverObserver0 observer) {
|
||||
public BarometerInternal(@NonNull DriverObserver<AtmosphericPressure> observer) {
|
||||
this.observer = observer;
|
||||
}
|
||||
|
||||
@@ -57,7 +56,7 @@ public class BarometerInternal implements Driver {
|
||||
|
||||
if (sensorManager.registerListener(sensorEventListener, pressureSensor, SAMPLING_PERIOD, handler)) {
|
||||
this.context = context;
|
||||
observer.onConnect(new AggregatorBarometer("internal", null));
|
||||
observer.onConnect();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package de.dennisguse.opentracks.sensors.driver;
|
||||
|
||||
|
||||
public interface DriverObserver<T> {
|
||||
void onConnect();
|
||||
|
||||
void onDisconnect();
|
||||
|
||||
void onData(T value);
|
||||
|
||||
void onRemove();
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package de.dennisguse.opentracks.sensors.driver;
|
||||
|
||||
import de.dennisguse.opentracks.sensors.sensorData.Aggregator;
|
||||
|
||||
//TODO Make onChange parametrized
|
||||
@Deprecated //Use DriverObserver
|
||||
public interface DriverObserver0 {
|
||||
|
||||
//TODO Pass SensorName as parameter only
|
||||
|
||||
Reference in New Issue
Block a user