From 893540c642af9eeadd93a5d81c5c6ed359b97210 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 ++-- .../mapboxsdk/maps/AnnotationManagerTest.java | 2 +- .../com/mapbox/mapboxsdk/maps/MapboxMapTest.kt | 2 +- .../java/com/mapbox/mapboxsdk/maps/StyleTest.kt | 2 +- .../com/mapbox/mapboxsdk/maps/TransformTest.kt | 2 +- .../com/mapbox/mapboxsdk/maps/BaseLayerTest.kt | 2 +- .../com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt | 2 +- 13 files changed, 41 insertions(+), 47 deletions(-) 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 102c221e0a..b151e73abb 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 c2aed13ddd..12a1b043db 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, @@ -1358,21 +1360,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; } @@ -1380,7 +1369,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; } @@ -1432,10 +1422,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; } diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/AnnotationManagerTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/AnnotationManagerTest.java index 9ca8eefe92..fd59f52a55 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/AnnotationManagerTest.java +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/AnnotationManagerTest.java @@ -23,7 +23,7 @@ public class AnnotationManagerTest { @Test public void checksAddAMarker() throws Exception { - NativeMapView aNativeMapView = mock(NativeMapView.class); + NativeMap aNativeMapView = mock(NativeMapView.class); MapView aMapView = mock(MapView.class); LongSparseArray annotationsArray = new LongSparseArray<>(); IconManager aIconManager = mock(IconManager.class); diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt index 885b71f7fb..6cf8568a8d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.kt @@ -17,7 +17,7 @@ class MapboxMapTest { private lateinit var mapboxMap: MapboxMap - private lateinit var nativeMapView: NativeMapView + private lateinit var nativeMapView: NativeMap private lateinit var transform: Transform diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt index a845d23875..0ae5bfa6ed 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt @@ -23,7 +23,7 @@ class StyleTest { private lateinit var mapboxMap: MapboxMap - private lateinit var nativeMapView: NativeMapView + private lateinit var nativeMapView: NativeMap @Before fun setup() { diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt index 8c985ca3a8..4f6e915d1f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/TransformTest.kt @@ -13,7 +13,7 @@ import org.robolectric.RobolectricTestRunner class TransformTest { private lateinit var mapView: MapView - private lateinit var nativeMapView: NativeMapView + private lateinit var nativeMapView: NativeMap private lateinit var transform: Transform @Before diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt index 4b3b97b481..9a6f9c3c26 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt @@ -7,7 +7,7 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) abstract class BaseLayerTest { - private lateinit var nativeMapView: NativeMapView + private lateinit var nativeMapView: NativeMap companion object { const val WIDTH = 500 diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt index d8cc10d4ab..f16de23d69 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/NativeMapViewTest.kt @@ -21,7 +21,7 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class NativeMapViewTest { - private lateinit var nativeMapView: NativeMapView + private lateinit var nativeMapView: NativeMap companion object { const val DELTA = 0.000001 -- cgit v1.2.1