altosdroid: Save selected map type in AltosDroid object
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / TabMapOffline.java
index 6742e6060ba1e569596b3b5fc19a6e9fa5c7c0b4..cbf500187c1fbfbe0063a44898b57add7cdfff38 100644 (file)
@@ -39,6 +39,7 @@ public class TabMapOffline extends AltosDroidTab implements AltosMapInterface {
        AltosMap map;
 
        AltosLatLon     here;
+       AltosLatLon     pad;
 
        Canvas  canvas;
        Paint   paint;
@@ -84,6 +85,7 @@ public class TabMapOffline extends AltosDroidTab implements AltosMapInterface {
                                canvas.drawLine((float) rocket_screen.x, (float) rocket_screen.y,
                                                (float) here_screen.x, (float) here_screen.y, paint);
                        }
+                       draw_bitmap(pad, pad_bitmap, pad_off_x, pad_off_y);
                        draw_bitmap(map.last_position, rocket_bitmap, rocket_off_x, rocket_off_y);
                        draw_bitmap(here, here_bitmap, here_off_x, here_off_y);
                }
@@ -271,8 +273,6 @@ public class TabMapOffline extends AltosDroidTab implements AltosMapInterface {
 
        class MapMark extends AltosMapMark {
                public void paint(AltosMapTransform t) {
-                       if (state == AltosLib.ao_flight_boost)
-                               draw_bitmap(lat_lon, pad_bitmap, pad_off_x, pad_off_y);
                }
 
                MapMark(double lat, double lon, int state) {
@@ -389,6 +389,10 @@ public class TabMapOffline extends AltosDroidTab implements AltosMapInterface {
                super.onAttach(activity);
                mAltosDroid = (AltosDroid) activity;
                mAltosDroid.registerTab(this);
+
+               map = new AltosMap(this);
+               map.set_maptype(mAltosDroid.map_type);
+
                pad_bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pad);
                /* arrow at the bottom of the launchpad image */
                pad_off_x = pad_bitmap.getWidth() / 2;
@@ -472,6 +476,8 @@ public class TabMapOffline extends AltosDroidTab implements AltosMapInterface {
                                if (state.gps.locked && state.gps.nsat >= 4)
                                        center (state.gps.lat, state.gps.lon, 10);
                        }
+                       if (state.pad_lat != AltosLib.MISSING && pad == null)
+                               pad = new AltosLatLon(state.pad_lat, state.pad_lon);
                }
 
                if (receiver != null) {
@@ -489,6 +495,11 @@ public class TabMapOffline extends AltosDroidTab implements AltosMapInterface {
 
        }
 
+       public void set_map_type(int map_type) {
+               if (map != null)
+                       map.set_maptype(map_type);
+       }
+
        public TabMapOffline() {
        }
 }