diff options
author | Tobrun <tobrun@mapbox.com> | 2016-02-01 16:45:41 +0100 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2016-02-02 08:18:41 +0100 |
commit | a699690c1689222f518b5d7adc0dfd059884ac49 (patch) | |
tree | ed3d6cac910f5fc5664d6a6c7a81f5e6510827ae /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk | |
parent | 7694eebe8837f45540687aea65301a83243d74f7 (diff) | |
download | qtlocation-mapboxgl-a699690c1689222f518b5d7adc0dfd059884ac49.tar.gz |
[android] #3759 - Add SupportMapFragment, test app integration, cleanup old fragment implementation
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk')
3 files changed, 112 insertions, 19 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java index 153a7d63c2..e9b654b627 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java @@ -52,6 +52,11 @@ public class MapboxConstants { */ public static final double MINIMUM_DIRECTION = 0; + /** + * Fragment Argument Key for MapboxMapOptions + */ + public static final String FRAG_ARG_MAPBOXMAPOPTIONS = "MapboxMapOptions"; + // Save instance state keys public static final String STATE_CAMERA_POSITION = "cameraPosition"; public static final String STATE_ZOOM_ENABLED = "zoomEnabled"; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java index 0802245f43..51834adb51 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java @@ -1,16 +1,15 @@ package com.mapbox.mapboxsdk.maps; +import android.app.Fragment; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.mapbox.mapboxsdk.R; +import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.utils.ApiAccess; -import com.mapbox.mapboxsdk.maps.MapView; /** * Fragment wrapper around a {@link MapView}. @@ -28,21 +27,6 @@ import com.mapbox.mapboxsdk.maps.MapView; */ public class MapFragment extends Fragment { - // - // Static members - // - - // Tag used for logging - private static final String TAG = "MapFragment"; - - // Argument used for configuration - private static final String ARGS_MAPBOXMAP_OPTIONS = "MapboxMapOptions"; - - // - // Instance members - // - - // The map private MapView mMap; private OnMapReadyCallback mMapReadyCallback; @@ -53,7 +37,7 @@ public class MapFragment extends Fragment { public static MapFragment newInstance(MapboxMapOptions mapboxMapOptions) { final MapFragment mapFragment = new MapFragment(); Bundle bundle = new Bundle(); - bundle.putParcelable(ARGS_MAPBOXMAP_OPTIONS, mapboxMapOptions); + bundle.putParcelable(MapboxConstants.FRAG_ARG_MAPBOXMAPOPTIONS, mapboxMapOptions); mapFragment.setArguments(bundle); return mapFragment; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java new file mode 100644 index 0000000000..2b268777a0 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java @@ -0,0 +1,104 @@ +package com.mapbox.mapboxsdk.maps; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.mapbox.mapboxsdk.R; +import com.mapbox.mapboxsdk.constants.MapboxConstants; +import com.mapbox.mapboxsdk.utils.ApiAccess; + +/** + * Fragment wrapper around a {@link MapView}. + * <p> + * A Map component in an app. This fragment is the simplest way to place a map in an application. + * It's a wrapper around a view of a map to automatically handle the necessary life cycle needs. + * Being a fragment, this component can be added to an activity's layout or can dynamically be added + * using a FragmentManager. + * </p> + * <p> + * To get a reference to the MapView, use {@link #getMapAsync(OnMapReadyCallback)}} + * </p> + * + * @see #getMapAsync(OnMapReadyCallback) + */ +public class SupportMapFragment extends Fragment { + + private MapView mMap; + private OnMapReadyCallback mMapReadyCallback; + + public static SupportMapFragment newInstance(){ + return new SupportMapFragment(); + } + + public static SupportMapFragment newInstance(MapboxMapOptions mapboxMapOptions) { + final SupportMapFragment mapFragment = new SupportMapFragment(); + Bundle bundle = new Bundle(); + bundle.putParcelable(MapboxConstants.FRAG_ARG_MAPBOXMAPOPTIONS, mapboxMapOptions); + mapFragment.setArguments(bundle); + return mapFragment; + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + super.onCreateView(inflater, container, savedInstanceState); + mMap = (MapView) inflater.inflate(R.layout.fragment_mapview, container, false); + mMap.setAccessToken(ApiAccess.getToken(inflater.getContext())); + mMap.onCreate(savedInstanceState); + return mMap; + } + + @Override + public void onStart() { + super.onStart(); + mMap.onStart(); + } + + @Override + public void onResume() { + super.onResume(); + mMap.onResume(); + if(mMapReadyCallback!=null){ + mMapReadyCallback.onMapReady(mMap.getMapboxMap()); + } + } + + @Override + public void onPause() { + super.onPause(); + mMap.onPause(); + } + + @Override + public void onSaveInstanceState(@NonNull Bundle outState) { + mMap.onSaveInstanceState(outState); + super.onSaveInstanceState(outState); + } + + @Override + public void onStop() { + super.onStop(); + mMap.onStop(); + } + + @Override + public void onLowMemory() { + mMap.onLowMemory(); + super.onLowMemory(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + mMap.onDestroy(); + mMap = null; + } + + @NonNull + public void getMapAsync(@NonNull OnMapReadyCallback onMapReadyCallback){ + mMapReadyCallback = onMapReadyCallback; + } +} |