summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorBrad Leege <bleege@gmail.com>2015-08-04 19:06:26 -0500
committerBrad Leege <bleege@gmail.com>2015-08-04 19:06:26 -0500
commit6745b404de842e45df397ec3adc1faf597ed5380 (patch)
treec3927d7be066ef36f15ce383f27617c40c67d718 /android
parent2fccc2bbd6bf801a97c467d9cbbe430e855df890 (diff)
downloadqtlocation-mapboxgl-6745b404de842e45df397ec3adc1faf597ed5380.tar.gz
#1940 - Converting OnMapChangedListener to a Collection instead of just a single instance
Diffstat (limited to 'android')
-rw-r--r--android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java37
-rw-r--r--android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java2
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) {