diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps')
7 files changed, 121 insertions, 9 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Image.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Image.java index 80f1271266..a261c2f4b1 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Image.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Image.java @@ -1,5 +1,8 @@ package com.mapbox.mapboxsdk.maps; +import android.support.annotation.Keep; + +@Keep class Image { private final byte[] buffer; private final float pixelRatio; 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 64ad0d29b3..0719412b4c 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 @@ -15,6 +15,7 @@ import android.support.v4.util.Pools; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; + import com.mapbox.android.gestures.AndroidGesturesManager; import com.mapbox.android.gestures.MoveGestureDetector; import com.mapbox.android.gestures.RotateGestureDetector; @@ -44,11 +45,12 @@ import com.mapbox.mapboxsdk.style.expressions.Expression; import com.mapbox.mapboxsdk.style.layers.Layer; import com.mapbox.mapboxsdk.style.light.Light; import com.mapbox.mapboxsdk.style.sources.Source; -import timber.log.Timber; import java.util.HashMap; import java.util.List; +import timber.log.Timber; + /** * The general class to interact with in the Android Mapbox SDK. It exposes the entry point for all * methods related to the MapView. You cannot instantiate {@link MapboxMap} object directly, rather, @@ -827,7 +829,7 @@ public final class MapboxMap { public final void animateCamera(@NonNull final CameraUpdate update, final int durationMs, @Nullable final MapboxMap.CancelableCallback callback) { if (durationMs <= 0) { - throw new IllegalArgumentException("Null duration passed into animageCamera"); + throw new IllegalArgumentException("Null duration passed into animateCamera"); } transform.animateCamera(MapboxMap.this, update, durationMs, callback); @@ -1138,7 +1140,9 @@ public final class MapboxMap { * @param markerOptions A marker options object that defines how to render the marker * @return The {@code Marker} that was added to the map * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android - * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java + * SDK views to be used as a symbol see https://github + * .com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android + * /MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @NonNull @Deprecated @@ -1157,7 +1161,9 @@ public final class MapboxMap { * @param onMarkerViewAddedListener Callback invoked when the View has been added to the map * @return The {@code Marker} that was added to the map * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android - * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java + * SDK views to be used as a symbol see https://github + * .com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android + * /MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @Deprecated @NonNull @@ -1176,7 +1182,9 @@ public final class MapboxMap { * @param markerViewOptions A list of markerView options objects that defines how to render the markers * @return A list of the {@code MarkerView}s that were added to the map * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android - * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java + * SDK views to be used as a symbol see https://github + * .com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android + * /MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @NonNull @Deprecated @@ -1191,7 +1199,9 @@ public final class MapboxMap { * @param rect the rectangular area on the map to query for markerViews * @return A list of the markerViews that were found in the rectangle * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android - * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java + * SDK views to be used as a symbol see https://github + * .com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android + * /MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @NonNull @Deprecated @@ -2625,7 +2635,9 @@ public final class MapboxMap { * * @param <U> the instance type of MarkerView * @deprecated Use a {@link com.mapbox.mapboxsdk.style.layers.SymbolLayer} instead. An example of converting Android - * SDK views to be used as a symbol see https://github.com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java + * SDK views to be used as a symbol see https://github + * .com/mapbox/mapbox-gl-native/blob/68f32bc104422207c64da8d90e8411b138d87f04/platform/android + * /MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java */ @Deprecated public abstract static class MarkerViewAdapter<U extends MarkerView> { 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 31910b206e..dcd6e54cbe 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 @@ -7,6 +7,7 @@ import android.graphics.RectF; import android.os.AsyncTask; import android.os.Handler; import android.support.annotation.IntRange; +import android.support.annotation.Keep; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; @@ -64,6 +65,7 @@ final class NativeMapView { private boolean destroyed = false; // Holds the pointer to JNI NativeMapView + @Keep long nativePtr = 0; // Listener invoked to return a bitmap of the map @@ -894,6 +896,7 @@ final class NativeMapView { // Callbacks // + @Keep protected void onMapChanged(int rawChange) { for (MapView.OnMapChangedListener onMapChangedListener : onMapChangedListeners) { try { @@ -904,6 +907,7 @@ final class NativeMapView { } } + @Keep protected void onSnapshotReady(Bitmap mapContent) { if (checkState("OnSnapshotReady")) { return; @@ -919,188 +923,273 @@ final class NativeMapView { // JNI methods // + @Keep private native void nativeInitialize(NativeMapView nativeMapView, FileSource fileSource, MapRenderer mapRenderer, float pixelRatio); + @Keep private native void nativeDestroy(); + @Keep private native void nativeResizeView(int width, int height); + @Keep private native void nativeSetStyleUrl(String url); + @Keep private native String nativeGetStyleUrl(); + @Keep private native void nativeSetStyleJson(String newStyleJson); + @Keep private native String nativeGetStyleJson(); + @Keep private native void nativeSetLatLngBounds(LatLngBounds latLngBounds); + @Keep private native void nativeCancelTransitions(); + @Keep private native void nativeSetGestureInProgress(boolean inProgress); + @Keep private native void nativeMoveBy(double dx, double dy, long duration); + @Keep private native void nativeSetLatLng(double latitude, double longitude, long duration); + @Keep private native LatLng nativeGetLatLng(); + @Keep private native CameraPosition nativeGetCameraForLatLngBounds( LatLngBounds latLngBounds, double top, double left, double bottom, double right, double bearing, double tilt); + @Keep private native CameraPosition nativeGetCameraForGeometry( Geometry geometry, double top, double left, double bottom, double right, double bearing, double tilt); + @Keep private native void nativeResetPosition(); + @Keep private native double nativeGetPitch(); + @Keep private native void nativeSetPitch(double pitch, long duration); + @Keep private native void nativeSetZoom(double zoom, double cx, double cy, long duration); + @Keep private native double nativeGetZoom(); + @Keep private native void nativeResetZoom(); + @Keep private native void nativeSetMinZoom(double zoom); + @Keep private native double nativeGetMinZoom(); + @Keep private native void nativeSetMaxZoom(double zoom); + @Keep private native double nativeGetMaxZoom(); + @Keep 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); + @Keep private native void nativeSetBearing(double degrees, long duration); + @Keep private native void nativeSetBearingXY(double degrees, double fx, double fy, long duration); + @Keep private native double nativeGetBearing(); + @Keep private native void nativeResetNorth(); + @Keep private native void nativeUpdateMarker(long markerId, double lat, double lon, String iconId); + @Keep private native long[] nativeAddMarkers(Marker[] markers); + @Keep private native long[] nativeAddPolylines(Polyline[] polylines); + @Keep private native long[] nativeAddPolygons(Polygon[] polygons); + @Keep private native void nativeRemoveAnnotations(long[] id); + @Keep private native long[] nativeQueryPointAnnotations(RectF rect); + @Keep private native long[] nativeQueryShapeAnnotations(RectF rect); + @Keep private native void nativeAddAnnotationIcon(String symbol, int width, int height, float scale, byte[] pixels); + @Keep private native void nativeRemoveAnnotationIcon(String symbol); + @Keep private native void nativeSetVisibleCoordinateBounds(LatLng[] coordinates, RectF padding, double direction, long duration); + @Keep private native void nativeOnLowMemory(); + @Keep private native void nativeSetDebug(boolean debug); + @Keep private native void nativeCycleDebugOptions(); + @Keep private native boolean nativeGetDebug(); + @Keep private native boolean nativeIsFullyLoaded(); + @Keep private native void nativeSetReachability(boolean status); + @Keep private native double nativeGetMetersPerPixelAtLatitude(double lat, double zoom); + @Keep private native ProjectedMeters nativeProjectedMetersForLatLng(double latitude, double longitude); + @Keep private native LatLng nativeLatLngForProjectedMeters(double northing, double easting); + @Keep private native PointF nativePixelForLatLng(double lat, double lon); + @Keep private native LatLng nativeLatLngForPixel(float x, float y); + @Keep private native double nativeGetTopOffsetPixelsForAnnotationSymbol(String symbolName); + @Keep private native void nativeJumpTo(double angle, double latitude, double longitude, double pitch, double zoom); + @Keep private native void nativeEaseTo(double angle, double latitude, double longitude, long duration, double pitch, double zoom, boolean easingInterpolator); + @Keep private native void nativeFlyTo(double angle, double latitude, double longitude, long duration, double pitch, double zoom); + @Keep private native CameraPosition nativeGetCameraPosition(); + @Keep private native long nativeGetTransitionDuration(); + @Keep private native void nativeSetTransitionDuration(long duration); + @Keep private native long nativeGetTransitionDelay(); + @Keep private native void nativeSetTransitionDelay(long delay); + @Keep private native Layer[] nativeGetLayers(); + @Keep private native Layer nativeGetLayer(String layerId); + @Keep private native void nativeAddLayer(long layerPtr, String before) throws CannotAddLayerException; + @Keep private native void nativeAddLayerAbove(long layerPtr, String above) throws CannotAddLayerException; + @Keep private native void nativeAddLayerAt(long layerPtr, int index) throws CannotAddLayerException; + @Keep private native Layer nativeRemoveLayerById(String layerId); + @Keep private native void nativeRemoveLayer(long layerId); + @Keep private native Layer nativeRemoveLayerAt(int index); + @Keep private native Source[] nativeGetSources(); + @Keep private native Source nativeGetSource(String sourceId); + @Keep private native void nativeAddSource(Source source, long sourcePtr) throws CannotAddSourceException; + @Keep private native void nativeRemoveSource(Source source, long sourcePtr); + @Keep private native void nativeAddImage(String name, Bitmap bitmap, float pixelRatio, boolean sdf); + @Keep private native void nativeAddImages(Image[] images); + @Keep private native void nativeRemoveImage(String name); + @Keep private native Bitmap nativeGetImage(String name); + @Keep private native void nativeUpdatePolygon(long polygonId, Polygon polygon); + @Keep private native void nativeUpdatePolyline(long polylineId, Polyline polyline); + @Keep private native void nativeTakeSnapshot(); + @Keep private native Feature[] nativeQueryRenderedFeaturesForPoint(float x, float y, String[] layerIds, Object[] filter); + @Keep private native Feature[] nativeQueryRenderedFeaturesForBox(float left, float top, float right, float bottom, String[] layerIds, Object[] filter); + @Keep private native Light nativeGetLight(); + @Keep private native void nativeSetPrefetchesTiles(boolean enable); + @Keep private native boolean nativeGetPrefetchesTiles(); int getWidth() { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java index fcee5bd179..b05a8a407f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java @@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.maps.renderer; import android.content.Context; import android.support.annotation.CallSuper; +import android.support.annotation.Keep; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.storage.FileSource; @@ -16,6 +17,7 @@ import javax.microedition.khronos.opengles.GL10; * render on the one end and acts as a scheduler to request work to * be performed on the GL thread on the other. */ +@Keep public abstract class MapRenderer implements MapRendererScheduler { // Holds the pointer to the native peer after initialisation diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererRunnable.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererRunnable.java index 28246fe578..2ec82ea202 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererRunnable.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererRunnable.java @@ -1,9 +1,12 @@ package com.mapbox.mapboxsdk.maps.renderer; +import android.support.annotation.Keep; + /** * Peer class for {@link Runnable}s to be scheduled on the {@link MapRenderer} thread. * The actual work is performed in the native peer. */ +@Keep class MapRendererRunnable implements Runnable { // Holds the pointer to the native peer after initialisation diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererScheduler.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererScheduler.java index 7ad4f124d8..fd12cceee6 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererScheduler.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRendererScheduler.java @@ -1,13 +1,17 @@ package com.mapbox.mapboxsdk.maps.renderer; +import android.support.annotation.Keep; + /** * Can be used to schedule work on the map renderer * thread or request a render. */ public interface MapRendererScheduler { + @Keep void requestRender(); + @Keep void queueEvent(Runnable runnable); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java index 7bc56475c0..b0667751bb 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java @@ -77,5 +77,4 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi glSurfaceView.queueEvent(runnable); } - -} +}
\ No newline at end of file |