summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2017-04-28 13:58:03 +0200
committerGitHub <noreply@github.com>2017-04-28 13:58:03 +0200
commit1d955d330bba5e6a0bb65e25c6a7c074b7ed439f (patch)
tree30d643c654e205282b446626bd93f7a44ee25320 /platform
parentf6e79d70735361438655f279c8699a786d25458c (diff)
downloadqtlocation-mapboxgl-1d955d330bba5e6a0bb65e25c6a7c074b7ed439f.tar.gz
[android] - warning log when attempting to update a non-added annotation (#8832)
Diffstat (limited to 'platform')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java59
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java2
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 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<Polygon> 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<Polyline> 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);
}
/**