diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java index 22e5cf4322..960f71ca13 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java @@ -181,6 +181,10 @@ class AnnotationManager { } void updateMarker(@NonNull Marker updatedMarker, @NonNull MapboxMap mapboxMap) { + if (!isAddedToMap(updatedMarker)) { + logNonAdded(updatedMarker); + return; + } markers.update(updatedMarker, mapboxMap); } @@ -230,6 +234,10 @@ class AnnotationManager { } void updatePolygon(Polygon polygon) { + if (!isAddedToMap(polygon)) { + logNonAdded(polygon); + return; + } polygons.update(polygon); } @@ -256,6 +264,10 @@ class AnnotationManager { } void updatePolyline(Polyline polyline) { + if (!isAddedToMap(polyline)) { + logNonAdded(polyline); + return; + } polylines.update(polyline); } @@ -365,6 +377,14 @@ class AnnotationManager { } } + private boolean isAddedToMap(Annotation annotation) { + return annotation != null && annotation.getId() != -1 && annotationsArray.indexOfKey(annotation.getId()) > -1; + } + + private void logNonAdded(Annotation annotation) { + Timber.w("Attempting to update non-added %s with value %s", annotation.getClass().getCanonicalName(), annotation); + } + // // Click event // |