[android] #3759 - Add SupportMapFragment, test app integration, cleanup old fragment implementation
This commit is contained in:
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user