diff --git a/app/src/main/java/net/voussoir/trkpt/TrackerService.kt b/app/src/main/java/net/voussoir/trkpt/TrackerService.kt index 45c078b..51a794d 100644 --- a/app/src/main/java/net/voussoir/trkpt/TrackerService.kt +++ b/app/src/main/java/net/voussoir/trkpt/TrackerService.kt @@ -261,7 +261,12 @@ class TrackerService: Service() { // pass } - else if (! isDifferentEnough(recent_displacement_locations.first(), location, omitRests)) + else if (omitRests && recent_displacement_locations.last().latitude == location.latitude && recent_displacement_locations.last().longitude == location.longitude) + { + Log.i("VOUSSOIR", "Omitting due to identical to previous.") + return + } + else if (omitRests && !isDifferentEnough(recent_displacement_locations.first(), location)) { Log.i("VOUSSOIR", "Omitting due to too close to previous.") return diff --git a/app/src/main/java/net/voussoir/trkpt/helpers/LocationHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/LocationHelper.kt index cce85db..3b3d822 100644 --- a/app/src/main/java/net/voussoir/trkpt/helpers/LocationHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/LocationHelper.kt @@ -146,19 +146,8 @@ fun isAccurateEnough(location: Location, locationAccuracyThreshold: Int): Boolea } /* Checks if given location is different enough compared to previous location */ -fun isDifferentEnough(previousLocation: Location?, location: Location, omitRests: Boolean): Boolean +fun isDifferentEnough(previousLocation: Location, location: Location): Boolean { - // check if previous location is (not) available - if (previousLocation == null) - { - return true - } - - if (! omitRests) - { - return true - } - // location.accuracy is given as 1 standard deviation, with a 68% chance // that the true position is within a circle of this radius. // These formulas determine if the difference between the last point and