From 1d955d330bba5e6a0bb65e25c6a7c074b7ed439f Mon Sep 17 00:00:00 2001 From: Tobrun Date: Fri, 28 Apr 2017 13:58:03 +0200 Subject: [android] - warning log when attempting to update a non-added annotation (#8832) --- .../mapbox/mapboxsdk/maps/AnnotationManager.java | 59 +++++++++------------- .../java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 2 +- 2 files changed, 24 insertions(+), 37 deletions(-) (limited to 'platform/android/MapboxGLAndroidSDK') 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 027a5cdc91..6553b64592 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.ArrayList; 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 @@ class AnnotationManager { 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 @@ class AnnotationManager { 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 @@ class AnnotationManager { 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 79d36667ff..1751dcf042 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 final class MapboxMap { */ @UiThread public void updateMarker(@NonNull Marker updatedMarker) { - annotationManager.updateMarker(updatedMarker, this); + annotationManager.updateMarker(updatedMarker); } /** -- cgit v1.2.1