forked from upstream-mirrors/OpenTracks
@@ -31,7 +31,6 @@ public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener
|
||||
private GpsStatus gpsStatus;
|
||||
private Duration gpsInterval;
|
||||
private Distance thresholdHorizontalAccuracy;
|
||||
private TrackPoint lastTrackPoint;
|
||||
|
||||
public GPSHandler(TrackPointCreator trackPointCreator) {
|
||||
this.trackPointCreator = trackPointCreator;
|
||||
@@ -53,7 +52,6 @@ public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener
|
||||
@SuppressWarnings({"MissingPermission"})
|
||||
//TODO upgrade to AGP7.0.0/API31 started complaining about removeUpdates.
|
||||
public void onStop() {
|
||||
lastTrackPoint = null;
|
||||
if (locationManager != null && context != null) {
|
||||
if (PermissionUtils.hasGPSPermission(context)) {
|
||||
locationManager.removeUpdates(this);
|
||||
@@ -129,7 +127,6 @@ public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener
|
||||
return;
|
||||
}
|
||||
|
||||
lastTrackPoint = trackPoint;
|
||||
trackPointCreator.onNewTrackPoint(trackPoint);
|
||||
}
|
||||
|
||||
@@ -165,10 +162,6 @@ public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener
|
||||
}
|
||||
}
|
||||
|
||||
TrackPoint getLastTrackPoint() {
|
||||
return lastTrackPoint;
|
||||
}
|
||||
|
||||
Distance getThresholdHorizontalAccuracy() {
|
||||
return thresholdHorizontalAccuracy;
|
||||
}
|
||||
@@ -177,8 +170,4 @@ public class GPSHandler implements LocationListener, GpsStatus.GpsStatusListener
|
||||
public void onGpsStatusChanged(GpsStatusValue prevStatus, GpsStatusValue currentStatus) {
|
||||
trackPointCreator.sendGpsStatus(currentStatus);
|
||||
}
|
||||
|
||||
void reset() {
|
||||
lastTrackPoint = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,6 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat
|
||||
}
|
||||
remoteSensorManager.reset();
|
||||
altitudeSumManager.reset();
|
||||
gpsHandler.reset();
|
||||
}
|
||||
|
||||
private SensorDataSet fill(TrackPoint trackPoint) {
|
||||
@@ -136,22 +135,22 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat
|
||||
return segmentEnd;
|
||||
}
|
||||
|
||||
public Pair<TrackPoint, SensorDataSet> createCurrentTrackPoint(@Nullable TrackPoint lastValidTrackPoint) {
|
||||
public Pair<TrackPoint, SensorDataSet> createCurrentTrackPoint(@Nullable TrackPoint lastTrackPointUISpeed, @Nullable TrackPoint lastTrackPointUIAltitude, @Nullable TrackPoint lastStoredTrackPointWithLocation) {
|
||||
TrackPoint currentTrackPoint = new TrackPoint(TrackPoint.Type.TRACKPOINT, createNow());
|
||||
TrackPoint lastTrackPoint = gpsHandler.getLastTrackPoint();
|
||||
|
||||
if (lastTrackPoint != null && lastTrackPoint.hasLocation()) {
|
||||
currentTrackPoint.setSpeed(lastTrackPoint.getSpeed());
|
||||
currentTrackPoint.setAltitude(lastTrackPoint.getAltitude());
|
||||
if (lastTrackPoint.hasBearing()) {
|
||||
currentTrackPoint.setBearing(lastTrackPoint.getBearing());
|
||||
}
|
||||
if (lastTrackPointUISpeed != null) {
|
||||
currentTrackPoint.setSpeed(lastTrackPointUISpeed.getSpeed());
|
||||
}
|
||||
if (lastValidTrackPoint != null && lastValidTrackPoint.hasLocation()) {
|
||||
if (lastTrackPointUIAltitude != null) {
|
||||
currentTrackPoint.setAltitude(lastTrackPointUIAltitude.getAltitude());
|
||||
}
|
||||
|
||||
if (lastStoredTrackPointWithLocation != null && lastStoredTrackPointWithLocation.hasLocation()) {
|
||||
//We are taking the coordinates from the last stored TrackPoint, so the distance is monotonously increasing.
|
||||
currentTrackPoint.setLongitude(lastValidTrackPoint.getLongitude());
|
||||
currentTrackPoint.setLatitude(lastValidTrackPoint.getLatitude());
|
||||
currentTrackPoint.setLongitude(lastStoredTrackPointWithLocation.getLongitude());
|
||||
currentTrackPoint.setLatitude(lastStoredTrackPointWithLocation.getLatitude());
|
||||
}
|
||||
|
||||
SensorDataSet sensorDataSet = fill(currentTrackPoint);
|
||||
|
||||
return new Pair<>(currentTrackPoint, sensorDataSet);
|
||||
|
||||
Reference in New Issue
Block a user