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 | 45 |
1 files changed, 15 insertions, 30 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 86eb0b10e6..95795f6bb9 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 @@ -45,17 +45,13 @@ class AnnotationManager { private final MapView mapView; private final IconManager iconManager; private final InfoWindowManager infoWindowManager = new InfoWindowManager(); - @NonNull private final MarkerViewManager markerViewManager; private final LongSparseArray<Annotation> annotationsArray; private final List<Marker> selectedMarkers = new ArrayList<>(); private MapboxMap mapboxMap; - @Nullable private MapboxMap.OnMarkerClickListener onMarkerClickListener; - @Nullable private MapboxMap.OnPolygonClickListener onPolygonClickListener; - @Nullable private MapboxMap.OnPolylineClickListener onPolylineClickListener; private Annotations annotations; @@ -64,8 +60,8 @@ class AnnotationManager { private Polygons polygons; private Polylines polylines; - AnnotationManager(@Nullable NativeMapView view, MapView mapView, LongSparseArray<Annotation> annotationsArray, - @NonNull MarkerViewManager markerViewManager, IconManager iconManager, Annotations annotations, + AnnotationManager(NativeMapView view, MapView mapView, LongSparseArray<Annotation> annotationsArray, + MarkerViewManager markerViewManager, IconManager iconManager, Annotations annotations, Markers markers, Polygons polygons, Polylines polylines, ShapeAnnotations shapeAnnotations) { this.mapView = mapView; this.annotationsArray = annotationsArray; @@ -84,7 +80,6 @@ class AnnotationManager { // TODO refactor MapboxMap out for Projection and Transform // Requires removing MapboxMap from Annotations by using Peer model from #6912 - @NonNull AnnotationManager bind(MapboxMap mapboxMap) { this.mapboxMap = mapboxMap; this.markerViewManager.bind(mapboxMap); @@ -229,7 +224,7 @@ class AnnotationManager { return polygons.addBy(polygonOptionsList, mapboxMap); } - void updatePolygon(@NonNull Polygon polygon) { + void updatePolygon(Polygon polygon) { if (!isAddedToMap(polygon)) { logNonAdded(polygon); return; @@ -253,7 +248,7 @@ class AnnotationManager { return polylines.addBy(polylineOptionsList, mapboxMap); } - void updatePolyline(@NonNull Polyline polyline) { + void updatePolyline(Polyline polyline) { if (!isAddedToMap(polyline)) { logNonAdded(polyline); return; @@ -338,22 +333,19 @@ class AnnotationManager { selectedMarkers.remove(marker); } - @NonNull List<Marker> getSelectedMarkers() { return selectedMarkers; } - @NonNull InfoWindowManager getInfoWindowManager() { return infoWindowManager; } - @NonNull MarkerViewManager getMarkerViewManager() { return markerViewManager; } - void adjustTopOffsetPixels(@NonNull MapboxMap mapboxMap) { + void adjustTopOffsetPixels(MapboxMap mapboxMap) { int count = annotationsArray.size(); for (int i = 0; i < count; i++) { Annotation annotation = annotationsArray.get(i); @@ -372,11 +364,11 @@ class AnnotationManager { } } - private boolean isAddedToMap(@Nullable Annotation annotation) { + private boolean isAddedToMap(Annotation annotation) { return annotation != null && annotation.getId() != -1 && annotationsArray.indexOfKey(annotation.getId()) > -1; } - private void logNonAdded(@NonNull Annotation annotation) { + private void logNonAdded(Annotation annotation) { Logger.w(TAG, String.format( "Attempting to update non-added %s with value %s", annotation.getClass().getCanonicalName(), annotation) ); @@ -386,7 +378,7 @@ class AnnotationManager { // Click event // - boolean onTap(@NonNull PointF tapPoint) { + boolean onTap(PointF tapPoint) { MarkerHit markerHit = getMarkerHitFromTouchArea(tapPoint); long markerId = new MarkerHitResolver(mapboxMap).execute(markerHit); if (markerId != NO_ANNOTATION_ID) { @@ -448,11 +440,11 @@ class AnnotationManager { return true; } - private boolean onClickMarker(@NonNull Marker marker) { + private boolean onClickMarker(Marker marker) { return onMarkerClickListener != null && onMarkerClickListener.onMarkerClick(marker); } - private void toggleMarkerSelectionState(@NonNull Marker marker) { + private void toggleMarkerSelectionState(Marker marker) { if (!selectedMarkers.contains(marker)) { selectMarker(marker); } else { @@ -468,8 +460,7 @@ class AnnotationManager { this.shapeAnnotations = shapeAnnotations; } - @Nullable - public Annotation execute(@NonNull ShapeAnnotationHit shapeHit) { + public Annotation execute(ShapeAnnotationHit shapeHit) { Annotation foundAnnotation = null; List<Annotation> annotations = shapeAnnotations.obtainAllIn(shapeHit.tapPoint); if (annotations.size() > 0) { @@ -481,24 +472,18 @@ class AnnotationManager { private static class MarkerHitResolver { - @NonNull private final MarkerViewManager markerViewManager; - @NonNull private final Projection projection; private final int minimalTouchSize; - @Nullable private View view; private Bitmap bitmap; private int bitmapWidth; private int bitmapHeight; private PointF markerLocation; - @NonNull private Rect hitRectView = new Rect(); - @NonNull private RectF hitRectMarker = new RectF(); - @NonNull private RectF highestSurfaceIntersection = new RectF(); private long closestMarkerId = NO_ANNOTATION_ID; @@ -509,7 +494,7 @@ class AnnotationManager { this.minimalTouchSize = (int) (32 * Mapbox.getApplicationContext().getResources().getDisplayMetrics().density); } - public long execute(@NonNull MarkerHit markerHit) { + public long execute(MarkerHit markerHit) { resolveForMarkers(markerHit); return closestMarkerId; } @@ -524,7 +509,7 @@ class AnnotationManager { } } - private void resolveForMarkerView(@NonNull MarkerHit markerHit, @NonNull MarkerView markerView) { + private void resolveForMarkerView(MarkerHit markerHit, MarkerView markerView) { view = markerViewManager.getView(markerView); if (view != null) { view.getHitRect(hitRectView); @@ -533,7 +518,7 @@ class AnnotationManager { } } - private void resolveForMarker(@NonNull MarkerHit markerHit, Marker marker) { + private void resolveForMarker(MarkerHit markerHit, Marker marker) { markerLocation = projection.toScreenLocation(marker.getPosition()); bitmap = marker.getIcon().getBitmap(); @@ -555,7 +540,7 @@ class AnnotationManager { hitTestMarker(markerHit, marker, hitRectMarker); } - private void hitTestMarker(@NonNull MarkerHit markerHit, @NonNull Marker marker, @NonNull RectF hitRectMarker) { + private void hitTestMarker(MarkerHit markerHit, Marker marker, RectF hitRectMarker) { if (hitRectMarker.contains(markerHit.getTapPointX(), markerHit.getTapPointY())) { hitRectMarker.intersect(markerHit.tapRect); if (isRectangleHighestSurfaceIntersection(hitRectMarker)) { |