Bump java lib versions in preparation for 1.9.2
[fw/altos] / altosdroid / app / src / main / java / org / altusmetrum / AltosDroid / AltosMapOnline.java
index 29979a07cdbf79b871f8e210e03339dd11f4c3d6..c35bbb4d308c32ae608583ac5fe813ad69a2e3ef 100644 (file)
@@ -20,7 +20,7 @@ package org.altusmetrum.AltosDroid;
 
 import java.util.*;
 
-import org.altusmetrum.altoslib_13.*;
+import org.altusmetrum.altoslib_14.*;
 
 import com.google.android.gms.maps.*;
 import com.google.android.gms.maps.model.*;
@@ -110,8 +110,6 @@ public class AltosMapOnline implements AltosDroidMapInterface, GoogleMap.OnMarke
        private boolean pad_set;
        private Polyline mPolyline;
 
-       private View map_view;
-
        private double mapAccuracy = -1;
 
        private AltosLatLon my_position = null;
@@ -121,25 +119,38 @@ public class AltosMapOnline implements AltosDroidMapInterface, GoogleMap.OnMarke
 
        public static class AltosOnlineMapFragment extends SupportMapFragment {
                AltosMapOnline c;
+               View map_view;
 
                public AltosOnlineMapFragment(AltosMapOnline c) {
                        this.c = c;
                }
 
+               public AltosOnlineMapFragment() {
+               }
+
                @Override
                public void onActivityCreated(Bundle savedInstanceState) {
                        super.onActivityCreated(savedInstanceState);
-                       getMapAsync(c);
+                       if (c != null)
+                               getMapAsync(c);
                }
                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-                       c.map_view = super.onCreateView(inflater, container, savedInstanceState);
-                       return c.map_view;
+                       map_view = super.onCreateView(inflater, container, savedInstanceState);
+                       return map_view;
                }
                @Override
                public void onDestroyView() {
                        super.onDestroyView();
-                       c.map_view = null;
+                       map_view = null;
+               }
+               public void set_visible(boolean visible) {
+                       if (map_view == null)
+                               return;
+                       if (visible)
+                               map_view.setVisibility(View.VISIBLE);
+                       else
+                               map_view.setVisibility(View.GONE);
                }
        }
 
@@ -192,13 +203,22 @@ public class AltosMapOnline implements AltosDroidMapInterface, GoogleMap.OnMarke
                return true;
        }
 
+       void
+       position_permission() {
+               if (mMap != null)
+                       mMap.setMyLocationEnabled(true);
+       }
+
        @Override
        public void onMapReady(GoogleMap googleMap) {
                final int map_type = AltosPreferences.map_type();
                mMap = googleMap;
                if (mMap != null) {
                        map_type_changed(map_type);
-                       mMap.setMyLocationEnabled(true);
+                       if (altos_droid.have_location_permission)
+                               mMap.setMyLocationEnabled(true);
+                       else
+                               altos_droid.tell_map_permission(this);
                        mMap.getUiSettings().setTiltGesturesEnabled(false);
                        mMap.getUiSettings().setZoomControlsEnabled(false);
                        mMap.setOnMarkerClickListener(this);
@@ -259,24 +279,20 @@ public class AltosMapOnline implements AltosDroidMapInterface, GoogleMap.OnMarke
        }
 
        public void set_visible(boolean visible) {
-               if (map_view == null)
-                       return;
-               if (visible)
-                       map_view.setVisibility(View.VISIBLE);
-               else
-                       map_view.setVisibility(View.GONE);
+               if (mMapFragment != null)
+                       mMapFragment.set_visible(visible);
        }
 
        public void show(TelemetryState telem_state, AltosState state, AltosGreatCircle from_receiver, Location receiver) {
 
                if (telem_state != null) {
                        for (int serial : rockets.keySet()) {
-                               if (!telem_state.states.containsKey(serial))
+                               if (!telem_state.containsKey(serial))
                                        remove_rocket(serial);
                        }
 
-                       for (int serial : telem_state.states.keySet()) {
-                               set_rocket(serial, telem_state.states.get(serial));
+                       for (int serial : telem_state.keySet()) {
+                               set_rocket(serial, telem_state.get(serial));
                        }
                }