From a0241c0a34c3a4cad2b43dc4c5b2f358ddc930d3 Mon Sep 17 00:00:00 2001 From: Tobrun Van Nuland Date: Thu, 27 Apr 2017 12:12:34 +0200 Subject: [PATCH] [android] - warning log when attempting to update a non-added annotation --- .../mapboxsdk/maps/AnnotationManager.java | 59 ++++++++----------- .../com/mapbox/mapboxsdk/maps/MapboxMap.java | 2 +- 2 files changed, 24 insertions(+), 37 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 027a5cdc91f..6553b64592c 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 @@ -22,6 +22,8 @@ import java.util.Collections; import java.util.List; +import timber.log.Timber; + /** * Responsible for managing and tracking state of Annotations linked to Map. All events related to * annotations that occur on {@link MapboxMap} are forwarded to this class. @@ -260,24 +262,24 @@ private MarkerView prepareViewMarker(BaseMarkerViewOptions markerViewOptions) { return marker; } - void updateMarker(@NonNull Marker updatedMarker, @NonNull MapboxMap mapboxMap) { - if (updatedMarker == null) { + void updateMarker(@NonNull Marker updatedMarker) { + if (!isAddedToMap(updatedMarker)) { + Timber.w("Attempting to update non-added Marker with value %s", updatedMarker); return; } - if (updatedMarker.getId() == -1) { - return; - } - - if (!(updatedMarker instanceof MarkerView)) { - iconManager.ensureIconLoaded(updatedMarker, mapboxMap); - } - + ensureIconLoaded(updatedMarker); nativeMapView.updateMarker(updatedMarker); + annotations.setValueAt(annotations.indexOfKey(updatedMarker.getId()), updatedMarker); + } - int index = annotations.indexOfKey(updatedMarker.getId()); - if (index > -1) { - annotations.setValueAt(index, updatedMarker); + private boolean isAddedToMap(Annotation annotation) { + return annotation != null && annotation.getId() != -1 && annotations.indexOfKey(annotation.getId()) != -1; + } + + private void ensureIconLoaded(Marker marker) { + if (!(marker instanceof MarkerView)) { + iconManager.ensureIconLoaded(marker, mapboxMap); } } @@ -465,21 +467,14 @@ List addPolygons(@NonNull List polygonOptionsList, @Non return polygons; } - void updatePolygon(Polygon polygon) { - if (polygon == null) { - return; - } - - if (polygon.getId() == -1) { + void updatePolygon(@NonNull Polygon polygon) { + if (!isAddedToMap(polygon)) { + Timber.w("Attempting to update non-added Polygon with value %s", polygon); return; } nativeMapView.updatePolygon(polygon); - - int index = annotations.indexOfKey(polygon.getId()); - if (index > -1) { - annotations.setValueAt(index, polygon); - } + annotations.setValueAt(annotations.indexOfKey(polygon.getId()), polygon); } List getPolygons() { @@ -546,21 +541,13 @@ List addPolylines(@NonNull List polylineOptionsList, return polylines; } - void updatePolyline(Polyline polyline) { - if (polyline == null) { - return; - } - - if (polyline.getId() == -1) { - return; + void updatePolyline(@NonNull Polyline polyline) { + if (!isAddedToMap(polyline)) { + Timber.w("Attempting to update non-added Polyline with value %s", polyline); } nativeMapView.updatePolyline(polyline); - - int index = annotations.indexOfKey(polyline.getId()); - if (index > -1) { - annotations.setValueAt(index, polyline); - } + annotations.setValueAt(annotations.indexOfKey(polyline.getId()), polyline); } List getPolylines() { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 79d36667ff3..1751dcf0428 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -1179,7 +1179,7 @@ public List addMarkers(@NonNull List