From 278d856372cf2a9d6ad6659d11c0d8491d227d78 Mon Sep 17 00:00:00 2001 From: tobrun Date: Fri, 12 Apr 2019 14:49:14 +0200 Subject: [android] - program against NativeMap interface --- .../java/com/mapbox/mapboxsdk/maps/MapView.java | 4 ++-- .../java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 8 +++---- .../com/mapbox/mapboxsdk/maps/MarkerContainer.java | 4 ++-- .../java/com/mapbox/mapboxsdk/maps/NativeMap.java | 6 +++++ .../com/mapbox/mapboxsdk/maps/NativeMapView.java | 28 ++++++---------------- .../java/com/mapbox/mapboxsdk/maps/Projection.java | 22 +++++++++-------- .../mapboxsdk/maps/ShapeAnnotationContainer.java | 4 ++-- 7 files changed, 35 insertions(+), 41 deletions(-) (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com') diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 167a1318ce..452a0454be 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -65,7 +65,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { private final InitialRenderCallback initialRenderCallback = new InitialRenderCallback(); @Nullable - private NativeMapView nativeMapView; + private NativeMap nativeMapView; @Nullable private MapboxMap mapboxMap; private AttributionClickListener attributionClickListener; @@ -155,7 +155,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { final CameraChangeDispatcher cameraDispatcher = new CameraChangeDispatcher(); // setup components for MapboxMap creation - Projection proj = new Projection(nativeMapView); + Projection proj = new Projection(nativeMapView, this); UiSettings uiSettings = new UiSettings(proj, focalInvalidator, compassView, attrView, logoView, getPixelRatio()); LongSparseArray annotationsArray = new LongSparseArray<>(); IconManager iconManager = new IconManager(nativeMapView); 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 b75193dc8f..e03358158f 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 @@ -56,7 +56,7 @@ public final class MapboxMap { private static final String TAG = "Mbgl-MapboxMap"; - private final NativeMapView nativeMapView; + private final NativeMap nativeMapView; private final UiSettings uiSettings; private final Projection projection; private final Transform transform; @@ -78,7 +78,7 @@ public final class MapboxMap { private boolean debugActive; - MapboxMap(NativeMapView map, Transform transform, UiSettings ui, Projection projection, + MapboxMap(NativeMap map, Transform transform, UiSettings ui, Projection projection, OnGesturesManagerInteractionListener listener, CameraChangeDispatcher cameraChangeDispatcher) { this.nativeMapView = map; this.uiSettings = ui; @@ -652,7 +652,7 @@ public final class MapboxMap { * @return the height of the map */ public float getHeight() { - return nativeMapView.getHeight(); + return projection.getHeight(); } /** @@ -661,7 +661,7 @@ public final class MapboxMap { * @return the width of the map */ public float getWidth() { - return nativeMapView.getWidth(); + return projection.getWidth(); } // diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java index 26ac74904a..b408d9f5c5 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java @@ -17,11 +17,11 @@ import java.util.List; */ class MarkerContainer implements Markers { - private final NativeMapView nativeMapView; + private final NativeMap nativeMapView; private final LongSparseArray annotations; private final IconManager iconManager; - MarkerContainer(NativeMapView nativeMapView, LongSparseArray annotations, IconManager iconManager) { + MarkerContainer(NativeMap nativeMapView, LongSparseArray annotations, IconManager iconManager) { this.nativeMapView = nativeMapView; this.annotations = annotations; this.iconManager = iconManager; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java index 35316379a1..e4a1b17f40 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java @@ -263,4 +263,10 @@ interface NativeMap { @NonNull long[] queryShapeAnnotations(RectF rectF); + @NonNull + RectF getDensityDependantRectangle(RectF rectangle); + + long getNativePtr(); + + void addSnapshotCallback(@NonNull MapboxMap.SnapshotReadyCallback callback); } \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index 0a63150759..7409a83136 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -940,7 +940,9 @@ final class NativeMapView implements NativeMap { return pixelRatio; } - RectF getDensityDependantRectangle(final RectF rectangle) { + @NonNull + @Override + public RectF getDensityDependantRectangle(final RectF rectangle) { return new RectF( rectangle.left / pixelRatio, rectangle.top / pixelRatio, @@ -1373,21 +1375,8 @@ final class NativeMapView implements NativeMap { @Keep private native boolean nativeGetPrefetchTiles(); - int getWidth() { - if (checkState("") || viewCallback == null) { - return 0; - } - return viewCallback.getWidth(); - } - - int getHeight() { - if (checkState("") || viewCallback == null) { - return 0; - } - return viewCallback.getHeight(); - } - - long getNativePtr() { + @Override + public long getNativePtr() { return nativePtr; } @@ -1395,7 +1384,8 @@ final class NativeMapView implements NativeMap { // Snapshot // - void addSnapshotCallback(@NonNull MapboxMap.SnapshotReadyCallback callback) { + @Override + public void addSnapshotCallback(@NonNull MapboxMap.SnapshotReadyCallback callback) { if (checkState("addSnapshotCallback")) { return; } @@ -1447,10 +1437,6 @@ final class NativeMapView implements NativeMap { } public interface ViewCallback { - int getWidth(); - - int getHeight(); - @Nullable Bitmap getViewContent(); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java index cbf5426012..8ed003b821 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java @@ -21,12 +21,14 @@ import java.util.List; public class Projection { @NonNull - private final NativeMapView nativeMapView; - private int[] contentPadding; + private final NativeMap nativeMapView; + @NonNull + private final MapView mapView; + private int[] contentPadding = new int[] {0, 0, 0, 0}; - Projection(@NonNull NativeMapView nativeMapView) { + Projection(@NonNull NativeMap nativeMapView, @NonNull MapView mapView) { this.nativeMapView = nativeMapView; - this.contentPadding = new int[] {0, 0, 0, 0}; + this.mapView = mapView; } void setContentPadding(int[] contentPadding) { @@ -120,14 +122,14 @@ public class Projection { if (ignorePadding) { left = 0; - right = nativeMapView.getWidth(); + right = mapView.getWidth(); top = 0; - bottom = nativeMapView.getHeight(); + bottom = mapView.getHeight(); } else { left = (float) contentPadding[0]; - right = (float) (nativeMapView.getWidth() - contentPadding[2]); + right = (float) (mapView.getWidth() - contentPadding[2]); top = (float) contentPadding[1]; - bottom = (float) (nativeMapView.getHeight() - contentPadding[3]); + bottom = (float) (mapView.getHeight() - contentPadding[3]); } LatLng center = fromScreenLocation(new PointF(left + (right - left) / 2, top + (bottom - top) / 2)); @@ -258,11 +260,11 @@ public class Projection { } float getHeight() { - return nativeMapView.getHeight(); + return mapView.getHeight(); } float getWidth() { - return nativeMapView.getWidth(); + return mapView.getWidth(); } /** diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/ShapeAnnotationContainer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/ShapeAnnotationContainer.java index d04860a345..9c2b97b6a5 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/ShapeAnnotationContainer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/ShapeAnnotationContainer.java @@ -11,10 +11,10 @@ import java.util.List; class ShapeAnnotationContainer implements ShapeAnnotations { - private final NativeMapView nativeMapView; + private final NativeMap nativeMapView; private final LongSparseArray annotations; - ShapeAnnotationContainer(NativeMapView nativeMapView, LongSparseArray annotations) { + ShapeAnnotationContainer(NativeMap nativeMapView, LongSparseArray annotations) { this.nativeMapView = nativeMapView; this.annotations = annotations; } -- cgit v1.2.1