diff --git a/app/src/main/java/net/voussoir/trkpt/Trackbook.kt b/app/src/main/java/net/voussoir/trkpt/Trackbook.kt index da8bab4..f571c9c 100644 --- a/app/src/main/java/net/voussoir/trkpt/Trackbook.kt +++ b/app/src/main/java/net/voussoir/trkpt/Trackbook.kt @@ -40,7 +40,7 @@ interface DatabaseChangedListener class Trackbook : Application() { val database: net.voussoir.trkpt.Database = net.voussoir.trkpt.Database(this) - val homepoints: ArrayList = ArrayList() + val homepoints: ArrayDeque = ArrayDeque() val database_changed_listeners = ArrayList() fun call_database_changed_listeners() diff --git a/app/src/main/java/net/voussoir/trkpt/TrackerService.kt b/app/src/main/java/net/voussoir/trkpt/TrackerService.kt index b75d039..de5ca21 100644 --- a/app/src/main/java/net/voussoir/trkpt/TrackerService.kt +++ b/app/src/main/java/net/voussoir/trkpt/TrackerService.kt @@ -251,11 +251,16 @@ class TrackerService: Service() Log.i("VOUSSOIR", "Omitting due to not accurate enough.") return } - for (homepoint in trackbook.homepoints) + for ((index, homepoint) in trackbook.homepoints.withIndex()) { if (homepoint.location.distanceTo(location) < homepoint.radius) { - Log.i("VOUSSOIR", "Omitting due to homepoint ${homepoint.name}.") + Log.i("VOUSSOIR", "Omitting due to homepoint ${index} ${homepoint.name}.") + if (index > 0) + { + trackbook.homepoints.remove(homepoint) + trackbook.homepoints.addFirst(homepoint) + } return } }