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/maps/SupportMapFragment.java | |
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/maps/SupportMapFragment.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java | 104 |
1 files changed, 104 insertions, 0 deletions
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; + } +} |