From 51bf46248ca7ee3c817e62274b7366258c9f87cf Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 11 Jul 2015 19:53:06 -0700 Subject: altosdroid: Pop up menu of nearby trackers on map click This lets the user select one of potentially many overlapping trackers, and also makes it clear when the current tracker is being changed. Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java') diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java index 5240d61c..0bf6ab20 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java @@ -253,6 +253,8 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal public void select_object(AltosLatLon latlon) { if (map.transform == null) return; + ArrayList near = new ArrayList(); + for (Rocket rocket : sorted_rockets()) { if (rocket.position == null) { debug("rocket %d has no position\n", rocket.serial); @@ -262,10 +264,11 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal debug("check select %d distance %g width %d\n", rocket.serial, distance, rocket_bitmap.getWidth()); if (distance < rocket_bitmap.getWidth() * 2.0) { debug("selecting %d\n", rocket.serial); - altos_droid.select_tracker(rocket.serial); - break; + near.add(rocket.serial); } } + if (near.size() != 0) + altos_droid.touch_trackers(near.toArray(new Integer[0])); } class Line { @@ -359,7 +362,6 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal @Override protected void onDraw(Canvas view_canvas) { - debug("onDraw"); if (map == null) { debug("MapView draw without map\n"); return; -- cgit v1.2.3