diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-03-10 10:49:37 -0500 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2016-03-10 10:49:37 -0500 |
commit | d03e87fa4d8aa9150bb3d5965de09c29f9fec99d (patch) | |
tree | 5e5dd5adffef21fd4b23298eb27aa64524225a52 | |
parent | bbfd2c3d5accc03deb70a8203eccebdec88670bc (diff) | |
download | qtlocation-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.java | 18 |
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() { |