forked from upstream-mirrors/OpenTracks
Cleanup: SensorManager avoids instanceof for testing.
This commit is contained in:
+6
-6
@@ -664,12 +664,12 @@ public class ExportImportTest {
|
|||||||
|
|
||||||
AggregatorCyclingPower cyclingPower = new AggregatorCyclingPower("", "");
|
AggregatorCyclingPower cyclingPower = new AggregatorCyclingPower("", "");
|
||||||
cyclingPower.add(trackPointCreator.getNow(), new CyclingPowerBluetooth.Data(Power.of(power), null));
|
cyclingPower.add(trackPointCreator.getNow(), new CyclingPowerBluetooth.Data(Power.of(power), null));
|
||||||
sensorManager.add(cyclingPower);
|
sensorManager.setAggregator(cyclingPower);
|
||||||
|
|
||||||
|
|
||||||
AggregatorHeartRate avgHeartRate = new AggregatorHeartRate("", "");
|
AggregatorHeartRate avgHeartRate = new AggregatorHeartRate("", "");
|
||||||
avgHeartRate.add(trackPointCreator.getNow(), HeartRate.of(heartRate));
|
avgHeartRate.add(trackPointCreator.getNow(), HeartRate.of(heartRate));
|
||||||
sensorManager.add(avgHeartRate);
|
sensorManager.setAggregator(avgHeartRate);
|
||||||
|
|
||||||
AggregatorCyclingCadence cyclingCadence = new AggregatorCyclingCadence("", "") {
|
AggregatorCyclingCadence cyclingCadence = new AggregatorCyclingCadence("", "") {
|
||||||
@NonNull
|
@NonNull
|
||||||
@@ -683,7 +683,7 @@ public class ExportImportTest {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
sensorManager.add(cyclingCadence);
|
sensorManager.setAggregator(cyclingCadence);
|
||||||
|
|
||||||
if (distance != null && speed != null) {
|
if (distance != null && speed != null) {
|
||||||
AggregatorCyclingDistanceSpeed aggregatorCyclingDistanceSpeed = new AggregatorCyclingDistanceSpeed("", "") {
|
AggregatorCyclingDistanceSpeed aggregatorCyclingDistanceSpeed = new AggregatorCyclingDistanceSpeed("", "") {
|
||||||
@@ -698,14 +698,14 @@ public class ExportImportTest {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
sensorManager.add(aggregatorCyclingDistanceSpeed);
|
sensorManager.setAggregator(aggregatorCyclingDistanceSpeed);
|
||||||
} else {
|
} else {
|
||||||
sensorManager.add(new AggregatorCyclingDistanceSpeed("", ""));
|
sensorManager.setAggregator(new AggregatorCyclingDistanceSpeed("", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
mockAltitudeChange(trackPointCreator, altitudeGain);
|
mockAltitudeChange(trackPointCreator, altitudeGain);
|
||||||
|
|
||||||
sensorManager.add(new AggregatorTemperature("", "'") {
|
sensorManager.setAggregator(new AggregatorTemperature("", "'") {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Temperature getAggregatedValue(Instant now) {
|
public Temperature getAggregatedValue(Instant now) {
|
||||||
|
|||||||
+2
-2
@@ -341,7 +341,7 @@ public class TrackRecordingServiceRecordingTest {
|
|||||||
trackPointCreator.setClock(sensor1);
|
trackPointCreator.setClock(sensor1);
|
||||||
|
|
||||||
AggregatorHeartRate avgHeartRate = new AggregatorHeartRate("", "");
|
AggregatorHeartRate avgHeartRate = new AggregatorHeartRate("", "");
|
||||||
sensorManager.add(avgHeartRate);
|
sensorManager.setAggregator(avgHeartRate);
|
||||||
|
|
||||||
//Should be ignored
|
//Should be ignored
|
||||||
avgHeartRate.add(trackPointCreator.getNow(), HeartRate.of(5));
|
avgHeartRate.add(trackPointCreator.getNow(), HeartRate.of(5));
|
||||||
@@ -812,7 +812,7 @@ public class TrackRecordingServiceRecordingTest {
|
|||||||
|
|
||||||
AggregatorRunning aggregatorRunning = new AggregatorRunning("", "");
|
AggregatorRunning aggregatorRunning = new AggregatorRunning("", "");
|
||||||
SensorManager sensorManager = trackPointCreator.getSensorManager();
|
SensorManager sensorManager = trackPointCreator.getSensorManager();
|
||||||
sensorManager.add(aggregatorRunning);
|
sensorManager.setAggregator(aggregatorRunning);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String sensor1 = "2020-02-02T02:02:03Z";
|
String sensor1 = "2020-02-02T02:02:03Z";
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import de.dennisguse.opentracks.data.models.Distance;
|
|||||||
import de.dennisguse.opentracks.data.models.HeartRate;
|
import de.dennisguse.opentracks.data.models.HeartRate;
|
||||||
import de.dennisguse.opentracks.data.models.Position;
|
import de.dennisguse.opentracks.data.models.Position;
|
||||||
import de.dennisguse.opentracks.data.models.Speed;
|
import de.dennisguse.opentracks.data.models.Speed;
|
||||||
import de.dennisguse.opentracks.sensors.sensorData.Aggregator;
|
|
||||||
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingCadence;
|
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingCadence;
|
||||||
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingDistanceSpeed;
|
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingDistanceSpeed;
|
||||||
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingPower;
|
import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingPower;
|
||||||
@@ -247,42 +246,25 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Remove
|
|
||||||
@VisibleForTesting
|
|
||||||
@Deprecated
|
|
||||||
public void add(@NonNull Aggregator<?, ?> data) {
|
|
||||||
if (data instanceof AggregatorHeartRate) {
|
|
||||||
heartRateHandler.setAggregator((AggregatorHeartRate) data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (data instanceof AggregatorTemperature) {
|
|
||||||
temperatureHandler.setAggregator((AggregatorTemperature) data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (data instanceof AggregatorCyclingCadence) {
|
|
||||||
cyclingCadenceHandler.setAggregator((AggregatorCyclingCadence) data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (data instanceof AggregatorCyclingDistanceSpeed) {
|
|
||||||
cyclingDistanceSpeedHandler.setAggregator((AggregatorCyclingDistanceSpeed) data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (data instanceof AggregatorCyclingPower) {
|
|
||||||
cyclingPowerHandler.setAggregator((AggregatorCyclingPower) data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (data instanceof AggregatorRunning) {
|
|
||||||
runningSpeedCadenceDistanceHandler.setAggregator((AggregatorRunning) data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new UnsupportedOperationException(data.getClass().getCanonicalName());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onChange() {
|
public void onChange() {
|
||||||
observer.onChange();
|
observer.onChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SensorDataSet getSensorDataSet(Instant now) {
|
||||||
|
AggregatorGPS gps = gpsManager.getAggregatorGPS();
|
||||||
|
|
||||||
|
return new SensorDataSet(
|
||||||
|
gps != null && gps.hasReceivedData() ? gps.getAggregatedValueWithSensorName(now) : new SensorData<>(Position.of(now), ""),
|
||||||
|
getSpeed(now),
|
||||||
|
getDistance(now),
|
||||||
|
getHeartRate(now),
|
||||||
|
temperatureHandler.getSensorData(now),
|
||||||
|
getCadence(now),
|
||||||
|
cyclingPowerHandler.getSensorData(now),
|
||||||
|
altitudeChangeHandler.getSensorData(now)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void clear() {
|
public void clear() {
|
||||||
Log.i(TAG, "Removing all aggregators");
|
Log.i(TAG, "Removing all aggregators");
|
||||||
@@ -314,18 +296,33 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public SensorDataSet getSensorDataSet(Instant now) {
|
@VisibleForTesting
|
||||||
AggregatorGPS gps = gpsManager.getAggregatorGPS();
|
public void setAggregator(AggregatorHeartRate data) {
|
||||||
|
heartRateHandler.setAggregator(data);
|
||||||
|
}
|
||||||
|
|
||||||
return new SensorDataSet(
|
@VisibleForTesting
|
||||||
gps != null && gps.hasReceivedData() ? gps.getAggregatedValueWithSensorName(now) : new SensorData<>(Position.of(now), ""),
|
public void setAggregator(@NonNull AggregatorTemperature data) {
|
||||||
getSpeed(now),
|
temperatureHandler.setAggregator(data);
|
||||||
getDistance(now),
|
}
|
||||||
getHeartRate(now),
|
|
||||||
temperatureHandler.getSensorData(now),
|
@VisibleForTesting
|
||||||
getCadence(now),
|
public void setAggregator(@NonNull AggregatorCyclingCadence data) {
|
||||||
cyclingPowerHandler.getSensorData(now),
|
cyclingCadenceHandler.setAggregator(data);
|
||||||
altitudeChangeHandler.getSensorData(now)
|
}
|
||||||
);
|
|
||||||
|
@VisibleForTesting
|
||||||
|
public void setAggregator(@NonNull AggregatorCyclingDistanceSpeed data) {
|
||||||
|
cyclingDistanceSpeedHandler.setAggregator(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
public void setAggregator(@NonNull AggregatorCyclingPower data) {
|
||||||
|
cyclingPowerHandler.setAggregator(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
public void setAggregator(@NonNull AggregatorRunning data) {
|
||||||
|
runningSpeedCadenceDistanceHandler.setAggregator(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user