From 1f84e44a8dd7800aba931536d782ea16ffc377c2 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 15 Aug 2021 14:30:57 +0200 Subject: [PATCH] Bugfix: LocationHandler should ignore locations after stopping. --- .../opentracks/services/handlers/LocationHandler.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java b/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java index 0d68966e7..159fe9524 100644 --- a/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java +++ b/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java @@ -44,6 +44,10 @@ public class LocationHandler implements LocationListener, GpsStatus.GpsStatusLis gpsStatus.start(); } + private boolean isStarted() { + return locationManager != null; + } + @SuppressWarnings({"MissingPermission"}) //TODO upgrade to AGP7.0.0/API31 started complaining about removeUpdates. public void onStop() { @@ -96,6 +100,11 @@ public class LocationHandler implements LocationListener, GpsStatus.GpsStatusLis */ @Override public void onLocationChanged(@NonNull Location location) { + if (!isStarted()) { + Log.w(TAG, "Location is ignored; not started."); + return; + } + TrackPoint trackPoint = new TrackPoint(location, handlerServer.createNow()); boolean isAccurate = trackPoint.fulfillsAccuracy(thresholdHorizontalAccuracy); boolean isValid = LocationUtils.isValidLocation(location);