From 9b67ca8bfdde582bc5365166a2833160fc41caeb Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Thu, 30 Mar 2023 17:35:41 -0700 Subject: [PATCH] When arriving at a homepoint, move it to the front of the deque. --- app/src/main/java/net/voussoir/trkpt/Trackbook.kt | 2 +- app/src/main/java/net/voussoir/trkpt/TrackerService.kt | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) 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 } }