From 5045b9a222f3d76a5df340e829340fb18a3b372a Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 27 Jun 2021 09:32:13 +0200 Subject: [PATCH] TrackPoint: only take data from location if present. This functionality is used by KML/KMZ imports. --- .../opentracks/content/data/TrackPoint.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java b/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java index e9f8f2357..9c886486b 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java @@ -111,25 +111,23 @@ public class TrackPoint { } public TrackPoint(@NonNull Type type, @NonNull Location location, @NonNull Instant time) { - this(type); + this(type, time); this.latitude = location.getLatitude(); this.longitude = location.getLongitude(); - this.altitude = Altitude.WGS84.of(location.getAltitude()); - this.speed = Speed.of(location.getSpeed()); - this.accuracy = location.getAccuracy(); + this.altitude = location.hasAltitude() ? Altitude.WGS84.of(location.getAltitude()) : null; + this.speed = location.hasSpeed() ? Speed.of(location.getSpeed()) : null; + this.accuracy = location.hasAccuracy() ? location.getAccuracy() : null; //TODO Should we copy the bearing? - - setTime(time); } + @VisibleForTesting public TrackPoint(double latitude, double longitude, Altitude altitude, Instant time) { - this(Type.TRACKPOINT); + this(Type.TRACKPOINT, time); this.latitude = latitude; this.longitude = longitude; this.altitude = altitude; - this.time = time; } @Deprecated //See #316