From 75914acb6b66402539fd0913aed0aebe722b2faa Mon Sep 17 00:00:00 2001 From: Tobrun Date: Mon, 10 Dec 2018 10:40:17 +0100 Subject: [android] - add more tests, refactor map padding --- .../com/mapbox/mapboxsdk/maps/NativeMapView.java | 21 +++++++++++++++++++-- .../java/com/mapbox/mapboxsdk/maps/Projection.java | 15 +++++++++------ 2 files changed, 28 insertions(+), 8 deletions(-) (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps') 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 891b040d6b..bdbca4fbca 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 @@ -387,10 +387,11 @@ final class NativeMapView { nativeRotateBy(sx / pixelRatio, sy / pixelRatio, ex, ey, duration); } - public void setContentPadding(int[] padding) { + public void setContentPadding(float[] padding) { if (checkState("setContentPadding")) { return; } + // TopLeftBottomRight nativeSetContentPadding( padding[1] / pixelRatio, padding[0] / pixelRatio, @@ -398,6 +399,19 @@ final class NativeMapView { padding[2] / pixelRatio); } + public float[] getContentPadding() { + if (checkState("getContentPadding")) { + return new float[] {0, 0, 0, 0}; + } + float[] topLeftBottomRight = nativeGetContentPadding(); + return new float[]{ + topLeftBottomRight[1] * pixelRatio, + topLeftBottomRight[0] * pixelRatio, + topLeftBottomRight[3] * pixelRatio, + topLeftBottomRight[2] * pixelRatio + }; + } + public void setBearing(double degrees) { if (checkState("setBearing")) { return; @@ -1115,7 +1129,10 @@ final class NativeMapView { private native void nativeRotateBy(double sx, double sy, double ex, double ey, long duration); @Keep - private native void nativeSetContentPadding(double top, double left, double bottom, double right); + private native void nativeSetContentPadding(float top, float left, float bottom, float right); + + @Keep + private native float[] nativeGetContentPadding(); @Keep private native void nativeSetBearing(double degrees, long duration); 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 8e3092ae1d..c455ae606f 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 @@ -3,7 +3,6 @@ package com.mapbox.mapboxsdk.maps; import android.graphics.PointF; import android.support.annotation.FloatRange; import android.support.annotation.NonNull; - import com.mapbox.geojson.Point; import com.mapbox.mapboxsdk.constants.GeometryConstants; import com.mapbox.mapboxsdk.geometry.LatLng; @@ -32,7 +31,11 @@ public class Projection { void setContentPadding(int[] contentPadding) { this.contentPadding = contentPadding; - nativeMapView.setContentPadding(contentPadding); + float[] output = new float[contentPadding.length]; + for (int i = 0; i < contentPadding.length; i++) { + output[i] = contentPadding[i]; + } + nativeMapView.setContentPadding(output); } int[] getContentPadding() { @@ -121,10 +124,10 @@ public class Projection { top = 0; bottom = nativeMapView.getHeight(); } else { - left = contentPadding[0]; - right = nativeMapView.getWidth() - contentPadding[2]; - top = contentPadding[1]; - bottom = nativeMapView.getHeight() - contentPadding[3]; + left = (float) contentPadding[0]; + right = (float) (nativeMapView.getWidth() - contentPadding[2]); + top = (float) contentPadding[1]; + bottom = (float) (nativeMapView.getHeight() - contentPadding[3]); } LatLng center = fromScreenLocation(new PointF(left + (right - left) / 2, top + (bottom - top) / 2)); -- cgit v1.2.1