diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-12-08 14:37:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-08 14:37:15 +0100 |
commit | 1d93ffc5ebc79b6e3a77baf96830631bf43a24d0 (patch) | |
tree | 9aa3fc553acc2093318d3a6a57d8c1b7ed960ee3 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java | |
parent | 7cf10ee524b39d3fbcd0414ed392c4deac8677b2 (diff) | |
download | qtlocation-mapboxgl-1d93ffc5ebc79b6e3a77baf96830631bf43a24d0.tar.gz |
[android] - refactor marker selection and listener invocation, reformatted code (#7304)
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 | 44 |
1 files changed, 25 insertions, 19 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 c1cf966eed..40f4ff118e 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 @@ -5,7 +5,6 @@ import android.graphics.RectF; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.util.LongSparseArray; -import android.view.ViewGroup; import com.mapbox.mapboxsdk.annotations.Annotation; import com.mapbox.mapboxsdk.annotations.BaseMarkerOptions; @@ -301,23 +300,16 @@ class AnnotationManager implements MapView.OnMapChangedListener { deselectMarkers(); } - boolean handledDefaultClick = false; - if (onMarkerClickListener != null) { - // end developer has provided a custom click listener - handledDefaultClick = onMarkerClickListener.onMarkerClick(marker); + if (marker instanceof MarkerView) { + markerViewManager.select((MarkerView) marker, false); + markerViewManager.ensureInfoWindowOffset((MarkerView) marker); } - if (!handledDefaultClick) { - if (marker instanceof MarkerView) { - markerViewManager.select((MarkerView) marker, false); - markerViewManager.ensureInfoWindowOffset((MarkerView) marker); - } - - if (infoWindowManager.isInfoWindowValidForMarker(marker) || infoWindowManager.getInfoWindowAdapter() != null) { - infoWindowManager.add(marker.showInfoWindow(mapboxMap, mapView)); - } + if (infoWindowManager.isInfoWindowValidForMarker(marker) || infoWindowManager.getInfoWindowAdapter() != null) { + infoWindowManager.add(marker.showInfoWindow(mapboxMap, mapView)); } + // only add to selected markers if user didn't handle the click event themselves #3176 selectedMarkers.add(marker); } @@ -655,13 +647,27 @@ class AnnotationManager implements MapView.OnMapChangedListener { Annotation annotation = annotations.get(i); if (annotation instanceof Marker) { if (annotation.getId() == newSelectedMarkerId) { - if (selectedMarkers.isEmpty() || !selectedMarkers.contains(annotation)) { - if (!(annotation instanceof MarkerView)) { - selectMarker((Marker) annotation); - } else { - markerViewManager.onClickMarkerView((MarkerView) annotation); + Marker marker = (Marker) annotation; + boolean handledDefaultClick = false; + + if (marker instanceof MarkerView) { + handledDefaultClick = markerViewManager.onClickMarkerView((MarkerView) marker); + } else { + if (onMarkerClickListener != null) { + // end developer has provided a custom click listener + handledDefaultClick = onMarkerClickListener.onMarkerClick(marker); } } + + if (annotation instanceof MarkerView) { + markerViewManager.onClickMarkerView((MarkerView) annotation); + } else { + if (!handledDefaultClick) { + // only select marker if user didn't handle the click event themselves + selectMarker(marker); + } + } + return true; } } |