diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-08-21 18:18:14 +0200 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2019-08-29 14:51:24 +0200 |
commit | becc705f05c00854ff9952925f203ed5cf829774 (patch) | |
tree | 9f453fecdcb3b30057e690b98d3ef766b1a477a6 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java | |
parent | e5c219d0356d45a5339c027297e441fd6cb96c05 (diff) | |
download | qtlocation-mapboxgl-becc705f05c00854ff9952925f203ed5cf829774.tar.gz |
[android] expose camera padding option
This removes the cached insets on the Android side, making the core TransformState the source of truth. This still leaves an option to lazily set the padding which is going to be applied only when the next camera animation is started.
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java | 22 |
1 files changed, 13 insertions, 9 deletions
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 8ed003b821..76395f9564 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,6 +3,7 @@ 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; @@ -24,7 +25,6 @@ public class Projection { private final NativeMap nativeMapView; @NonNull private final MapView mapView; - private int[] contentPadding = new int[] {0, 0, 0, 0}; Projection(@NonNull NativeMap nativeMapView, @NonNull MapView mapView) { this.nativeMapView = nativeMapView; @@ -32,8 +32,7 @@ public class Projection { } void setContentPadding(int[] contentPadding) { - this.contentPadding = contentPadding; - float[] output = new float[contentPadding.length]; + double[] output = new double[contentPadding.length]; for (int i = 0; i < contentPadding.length; i++) { output[i] = contentPadding[i]; } @@ -41,11 +40,15 @@ public class Projection { } int[] getContentPadding() { - return contentPadding; + double[] padding = nativeMapView.getCameraPosition().padding; + return new int[] {(int) padding[0], (int) padding[1], (int) padding[2], (int) padding[3]}; } + /** + * @deprecated unused + */ + @Deprecated public void invalidateContentPadding() { - setContentPadding(contentPadding); } /** @@ -126,10 +129,11 @@ public class Projection { top = 0; bottom = mapView.getHeight(); } else { - left = (float) contentPadding[0]; - right = (float) (mapView.getWidth() - contentPadding[2]); - top = (float) contentPadding[1]; - bottom = (float) (mapView.getHeight() - contentPadding[3]); + int[] contentPadding = getContentPadding(); + left = contentPadding[0]; + right = mapView.getWidth() - contentPadding[2]; + top = contentPadding[1]; + bottom = mapView.getHeight() - contentPadding[3]; } LatLng center = fromScreenLocation(new PointF(left + (right - left) / 2, top + (bottom - top) / 2)); |