altosdroid: Use AltosMap set_zoom_centre
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / AltosMapView.java
index 460a3a25d9b399d47ee590cb419fcaeee55a5430..65cc0b958be6e9d63c2443c2c3e52ddf85d87e8c 100644 (file)
@@ -79,7 +79,11 @@ public class AltosMapView extends View implements ScaleGestureDetector.OnScaleGe
                line.set_b(tab.here);
                line.paint();
                draw_bitmap(tab.pad, tab.pad_bitmap, tab.pad_off_x, tab.pad_off_y);
-               for (Rocket rocket : tab.rockets.values())
+
+               Rocket[]        rockets = tab.rockets.values().toArray(new Rocket[0]);
+
+               Arrays.sort(rockets);
+               for (Rocket rocket : rockets)
                        rocket.paint();
                draw_bitmap(tab.here, tab.here_bitmap, tab.here_off_x, tab.here_off_y);
        }
@@ -111,12 +115,13 @@ public class AltosMapView extends View implements ScaleGestureDetector.OnScaleGe
 
        public boolean onScale(ScaleGestureDetector detector) {
                float   f = detector.getScaleFactor();
+
                if (f <= 0.8) {
-                       tab.map.set_zoom(tab.map.get_zoom() - 1);
+                       tab.map.set_zoom_centre(tab.map.get_zoom() - 1, new AltosPointInt((int) detector.getFocusX(), (int) detector.getFocusY()));
                        return true;
                }
                if (f >= 1.2) {
-                       tab.map.set_zoom(tab.map.get_zoom() + 1);
+                       tab.map.set_zoom_centre(tab.map.get_zoom() + 1, new AltosPointInt((int) detector.getFocusX(), (int) detector.getFocusY()));
                        return true;
                }
                return false;