altosdroid: Fix line drawing to old tracker location
authorKeith Packard <keithp@keithp.com>
Tue, 23 Jun 2015 06:21:05 +0000 (23:21 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 23 Jun 2015 06:21:05 +0000 (23:21 -0700)
Selecting an old tracker would often fail to switch the bearing line
as it was using the map data instead of just using the local data for
the relavant tracker.

Signed-off-by: Keith Packard <keithp@keithp.com>
altosdroid/src/org/altusmetrum/AltosDroid/AltosMapOffline.java

index 12dd2f252c74e9130f6224006511fe762c52e1cd..339b78946c945b8e72559bedf8e6140870688b9b 100644 (file)
@@ -86,6 +86,7 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal
        AltosDroid              altos_droid;
 
        AltosLatLon     here;
+       AltosLatLon     there;
        AltosLatLon     pad;
 
        Canvas  canvas;
@@ -334,7 +335,7 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal
        }
 
        private void draw_positions() {
-               line.set_a(map.last_position);
+               line.set_a(there);
                line.set_b(here);
                line.paint();
                draw_bitmap(pad, pad_bitmap, pad_off_x, pad_off_y);
@@ -465,8 +466,12 @@ public class AltosMapOffline extends View implements ScaleGestureDetector.OnScal
                                        rocket = new Rocket(serial, this);
                                        rockets.put(serial, rocket);
                                }
-                               if (t_state.gps != null)
-                                       rocket.set_position(new AltosLatLon(t_state.gps.lat, t_state.gps.lon), t_state.received_time);
+                               if (t_state.gps != null) {
+                                       AltosLatLon     latlon = new AltosLatLon(t_state.gps.lat, t_state.gps.lon);
+                                       rocket.set_position(latlon, t_state.received_time);
+                                       if (state.serial == serial)
+                                               there = latlon;
+                               }
                                if (state != null)
                                        rocket.set_active(state.serial == serial);
                        }