diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java index 3ad3681a9..7587f038f 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java @@ -664,12 +664,12 @@ public class ExportImportTest { AggregatorCyclingPower cyclingPower = new AggregatorCyclingPower("", ""); cyclingPower.add(trackPointCreator.getNow(), new CyclingPowerBluetooth.Data(Power.of(power), null)); - sensorManager.add(cyclingPower); + sensorManager.setAggregator(cyclingPower); AggregatorHeartRate avgHeartRate = new AggregatorHeartRate("", ""); avgHeartRate.add(trackPointCreator.getNow(), HeartRate.of(heartRate)); - sensorManager.add(avgHeartRate); + sensorManager.setAggregator(avgHeartRate); AggregatorCyclingCadence cyclingCadence = new AggregatorCyclingCadence("", "") { @NonNull @@ -683,7 +683,7 @@ public class ExportImportTest { return true; } }; - sensorManager.add(cyclingCadence); + sensorManager.setAggregator(cyclingCadence); if (distance != null && speed != null) { AggregatorCyclingDistanceSpeed aggregatorCyclingDistanceSpeed = new AggregatorCyclingDistanceSpeed("", "") { @@ -698,14 +698,14 @@ public class ExportImportTest { return true; } }; - sensorManager.add(aggregatorCyclingDistanceSpeed); + sensorManager.setAggregator(aggregatorCyclingDistanceSpeed); } else { - sensorManager.add(new AggregatorCyclingDistanceSpeed("", "")); + sensorManager.setAggregator(new AggregatorCyclingDistanceSpeed("", "")); } mockAltitudeChange(trackPointCreator, altitudeGain); - sensorManager.add(new AggregatorTemperature("", "'") { + sensorManager.setAggregator(new AggregatorTemperature("", "'") { @NonNull @Override public Temperature getAggregatedValue(Instant now) { diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java index 2d2b74e05..abba894c5 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceRecordingTest.java @@ -341,7 +341,7 @@ public class TrackRecordingServiceRecordingTest { trackPointCreator.setClock(sensor1); AggregatorHeartRate avgHeartRate = new AggregatorHeartRate("", ""); - sensorManager.add(avgHeartRate); + sensorManager.setAggregator(avgHeartRate); //Should be ignored avgHeartRate.add(trackPointCreator.getNow(), HeartRate.of(5)); @@ -812,7 +812,7 @@ public class TrackRecordingServiceRecordingTest { AggregatorRunning aggregatorRunning = new AggregatorRunning("", ""); SensorManager sensorManager = trackPointCreator.getSensorManager(); - sensorManager.add(aggregatorRunning); + sensorManager.setAggregator(aggregatorRunning); // when String sensor1 = "2020-02-02T02:02:03Z"; diff --git a/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java b/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java index 5589e1ff2..eb850db69 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java @@ -17,7 +17,6 @@ import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.HeartRate; import de.dennisguse.opentracks.data.models.Position; 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.AggregatorCyclingDistanceSpeed; import de.dennisguse.opentracks.sensors.sensorData.AggregatorCyclingPower; @@ -247,42 +246,25 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange 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() { 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 public void clear() { Log.i(TAG, "Removing all aggregators"); @@ -314,18 +296,33 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange } } - public SensorDataSet getSensorDataSet(Instant now) { - AggregatorGPS gps = gpsManager.getAggregatorGPS(); + @VisibleForTesting + public void setAggregator(AggregatorHeartRate data) { + heartRateHandler.setAggregator(data); + } - 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 + public void setAggregator(@NonNull AggregatorTemperature data) { + temperatureHandler.setAggregator(data); + } + + @VisibleForTesting + public void setAggregator(@NonNull AggregatorCyclingCadence data) { + cyclingCadenceHandler.setAggregator(data); + } + + @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); } }