summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2016-03-10 10:49:37 -0500
committerTobrun <tobrun.van.nuland@gmail.com>2016-03-10 10:49:37 -0500
commitd03e87fa4d8aa9150bb3d5965de09c29f9fec99d (patch)
tree5e5dd5adffef21fd4b23298eb27aa64524225a52
parentbbfd2c3d5accc03deb70a8203eccebdec88670bc (diff)
downloadqtlocation-mapboxgl-d03e87fa4d8aa9150bb3d5965de09c29f9fec99d.tar.gz
[android] #4263 - have the ability to define multiple callbacks for OnMapReady
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index a31da56f42..90632f4bdc 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -139,8 +139,9 @@ public class MapView extends FrameLayout {
private int mContentPaddingRight;
private int mContentPaddingBottom;
- private OnMapReadyCallback mMapReadyCallback;
private String mStyleUrl;
+
+ private List<OnMapReadyCallback> mOnMapReadyCallbackList;
private boolean mInitialLoad;
private boolean mDestroyed;
@@ -170,6 +171,7 @@ public class MapView extends FrameLayout {
private void initialize(@NonNull Context context, @NonNull MapboxMapOptions options) {
mInitialLoad = true;
+ mOnMapReadyCallbackList = new ArrayList<>();
mOnMapChangedListener = new CopyOnWriteArrayList<>();
mMapboxMap = new MapboxMap(this);
mIcons = new ArrayList<>();
@@ -391,8 +393,13 @@ public class MapView extends FrameLayout {
adjustTopOffsetPixels();
if (mInitialLoad) {
mInitialLoad = false;
- if (mMapReadyCallback != null) {
- mMapReadyCallback.onMapReady(mMapboxMap);
+ if (mOnMapReadyCallbackList.size() > 0) {
+ Iterator<OnMapReadyCallback> iterator = mOnMapReadyCallbackList.iterator();
+ while (iterator.hasNext()) {
+ OnMapReadyCallback callback = iterator.next();
+ callback.onMapReady(mMapboxMap);
+ iterator.remove();
+ }
}
}
}
@@ -2418,10 +2425,11 @@ public class MapView extends FrameLayout {
*/
@UiThread
public void getMapAsync(@NonNull final OnMapReadyCallback callback) {
- if (mMapReadyCallback == null && !mInitialLoad) {
+ if (!mInitialLoad) {
callback.onMapReady(mMapboxMap);
+ } else {
+ mOnMapReadyCallbackList.add(callback);
}
- mMapReadyCallback = callback;
}
MapboxMap getMapboxMap() {