Introduced Position.

Internal value object replacing android.location.Location.

Follow-up to #1898.
This commit is contained in:
Dennis Guse
2024-06-22 00:18:20 +02:00
parent 382acadc6a
commit e442558eed
8 changed files with 160 additions and 67 deletions
@@ -1,12 +1,10 @@
package de.dennisguse.opentracks.sensors.sensorData;
import android.location.Location;
import androidx.annotation.NonNull;
import java.util.Optional;
import de.dennisguse.opentracks.data.models.Position;
public class AggregatorGPS extends Aggregator<Location, Optional<Location>> {
public class AggregatorGPS extends Aggregator<Position, Position> {
public AggregatorGPS(String sensorAddress) {
@@ -14,8 +12,8 @@ public class AggregatorGPS extends Aggregator<Location, Optional<Location>> {
}
@Override
protected void computeValue(Raw<Location> current) {
value = Optional.of(current.value());
protected void computeValue(Raw<Position> current) {
value = current.value();
}
@Override
@@ -25,7 +23,7 @@ public class AggregatorGPS extends Aggregator<Location, Optional<Location>> {
@NonNull
@Override
protected Optional<Location> getNoneValue() {
return Optional.empty();
protected Position getNoneValue() {
return Position.empty();
}
}
@@ -1,6 +1,5 @@
package de.dennisguse.opentracks.sensors.sensorData;
import android.location.Location;
import android.util.Log;
import android.util.Pair;
@@ -11,6 +10,7 @@ import androidx.annotation.VisibleForTesting;
import de.dennisguse.opentracks.data.models.AtmosphericPressure;
import de.dennisguse.opentracks.data.models.Cadence;
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.data.models.TrackPoint;
import de.dennisguse.opentracks.sensors.BluetoothHandlerCyclingCadence;
@@ -127,8 +127,8 @@ public final class SensorDataSet {
this.barometer.add((Raw<AtmosphericPressure>) data);
return;
}
if (value instanceof Location) {
this.gps.add((Raw<Location>) data);
if (value instanceof Position) {
this.gps.add((Raw<Position>) data);
return;
}
@@ -152,8 +152,7 @@ public final class SensorDataSet {
public void fillTrackPoint(TrackPoint trackPoint) {
if (gps != null && gps.hasValue()) {
gps.getValue()
.ifPresent(trackPoint::setLocation);
trackPoint.setPosition(gps.getValue());
}
if (getHeartRate() != null) {