diff options
author | Brad Leege <bleege@gmail.com> | 2015-08-04 19:06:26 -0500 |
---|---|---|
committer | Brad Leege <bleege@gmail.com> | 2015-08-04 19:06:26 -0500 |
commit | 6745b404de842e45df397ec3adc1faf597ed5380 (patch) | |
tree | c3927d7be066ef36f15ce383f27617c40c67d718 | |
parent | 2fccc2bbd6bf801a97c467d9cbbe430e855df890 (diff) | |
download | qtlocation-mapboxgl-6745b404de842e45df397ec3adc1faf597ed5380.tar.gz |
#1940 - Converting OnMapChangedListener to a Collection instead of just a single instance
2 files changed, 25 insertions, 14 deletions
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java index f4e1bedd68..7a41a5d17b 100644 --- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java @@ -244,23 +244,22 @@ public class MapView extends FrameLayout implements LocationListener { onConnectivityChanged(isConnected); } - // Setup Location Services mLocationClient = new LostApiClient.Builder(getContext()).build(); mLocationRequest = LocationRequest.create() .setInterval(1000) .setSmallestDisplacement(1) .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + } - setOnMapChangedListener(new OnMapChangedListener() { - @Override - public void onMapChanged() { - // TODO - doesn't seem to be firing like it does client side + // Called when map state changes + private class MyOnMapChangedListener implements MapView.OnMapChangedListener { - Log.i(TAG, "onMapChanged!"); - updateMap(); - } - }); + @Override + public void onMapChanged() { + Log.i(TAG, "onMapChanged()!! - Now a full class!"); + updateMap(); + } } // @@ -563,6 +562,8 @@ public class MapView extends FrameLayout implements LocationListener { mNativeMapView.initializeDisplay(); mNativeMapView.initializeContext(); + + addOnMapChangedListener(new MyOnMapChangedListener()); } // Called when we need to save instance state @@ -1338,11 +1339,19 @@ public class MapView extends FrameLayout implements LocationListener { void onMapChanged(); } - private OnMapChangedListener mOnMapChangedListener; + private ArrayList<OnMapChangedListener> mOnMapChangedListener = new ArrayList<OnMapChangedListener>(); // Adds a listener for onMapChanged - public void setOnMapChangedListener(OnMapChangedListener listener) { - mOnMapChangedListener = listener; + public void addOnMapChangedListener(@NonNull OnMapChangedListener listener) { + if (listener != null) { + mOnMapChangedListener.add(listener); + } + } + + public void removeOnMapChangedListener(@NonNull OnMapChangedListener listener) { + if (listener != null) { + mOnMapChangedListener.remove(listener); + } } // Called when the map view transformation has changed @@ -1353,7 +1362,9 @@ public class MapView extends FrameLayout implements LocationListener { post(new Runnable() { @Override public void run() { - mOnMapChangedListener.onMapChanged(); + for (OnMapChangedListener listener : mOnMapChangedListener) { + listener.onMapChanged(); + } } }); } diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java index 3c366b4d1f..f3f061e34b 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java @@ -114,7 +114,7 @@ public class MainActivity extends ActionBarActivity { mapView.onCreate(savedInstanceState); mapView.setOnFpsChangedListener(new MyOnFpsChangedListener()); - mapView.setOnMapChangedListener(new MyOnMapChangedListener()); + mapView.addOnMapChangedListener(new MyOnMapChangedListener()); final GestureDetector gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() { public void onLongPress(final MotionEvent e) { |