summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorLeith Bade <leith@mapbox.com>2015-10-25 01:07:16 +1100
committerLeith Bade <leith@mapbox.com>2015-10-25 01:07:16 +1100
commit39911e581c7bc82116c1c70608f246924de33b85 (patch)
treea66716809ec61f742f1d1fbec5297a68504adfd2 /android
parentd2e01290ebc1f9b894b4b2d05e0e7c22d876e40b (diff)
downloadqtlocation-mapboxgl-39911e581c7bc82116c1c70608f246924de33b85.tar.gz
[android] Move android files
Fixes #2032
Diffstat (limited to 'android')
-rw-r--r--android/.gitignore (renamed from android/java/.gitignore)0
-rw-r--r--android/MapboxGLAndroidSDK/build.gradle (renamed from android/java/MapboxGLAndroidSDK/build.gradle)0
-rwxr-xr-xandroid/MapboxGLAndroidSDK/deploy.sh (renamed from android/java/MapboxGLAndroidSDK/deploy.sh)0
-rw-r--r--android/MapboxGLAndroidSDK/gradle.properties (renamed from android/java/MapboxGLAndroidSDK/gradle.properties)0
-rw-r--r--android/MapboxGLAndroidSDK/lint.xml (renamed from android/java/MapboxGLAndroidSDK/lint.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/proguard-rules.pro (renamed from android/java/MapboxGLAndroidSDK/proguard-rules.pro)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/AndroidManifest.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/AndroidManifest.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/BaseGestureDetector.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/BaseGestureDetector.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/MoveGestureDetector.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/MoveGestureDetector.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/RotateGestureDetector.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/RotateGestureDetector.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/ShoveGestureDetector.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/ShoveGestureDetector.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/TwoFingerGestureDetector.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/TwoFingerGestureDetector.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/MapFragment.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/MapFragment.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Annotation.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Annotation.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindow.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindow.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowTipView.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowTipView.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowView.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowView.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Marker.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Marker.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MultiPoint.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MultiPoint.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polygon.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polygon.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolygonOptions.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolygonOptions.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polyline.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polyline.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolylineOptions.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolylineOptions.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Sprite.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Sprite.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/SpriteFactory.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/SpriteFactory.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/GeoConstants.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/GeoConstants.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MathConstants.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MathConstants.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/Style.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/Style.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/InvalidAccessTokenException.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/InvalidAccessTokenException.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/SpriteBitmapChangedException.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/SpriteBitmapChangedException.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/TooManySpritesException.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/TooManySpritesException.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/BoundingBox.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/BoundingBox.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateBounds.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateBounds.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateRegion.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateRegion.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateSpan.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateSpan.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ILatLng.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ILatLng.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/IProjectedMeters.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/IProjectedMeters.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLngZoom.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLngZoom.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ProjectedMeters.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ProjectedMeters.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPContext.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPContext.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/ApiAccess.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/ApiAccess.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/CompassView.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/CompassView.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/NativeMapView.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/NativeMapView.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/UserLocationView.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/UserLocationView.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/package-info.java (renamed from android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/package-info.java)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/overview.html (renamed from android/java/MapboxGLAndroidSDK/src/main/java/overview.html)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res-public/values/public.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/color/material_bg_selector.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/color/material_bg_selector.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/attribution_logo.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/attribution_logo.png)bin3408 -> 3408 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/compass.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/compass.png)bin3787 -> 3787 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/default_marker.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/default_marker.png)bin1520 -> 1520 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_normal.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_normal.png)bin2194 -> 2194 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_pressed.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_pressed.png)bin2133 -> 2133 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location.png)bin2783 -> 2783 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_bearing.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_bearing.png)bin5939 -> 5939 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_stale.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_stale.png)bin2593 -> 2593 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/attribution_logo.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/attribution_logo.png)bin1958 -> 1958 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/compass.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/compass.png)bin2488 -> 2488 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/default_marker.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/default_marker.png)bin1010 -> 1010 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_normal.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_normal.png)bin1354 -> 1354 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_pressed.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_pressed.png)bin1391 -> 1391 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location.png)bin2089 -> 2089 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_bearing.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_bearing.png)bin3599 -> 3599 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_stale.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_stale.png)bin1942 -> 1942 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/attribution_logo.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/attribution_logo.png)bin4492 -> 4492 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/compass.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/compass.png)bin4775 -> 4775 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/default_marker.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/default_marker.png)bin1995 -> 1995 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_normal.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_normal.png)bin2710 -> 2710 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_pressed.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_pressed.png)bin2738 -> 2738 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location.png)bin3520 -> 3520 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_bearing.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_bearing.png)bin8155 -> 8155 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_stale.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_stale.png)bin3287 -> 3287 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/attribution_logo.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/attribution_logo.png)bin7059 -> 7059 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/compass.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/compass.png)bin7527 -> 7527 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/default_marker.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/default_marker.png)bin2998 -> 2998 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_normal.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_normal.png)bin4256 -> 4256 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_pressed.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_pressed.png)bin4240 -> 4240 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location.png)bin5057 -> 5057 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_bearing.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_bearing.png)bin13246 -> 13246 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_stale.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_stale.png)bin4676 -> 4676 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/attribution_logo.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/attribution_logo.png)bin9402 -> 9402 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/compass.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/compass.png)bin18537 -> 18537 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/default_marker.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/default_marker.png)bin4006 -> 4006 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_normal.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_normal.png)bin730 -> 730 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_pressed.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_pressed.png)bin836 -> 836 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location.png)bin5236 -> 5236 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_bearing.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_bearing.png)bin11688 -> 11688 bytes
-rwxr-xr-xandroid/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_stale.png (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_stale.png)bin5053 -> 5053 bytes
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/drawable/ic_info_selector.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/drawable/ic_info_selector.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/layout/attribution_list_item.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/layout/attribution_list_item.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/layout/infowindow_content.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/layout/infowindow_content.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/layout/infowindow_view.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/layout/infowindow_view.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/layout/mapview.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/layout/mapview.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/raw/token.txt (renamed from android/java/MapboxGLAndroidSDK/src/main/res/raw/token.txt)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/values/arrays.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/values/arrays.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/values/attrs.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/values/colors.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/values/colors.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/values/dimens.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/values/strings.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/values/strings.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/res/values/styles.xml (renamed from android/java/MapboxGLAndroidSDK/src/main/res/values/styles.xml)0
-rw-r--r--android/MapboxGLAndroidSDK/src/main/resources/fabric/com.mapbox.mapboxsdk.mapbox-android-sdk.properties (renamed from android/java/MapboxGLAndroidSDK/src/main/resources/fabric/com.mapbox.mapboxsdk.mapbox-android-sdk.properties)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/README.md (renamed from android/java/MapboxGLAndroidSDKTestApp/README.md)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/build.gradle (renamed from android/java/MapboxGLAndroidSDKTestApp/build.gradle)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/lint.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/lint.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/proguard-rules.pro (renamed from android/java/MapboxGLAndroidSDKTestApp/proguard-rules.pro)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BaseTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BaseTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivityTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivityTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivityTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivityTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivityTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivityTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivityTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivityTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivityTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivityTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ScreenshotUtil.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ScreenshotUtil.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/assets/dog-park-24.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/assets/dog-park-24.png)bin831 -> 831 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/assets/points.geojson (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/assets/points.geojson)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/assets/small_line.geojson (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/assets/small_line.geojson)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/assets/small_poly.geojson (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/assets/small_poly.geojson)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivity.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivity.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TimingLogger.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TimingLogger.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivity.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivity.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_blur_on_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_blur_on_white_24dp.png)bin280 -> 280 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_crop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_crop_white_24dp.png)bin188 -> 188 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_filter_none_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_filter_none_white_24dp.png)bin199 -> 199 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_back_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_back_white_24dp.png)bin224 -> 224 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_front_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_front_white_24dp.png)bin215 -> 215 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_location_city_black_48dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_location_city_black_48dp.png)bin172 -> 172 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_menu.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_menu.png)bin116 -> 116 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_my_location_black_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_my_location_black_24dp.png)bin549 -> 549 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_pin_drop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_pin_drop_white_24dp.png)bin330 -> 330 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_widgets_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_widgets_white_24dp.png)bin164 -> 164 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon.png)bin2546 -> 2546 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon_burned.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon_burned.png)bin2546 -> 2546 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_blur_on_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_blur_on_white_24dp.png)bin176 -> 176 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_crop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_crop_white_24dp.png)bin119 -> 119 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_filter_none_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_filter_none_white_24dp.png)bin132 -> 132 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_back_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_back_white_24dp.png)bin136 -> 136 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_front_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_front_white_24dp.png)bin135 -> 135 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_location_city_black_48dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_location_city_black_48dp.png)bin147 -> 147 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_menu.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_menu.png)bin99 -> 99 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_my_location_black_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_my_location_black_24dp.png)bin341 -> 341 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_pin_drop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_pin_drop_white_24dp.png)bin233 -> 233 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_widgets_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_widgets_white_24dp.png)bin175 -> 175 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon.png)bin2015 -> 2015 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon_burned.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon_burned.png)bin2015 -> 2015 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_blur_on_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_blur_on_white_24dp.png)bin260 -> 260 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_crop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_crop_white_24dp.png)bin155 -> 155 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_filter_none_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_filter_none_white_24dp.png)bin191 -> 191 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_back_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_back_white_24dp.png)bin201 -> 201 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_front_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_front_white_24dp.png)bin190 -> 190 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_location_city_black_48dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_location_city_black_48dp.png)bin190 -> 190 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_menu.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_menu.png)bin135 -> 135 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_my_location_black_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_my_location_black_24dp.png)bin660 -> 660 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_pin_drop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_pin_drop_white_24dp.png)bin417 -> 417 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_widgets_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_widgets_white_24dp.png)bin249 -> 249 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon.png)bin3358 -> 3358 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon_burned.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon_burned.png)bin3358 -> 3358 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_blur_on_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_blur_on_white_24dp.png)bin365 -> 365 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_crop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_crop_white_24dp.png)bin198 -> 198 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_filter_none_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_filter_none_white_24dp.png)bin256 -> 256 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_back_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_back_white_24dp.png)bin279 -> 279 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_front_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_front_white_24dp.png)bin263 -> 263 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_location_city_black_48dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_location_city_black_48dp.png)bin230 -> 230 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_menu.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_menu.png)bin183 -> 183 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_my_location_black_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_my_location_black_24dp.png)bin976 -> 976 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_pin_drop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_pin_drop_white_24dp.png)bin584 -> 584 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_widgets_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_widgets_white_24dp.png)bin300 -> 300 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon.png)bin10233 -> 10233 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon_burned.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon_burned.png)bin10233 -> 10233 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_blur_on_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_blur_on_white_24dp.png)bin450 -> 450 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_crop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_crop_white_24dp.png)bin252 -> 252 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_filter_none_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_filter_none_white_24dp.png)bin329 -> 329 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_back_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_back_white_24dp.png)bin343 -> 343 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_front_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_front_white_24dp.png)bin332 -> 332 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_location_city_black_48dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_location_city_black_48dp.png)bin255 -> 255 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_menu.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_menu.png)bin235 -> 235 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_my_location_black_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_my_location_black_24dp.png)bin1334 -> 1334 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_pin_drop_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_pin_drop_white_24dp.png)bin769 -> 769 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_widgets_white_24dp.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_widgets_white_24dp.png)bin415 -> 415 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon.png)bin2162 -> 2162 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon_burned.png (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon_burned.png)bin2162 -> 2162 bytes
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_press_for_marker.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_press_for_marker.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_visible_bounds.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_visible_bounds.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_main.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_main.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/values/colors.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/colors.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/main/res/values/styles.xml (renamed from android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/styles.xml)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/test/java/BoundingBoxTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/test/java/BoundingBoxTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateBoundsTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateBoundsTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateRegionTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateRegionTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateSpanTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateSpanTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngZoomTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/test/java/LatLngZoomTest.java)0
-rw-r--r--android/MapboxGLAndroidSDKTestApp/src/test/java/ProjectedMetersTest.java (renamed from android/java/MapboxGLAndroidSDKTestApp/src/test/java/ProjectedMetersTest.java)0
-rw-r--r--android/build.gradle (renamed from android/java/build.gradle)0
-rw-r--r--android/checks.xml (renamed from android/java/checks.xml)0
-rw-r--r--android/cpp/jni.cpp2199
-rw-r--r--android/cpp/native_map_view.cpp745
-rw-r--r--android/gradle/wrapper/gradle-wrapper.jar (renamed from android/java/gradle/wrapper/gradle-wrapper.jar)bin52271 -> 52271 bytes
-rw-r--r--android/gradle/wrapper/gradle-wrapper.properties (renamed from android/java/gradle/wrapper/gradle-wrapper.properties)0
-rwxr-xr-xandroid/gradlew (renamed from android/java/gradlew)0
-rw-r--r--android/gradlew.bat (renamed from android/java/gradlew.bat)0
-rw-r--r--android/mapboxgl-app.gypi101
-rw-r--r--android/settings.gradle (renamed from android/java/settings.gradle)0
231 files changed, 0 insertions, 3045 deletions
diff --git a/android/java/.gitignore b/android/.gitignore
index 173ce20c94..173ce20c94 100644
--- a/android/java/.gitignore
+++ b/android/.gitignore
diff --git a/android/java/MapboxGLAndroidSDK/build.gradle b/android/MapboxGLAndroidSDK/build.gradle
index 7ff49e594e..7ff49e594e 100644
--- a/android/java/MapboxGLAndroidSDK/build.gradle
+++ b/android/MapboxGLAndroidSDK/build.gradle
diff --git a/android/java/MapboxGLAndroidSDK/deploy.sh b/android/MapboxGLAndroidSDK/deploy.sh
index c9392201e4..c9392201e4 100755
--- a/android/java/MapboxGLAndroidSDK/deploy.sh
+++ b/android/MapboxGLAndroidSDK/deploy.sh
diff --git a/android/java/MapboxGLAndroidSDK/gradle.properties b/android/MapboxGLAndroidSDK/gradle.properties
index 1bbc801e48..1bbc801e48 100644
--- a/android/java/MapboxGLAndroidSDK/gradle.properties
+++ b/android/MapboxGLAndroidSDK/gradle.properties
diff --git a/android/java/MapboxGLAndroidSDK/lint.xml b/android/MapboxGLAndroidSDK/lint.xml
index 3a244199a7..3a244199a7 100644
--- a/android/java/MapboxGLAndroidSDK/lint.xml
+++ b/android/MapboxGLAndroidSDK/lint.xml
diff --git a/android/java/MapboxGLAndroidSDK/proguard-rules.pro b/android/MapboxGLAndroidSDK/proguard-rules.pro
index 6853f3ddea..6853f3ddea 100644
--- a/android/java/MapboxGLAndroidSDK/proguard-rules.pro
+++ b/android/MapboxGLAndroidSDK/proguard-rules.pro
diff --git a/android/java/MapboxGLAndroidSDK/src/main/AndroidManifest.xml b/android/MapboxGLAndroidSDK/src/main/AndroidManifest.xml
index 1b8b54c86f..1b8b54c86f 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/AndroidManifest.xml
+++ b/android/MapboxGLAndroidSDK/src/main/AndroidManifest.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/BaseGestureDetector.java b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/BaseGestureDetector.java
index 622e8f759c..622e8f759c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/BaseGestureDetector.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/BaseGestureDetector.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/MoveGestureDetector.java b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/MoveGestureDetector.java
index 2430f3f920..2430f3f920 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/MoveGestureDetector.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/MoveGestureDetector.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/RotateGestureDetector.java b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/RotateGestureDetector.java
index 124fe8509c..124fe8509c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/RotateGestureDetector.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/RotateGestureDetector.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/ShoveGestureDetector.java b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/ShoveGestureDetector.java
index 254597105b..254597105b 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/ShoveGestureDetector.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/ShoveGestureDetector.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/TwoFingerGestureDetector.java b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/TwoFingerGestureDetector.java
index 91e5ef13c8..91e5ef13c8 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/TwoFingerGestureDetector.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/TwoFingerGestureDetector.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/package-info.java
index abc0a11892..abc0a11892 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/almeros/android/multitouch/gesturedetectors/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/MapFragment.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/MapFragment.java
index 92405dc5cc..92405dc5cc 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/MapFragment.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/MapFragment.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Annotation.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Annotation.java
index a83079ac41..a83079ac41 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Annotation.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Annotation.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindow.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindow.java
index 799d01d5c0..799d01d5c0 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindow.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindow.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowTipView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowTipView.java
index 106e11820a..106e11820a 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowTipView.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowTipView.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowView.java
index 9b0a339252..9b0a339252 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowView.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/InfoWindowView.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Marker.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Marker.java
index 4f43f9bfa2..4f43f9bfa2 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Marker.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Marker.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java
index f0c15906e0..f0c15906e0 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerOptions.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MultiPoint.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MultiPoint.java
index 5c1dfb119f..5c1dfb119f 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MultiPoint.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MultiPoint.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polygon.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polygon.java
index 32258943ab..32258943ab 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polygon.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polygon.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolygonOptions.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolygonOptions.java
index 42e80edc2c..42e80edc2c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolygonOptions.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolygonOptions.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polyline.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polyline.java
index 331974c9c6..331974c9c6 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polyline.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Polyline.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolylineOptions.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolylineOptions.java
index 089646696d..089646696d 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolylineOptions.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/PolylineOptions.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Sprite.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Sprite.java
index 597c196d2a..597c196d2a 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Sprite.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Sprite.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/SpriteFactory.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/SpriteFactory.java
index 78f7673f89..78f7673f89 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/SpriteFactory.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/SpriteFactory.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/package-info.java
index 575d10c564..575d10c564 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/GeoConstants.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/GeoConstants.java
index 9e6812eb6b..9e6812eb6b 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/GeoConstants.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/GeoConstants.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java
index 3cd542bb17..3cd542bb17 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MathConstants.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MathConstants.java
index a875fada22..a875fada22 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MathConstants.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MathConstants.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/Style.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/Style.java
index e2dad97832..e2dad97832 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/Style.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/Style.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/package-info.java
index b99119db0a..b99119db0a 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/InvalidAccessTokenException.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/InvalidAccessTokenException.java
index af5a8525a5..af5a8525a5 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/InvalidAccessTokenException.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/InvalidAccessTokenException.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/SpriteBitmapChangedException.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/SpriteBitmapChangedException.java
index 15c6d7eec6..15c6d7eec6 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/SpriteBitmapChangedException.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/SpriteBitmapChangedException.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/TooManySpritesException.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/TooManySpritesException.java
index 02a57ba225..02a57ba225 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/TooManySpritesException.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/TooManySpritesException.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/package-info.java
index d593884ee3..d593884ee3 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/exceptions/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/BoundingBox.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/BoundingBox.java
index e778e30aad..e778e30aad 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/BoundingBox.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/BoundingBox.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateBounds.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateBounds.java
index e5b4b2fdcc..e5b4b2fdcc 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateBounds.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateBounds.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateRegion.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateRegion.java
index a70bb05a41..a70bb05a41 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateRegion.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateRegion.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateSpan.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateSpan.java
index 79361f725a..79361f725a 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateSpan.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/CoordinateSpan.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ILatLng.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ILatLng.java
index 892d0ad4ae..892d0ad4ae 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ILatLng.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ILatLng.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/IProjectedMeters.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/IProjectedMeters.java
index 5aa5f607eb..5aa5f607eb 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/IProjectedMeters.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/IProjectedMeters.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java
index b2a0a02b15..b2a0a02b15 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLngZoom.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLngZoom.java
index 9e453a391c..9e453a391c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLngZoom.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLngZoom.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ProjectedMeters.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ProjectedMeters.java
index be4819a74e..be4819a74e 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ProjectedMeters.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/ProjectedMeters.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/package-info.java
index bf7dae12a8..bf7dae12a8 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPContext.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPContext.java
index 358af8997c..358af8997c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPContext.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPContext.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/package-info.java
index a5dbf30463..a5dbf30463 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/package-info.java
index 474a554463..474a554463 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/ApiAccess.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/ApiAccess.java
index 354bb01855..354bb01855 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/ApiAccess.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/ApiAccess.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/package-info.java
index 9d9c0bf4bb..9d9c0bf4bb 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/CompassView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/CompassView.java
index 174f949916..174f949916 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/CompassView.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/CompassView.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
index e3c3599b68..e3c3599b68 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/NativeMapView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/NativeMapView.java
index da13efcf87..da13efcf87 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/NativeMapView.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/NativeMapView.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/UserLocationView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/UserLocationView.java
index 7453f4e28c..7453f4e28c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/UserLocationView.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/UserLocationView.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/package-info.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/package-info.java
index a17f268c01..a17f268c01 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/package-info.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/package-info.java
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/overview.html b/android/MapboxGLAndroidSDK/src/main/java/overview.html
index 951b8d8e75..951b8d8e75 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/overview.html
+++ b/android/MapboxGLAndroidSDK/src/main/java/overview.html
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res-public/values/public.xml b/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml
index 09dee3752a..09dee3752a 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res-public/values/public.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/color/material_bg_selector.xml b/android/MapboxGLAndroidSDK/src/main/res/color/material_bg_selector.xml
index 64d7f46c2d..64d7f46c2d 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/color/material_bg_selector.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/color/material_bg_selector.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/attribution_logo.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/attribution_logo.png
index c0f4ed2c4c..c0f4ed2c4c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/attribution_logo.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/attribution_logo.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/compass.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/compass.png
index 6bb20027f4..6bb20027f4 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/compass.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/compass.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/default_marker.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/default_marker.png
index 8b0af4c6ab..8b0af4c6ab 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/default_marker.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/default_marker.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_normal.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_normal.png
index de44e3ddc0..de44e3ddc0 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_normal.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_normal.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_pressed.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_pressed.png
index fa26786242..fa26786242 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_pressed.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/ic_info_blue_pressed.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location.png
index 1ae8d541af..1ae8d541af 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_bearing.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_bearing.png
index 8ecaffa2e8..8ecaffa2e8 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_bearing.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_bearing.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_stale.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_stale.png
index 0d599c01fa..0d599c01fa 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_stale.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/user_location_stale.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/attribution_logo.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/attribution_logo.png
index 5a9da3fe39..5a9da3fe39 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/attribution_logo.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/attribution_logo.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/compass.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/compass.png
index cf15ed1876..cf15ed1876 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/compass.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/compass.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/default_marker.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/default_marker.png
index b112096c18..b112096c18 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/default_marker.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/default_marker.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_normal.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_normal.png
index dd50478ac1..dd50478ac1 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_normal.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_normal.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_pressed.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_pressed.png
index d377f3cb8c..d377f3cb8c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_pressed.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/ic_info_blue_pressed.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location.png
index 542cd25e22..542cd25e22 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_bearing.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_bearing.png
index 429f03f648..429f03f648 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_bearing.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_bearing.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_stale.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_stale.png
index 6613c41153..6613c41153 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_stale.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/user_location_stale.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/attribution_logo.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/attribution_logo.png
index 194aa64da2..194aa64da2 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/attribution_logo.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/attribution_logo.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/compass.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/compass.png
index 6257209368..6257209368 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/compass.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/compass.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/default_marker.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/default_marker.png
index d05c82bfe2..d05c82bfe2 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/default_marker.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/default_marker.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_normal.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_normal.png
index df7d7a8875..df7d7a8875 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_normal.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_normal.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_pressed.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_pressed.png
index f5b1833641..f5b1833641 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_pressed.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/ic_info_blue_pressed.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location.png
index ca1f1fe630..ca1f1fe630 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_bearing.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_bearing.png
index 1b88f9f489..1b88f9f489 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_bearing.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_bearing.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_stale.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_stale.png
index 7af3789ff0..7af3789ff0 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_stale.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/user_location_stale.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/attribution_logo.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/attribution_logo.png
index d1260a16f3..d1260a16f3 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/attribution_logo.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/attribution_logo.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/compass.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/compass.png
index c59b4c7528..c59b4c7528 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/compass.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/compass.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/default_marker.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/default_marker.png
index 703b172c15..703b172c15 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/default_marker.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/default_marker.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_normal.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_normal.png
index 0a04d4eaad..0a04d4eaad 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_normal.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_normal.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_pressed.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_pressed.png
index faaef0625d..faaef0625d 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_pressed.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/ic_info_blue_pressed.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location.png
index 6f175df168..6f175df168 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_bearing.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_bearing.png
index f4bb454a06..f4bb454a06 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_bearing.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_bearing.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_stale.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_stale.png
index f1d2f2eca0..f1d2f2eca0 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_stale.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/user_location_stale.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/attribution_logo.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/attribution_logo.png
index 5f9647610a..5f9647610a 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/attribution_logo.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/attribution_logo.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/compass.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/compass.png
index da04f5b94c..da04f5b94c 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/compass.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/compass.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/default_marker.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/default_marker.png
index 8331ffef71..8331ffef71 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/default_marker.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/default_marker.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_normal.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_normal.png
index bcee96deaa..bcee96deaa 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_normal.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_normal.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_pressed.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_pressed.png
index 781263f760..781263f760 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_pressed.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/ic_info_blue_pressed.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location.png
index d43541ac3c..d43541ac3c 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_bearing.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_bearing.png
index a8cccbb3e2..a8cccbb3e2 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_bearing.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_bearing.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_stale.png b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_stale.png
index 33e952391f..33e952391f 100755
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_stale.png
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/user_location_stale.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/drawable/ic_info_selector.xml b/android/MapboxGLAndroidSDK/src/main/res/drawable/ic_info_selector.xml
index 9f550f66d5..9f550f66d5 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/drawable/ic_info_selector.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/drawable/ic_info_selector.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/layout/attribution_list_item.xml b/android/MapboxGLAndroidSDK/src/main/res/layout/attribution_list_item.xml
index 1252fb194f..1252fb194f 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/layout/attribution_list_item.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/layout/attribution_list_item.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/layout/infowindow_content.xml b/android/MapboxGLAndroidSDK/src/main/res/layout/infowindow_content.xml
index 496766ea77..496766ea77 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/layout/infowindow_content.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/layout/infowindow_content.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/layout/infowindow_view.xml b/android/MapboxGLAndroidSDK/src/main/res/layout/infowindow_view.xml
index ff47642426..ff47642426 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/layout/infowindow_view.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/layout/infowindow_view.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/layout/mapview.xml b/android/MapboxGLAndroidSDK/src/main/res/layout/mapview.xml
index 22afd6e513..22afd6e513 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/layout/mapview.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/layout/mapview.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/raw/token.txt b/android/MapboxGLAndroidSDK/src/main/res/raw/token.txt
index ec747fa47d..ec747fa47d 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/raw/token.txt
+++ b/android/MapboxGLAndroidSDK/src/main/res/raw/token.txt
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/values/arrays.xml b/android/MapboxGLAndroidSDK/src/main/res/values/arrays.xml
index 2c1fdf8d13..2c1fdf8d13 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/values/arrays.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/values/arrays.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/values/attrs.xml b/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml
index be946714d6..be946714d6 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/values/attrs.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/values/colors.xml b/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml
index bb1c326a89..bb1c326a89 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/values/colors.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/values/dimens.xml b/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml
index 0881220060..0881220060 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/values/dimens.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/values/strings.xml b/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml
index 0de0715be6..0de0715be6 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/values/strings.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/res/values/styles.xml b/android/MapboxGLAndroidSDK/src/main/res/values/styles.xml
index 9ad12f76ad..9ad12f76ad 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/res/values/styles.xml
+++ b/android/MapboxGLAndroidSDK/src/main/res/values/styles.xml
diff --git a/android/java/MapboxGLAndroidSDK/src/main/resources/fabric/com.mapbox.mapboxsdk.mapbox-android-sdk.properties b/android/MapboxGLAndroidSDK/src/main/resources/fabric/com.mapbox.mapboxsdk.mapbox-android-sdk.properties
index e17088dfdd..e17088dfdd 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/resources/fabric/com.mapbox.mapboxsdk.mapbox-android-sdk.properties
+++ b/android/MapboxGLAndroidSDK/src/main/resources/fabric/com.mapbox.mapboxsdk.mapbox-android-sdk.properties
diff --git a/android/java/MapboxGLAndroidSDKTestApp/README.md b/android/MapboxGLAndroidSDKTestApp/README.md
index 646f29c4b4..646f29c4b4 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/README.md
+++ b/android/MapboxGLAndroidSDKTestApp/README.md
diff --git a/android/java/MapboxGLAndroidSDKTestApp/build.gradle b/android/MapboxGLAndroidSDKTestApp/build.gradle
index a220252fa4..a220252fa4 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/build.gradle
+++ b/android/MapboxGLAndroidSDKTestApp/build.gradle
diff --git a/android/java/MapboxGLAndroidSDKTestApp/lint.xml b/android/MapboxGLAndroidSDKTestApp/lint.xml
index 94058fd4df..94058fd4df 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/lint.xml
+++ b/android/MapboxGLAndroidSDKTestApp/lint.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/proguard-rules.pro b/android/MapboxGLAndroidSDKTestApp/proguard-rules.pro
index 578d946927..578d946927 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/proguard-rules.pro
+++ b/android/MapboxGLAndroidSDKTestApp/proguard-rules.pro
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BaseTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BaseTest.java
index e432d5f576..e432d5f576 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BaseTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BaseTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivityTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivityTest.java
index d66ae8f514..d66ae8f514 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivityTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivityTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivityTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivityTest.java
index 9fb99fe262..9fb99fe262 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivityTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivityTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivityTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivityTest.java
index 51bd163fc1..51bd163fc1 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivityTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivityTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java
index bbfa4ec73a..bbfa4ec73a 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java
index c545bc118b..c545bc118b 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivityTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivityTest.java
index e65860f4b2..e65860f4b2 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivityTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivityTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivityTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivityTest.java
index ccb8354fc5..ccb8354fc5 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivityTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivityTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java
index 29ed3fa53a..29ed3fa53a 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ScreenshotUtil.java b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ScreenshotUtil.java
index d25afec815..d25afec815 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ScreenshotUtil.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ScreenshotUtil.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
index 846a19ed88..846a19ed88 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/dog-park-24.png b/android/MapboxGLAndroidSDKTestApp/src/main/assets/dog-park-24.png
index 235f4b4d34..235f4b4d34 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/dog-park-24.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/assets/dog-park-24.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/points.geojson b/android/MapboxGLAndroidSDKTestApp/src/main/assets/points.geojson
index a34f53bd36..a34f53bd36 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/points.geojson
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/assets/points.geojson
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/small_line.geojson b/android/MapboxGLAndroidSDKTestApp/src/main/assets/small_line.geojson
index ef76eaf56d..ef76eaf56d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/small_line.geojson
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/assets/small_line.geojson
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/small_poly.geojson b/android/MapboxGLAndroidSDKTestApp/src/main/assets/small_poly.geojson
index ec61303c72..ec61303c72 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/assets/small_poly.geojson
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/assets/small_poly.geojson
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java
index 3bddf4e32e..3bddf4e32e 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java
index f53f923b0e..f53f923b0e 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java
index 0a489edaa1..0a489edaa1 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java
index 50c70b5f5e..50c70b5f5e 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java
index 2eadedca2a..2eadedca2a 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivity.java
index b24ef84cad..b24ef84cad 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PressForMarkerActivity.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TimingLogger.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TimingLogger.java
index de8c4df303..de8c4df303 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TimingLogger.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TimingLogger.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java
index 4e4618cd28..4e4618cd28 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivity.java
index 413acf9328..413acf9328 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivity.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivity.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_blur_on_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_blur_on_white_24dp.png
index 3b450909f7..3b450909f7 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_blur_on_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_blur_on_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_crop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_crop_white_24dp.png
index 9bfca35815..9bfca35815 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_crop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_crop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_filter_none_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_filter_none_white_24dp.png
index 3d01316bb4..3d01316bb4 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_filter_none_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_filter_none_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_back_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_back_white_24dp.png
index 59a66c164d..59a66c164d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_back_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_back_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_front_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_front_white_24dp.png
index 5ee83ad6bb..5ee83ad6bb 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_front_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_flip_to_front_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_location_city_black_48dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_location_city_black_48dp.png
index c542d2aa76..c542d2aa76 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_location_city_black_48dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_location_city_black_48dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_menu.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_menu.png
index 8962cbd91f..8962cbd91f 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_menu.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_menu.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_my_location_black_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_my_location_black_24dp.png
index 85e38726dd..85e38726dd 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_my_location_black_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_my_location_black_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_pin_drop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_pin_drop_white_24dp.png
index d545f6f157..d545f6f157 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_pin_drop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_pin_drop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_widgets_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_widgets_white_24dp.png
index 81c6a155b3..81c6a155b3 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_widgets_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/ic_widgets_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon.png
index f9875161da..f9875161da 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon_burned.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon_burned.png
index f9875161da..f9875161da 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon_burned.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-hdpi/icon_burned.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_blur_on_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_blur_on_white_24dp.png
index 07a55769b8..07a55769b8 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_blur_on_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_blur_on_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_crop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_crop_white_24dp.png
index 8e78d8e9e4..8e78d8e9e4 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_crop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_crop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_filter_none_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_filter_none_white_24dp.png
index 037f444f4c..037f444f4c 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_filter_none_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_filter_none_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_back_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_back_white_24dp.png
index ddae8520f8..ddae8520f8 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_back_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_back_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_front_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_front_white_24dp.png
index 9a178ebd28..9a178ebd28 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_front_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_flip_to_front_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_location_city_black_48dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_location_city_black_48dp.png
index 06853dd255..06853dd255 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_location_city_black_48dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_location_city_black_48dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_menu.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_menu.png
index c62db8c865..c62db8c865 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_menu.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_menu.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_my_location_black_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_my_location_black_24dp.png
index 5684aa7dc5..5684aa7dc5 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_my_location_black_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_my_location_black_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_pin_drop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_pin_drop_white_24dp.png
index 523fd09996..523fd09996 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_pin_drop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_pin_drop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_widgets_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_widgets_white_24dp.png
index 9b8c1c57ba..9b8c1c57ba 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_widgets_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/ic_widgets_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon.png
index 3c0cc701a0..3c0cc701a0 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon_burned.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon_burned.png
index 3c0cc701a0..3c0cc701a0 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon_burned.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-mdpi/icon_burned.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_blur_on_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_blur_on_white_24dp.png
index e3517362e4..e3517362e4 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_blur_on_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_blur_on_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_crop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_crop_white_24dp.png
index 859cdf78bb..859cdf78bb 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_crop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_crop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_filter_none_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_filter_none_white_24dp.png
index f4e8257672..f4e8257672 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_filter_none_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_filter_none_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_back_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_back_white_24dp.png
index e5629e54ac..e5629e54ac 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_back_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_back_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_front_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_front_white_24dp.png
index f396bda878..f396bda878 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_front_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_flip_to_front_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_location_city_black_48dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_location_city_black_48dp.png
index 5b5fd9a19d..5b5fd9a19d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_location_city_black_48dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_location_city_black_48dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_menu.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_menu.png
index 36859f094a..36859f094a 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_menu.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_menu.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_my_location_black_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_my_location_black_24dp.png
index 7faa3455f6..7faa3455f6 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_my_location_black_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_my_location_black_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_pin_drop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_pin_drop_white_24dp.png
index 5cebaab818..5cebaab818 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_pin_drop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_pin_drop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_widgets_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_widgets_white_24dp.png
index d1aad0bd12..d1aad0bd12 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_widgets_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/ic_widgets_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon.png
index 0cbf599362..0cbf599362 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon_burned.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon_burned.png
index 0cbf599362..0cbf599362 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon_burned.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xhdpi/icon_burned.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_blur_on_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_blur_on_white_24dp.png
index d465660d97..d465660d97 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_blur_on_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_blur_on_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_crop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_crop_white_24dp.png
index c0246cf2a6..c0246cf2a6 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_crop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_crop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_filter_none_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_filter_none_white_24dp.png
index 45fd67df58..45fd67df58 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_filter_none_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_filter_none_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_back_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_back_white_24dp.png
index f4717be70d..f4717be70d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_back_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_back_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_front_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_front_white_24dp.png
index 9b78ad3780..9b78ad3780 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_front_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_flip_to_front_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_location_city_black_48dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_location_city_black_48dp.png
index 0b2b64745d..0b2b64745d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_location_city_black_48dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_location_city_black_48dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_menu.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_menu.png
index 1a5109828f..1a5109828f 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_menu.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_menu.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_my_location_black_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_my_location_black_24dp.png
index d3a1ab08c8..d3a1ab08c8 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_my_location_black_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_my_location_black_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_pin_drop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_pin_drop_white_24dp.png
index abd6966825..abd6966825 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_pin_drop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_pin_drop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_widgets_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_widgets_white_24dp.png
index fd21e813e2..fd21e813e2 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_widgets_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_widgets_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon.png
index 6ac3191ebf..6ac3191ebf 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon_burned.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon_burned.png
index 6ac3191ebf..6ac3191ebf 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon_burned.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/icon_burned.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_blur_on_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_blur_on_white_24dp.png
index 3690a1d045..3690a1d045 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_blur_on_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_blur_on_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_crop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_crop_white_24dp.png
index 3c027ef29c..3c027ef29c 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_crop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_crop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_filter_none_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_filter_none_white_24dp.png
index 8102725a5e..8102725a5e 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_filter_none_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_filter_none_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_back_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_back_white_24dp.png
index 7c3d8d3669..7c3d8d3669 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_back_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_back_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_front_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_front_white_24dp.png
index d07d0ca9ab..d07d0ca9ab 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_front_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_flip_to_front_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_location_city_black_48dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_location_city_black_48dp.png
index f9654a9a67..f9654a9a67 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_location_city_black_48dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_location_city_black_48dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_menu.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_menu.png
index c15d634671..c15d634671 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_menu.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_menu.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_my_location_black_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_my_location_black_24dp.png
index 0812b0e31d..0812b0e31d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_my_location_black_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_my_location_black_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_pin_drop_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_pin_drop_white_24dp.png
index 09dc9a6813..09dc9a6813 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_pin_drop_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_pin_drop_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_widgets_white_24dp.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_widgets_white_24dp.png
index 00806a2fa3..00806a2fa3 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_widgets_white_24dp.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/ic_widgets_white_24dp.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon.png
index 987e6b0247..987e6b0247 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon_burned.png b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon_burned.png
index 987e6b0247..987e6b0247 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon_burned.png
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxxhdpi/icon_burned.png
Binary files differ
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml
index b84f05143d..b84f05143d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml
index 371219cb5d..371219cb5d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml
index b97fb4fcae..b97fb4fcae 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml
index 77afd256a2..77afd256a2 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml
index 40216524e0..40216524e0 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_press_for_marker.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_press_for_marker.xml
index 8dfa1943c9..8dfa1943c9 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_press_for_marker.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_press_for_marker.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_visible_bounds.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_visible_bounds.xml
index 5b5d5d2fa0..5b5d5d2fa0 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_visible_bounds.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_visible_bounds.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml
index 5167182a44..5167182a44 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_main.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_main.xml
index 2c5178af08..2c5178af08 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_main.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_main.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/colors.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/colors.xml
index ac3b4fc30d..ac3b4fc30d 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/colors.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/colors.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml
index ec0e973cb8..ec0e973cb8 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
index 94c089146a..94c089146a 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/styles.xml b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/styles.xml
index 9248bc7d00..9248bc7d00 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/styles.xml
+++ b/android/MapboxGLAndroidSDKTestApp/src/main/res/values/styles.xml
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/BoundingBoxTest.java b/android/MapboxGLAndroidSDKTestApp/src/test/java/BoundingBoxTest.java
index f03766c9e5..f03766c9e5 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/BoundingBoxTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/test/java/BoundingBoxTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateBoundsTest.java b/android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateBoundsTest.java
index a5d3891305..a5d3891305 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateBoundsTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateBoundsTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateRegionTest.java b/android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateRegionTest.java
index 4690bd719b..4690bd719b 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateRegionTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateRegionTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateSpanTest.java b/android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateSpanTest.java
index ef10c5bed1..ef10c5bed1 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateSpanTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/test/java/CoordinateSpanTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java b/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java
index dd075f327f..dd075f327f 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/LatLngZoomTest.java b/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngZoomTest.java
index 5aa42459fb..5aa42459fb 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/LatLngZoomTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngZoomTest.java
diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/ProjectedMetersTest.java b/android/MapboxGLAndroidSDKTestApp/src/test/java/ProjectedMetersTest.java
index c79d2dfe3e..c79d2dfe3e 100644
--- a/android/java/MapboxGLAndroidSDKTestApp/src/test/java/ProjectedMetersTest.java
+++ b/android/MapboxGLAndroidSDKTestApp/src/test/java/ProjectedMetersTest.java
diff --git a/android/java/build.gradle b/android/build.gradle
index 4093fc84b2..4093fc84b2 100644
--- a/android/java/build.gradle
+++ b/android/build.gradle
diff --git a/android/java/checks.xml b/android/checks.xml
index 0ee2716786..0ee2716786 100644
--- a/android/java/checks.xml
+++ b/android/checks.xml
diff --git a/android/cpp/jni.cpp b/android/cpp/jni.cpp
deleted file mode 100644
index d0d3ea2970..0000000000
--- a/android/cpp/jni.cpp
+++ /dev/null
@@ -1,2199 +0,0 @@
-#include <cstdint>
-#include <cinttypes>
-#include <cassert>
-
-#include <string>
-#include <locale>
-#include <codecvt>
-#include <array>
-#include <vector>
-
-#include <jni.h>
-
-#include <android/native_window_jni.h>
-#include <sys/system_properties.h>
-
-#include <mbgl/android/jni.hpp>
-#include <mbgl/android/native_map_view.hpp>
-#include <mbgl/map/map.hpp>
-#include <mbgl/map/camera.hpp>
-#include <mbgl/annotation/point_annotation.hpp>
-#include <mbgl/annotation/shape_annotation.hpp>
-#include <mbgl/annotation/sprite_image.hpp>
-#include <mbgl/platform/event.hpp>
-#include <mbgl/platform/log.hpp>
-#include <mbgl/storage/network_status.hpp>
-
-#pragma clang diagnostic ignored "-Wunused-parameter"
-
-namespace mbgl {
-namespace android {
-
-JavaVM* theJVM;
-
-std::string cachePath;
-std::string dataPath;
-std::string apkPath;
-std::string androidRelease;
-
-jmethodID onInvalidateId = nullptr;
-jmethodID onMapChangedId = nullptr;
-jmethodID onFpsChangedId = nullptr;
-
-jclass latLngClass = nullptr;
-jmethodID latLngConstructorId = nullptr;
-jfieldID latLngLatitudeId = nullptr;
-jfieldID latLngLongitudeId = nullptr;
-
-jclass latLngZoomClass = nullptr;
-jmethodID latLngZoomConstructorId = nullptr;
-jfieldID latLngZoomLatitudeId = nullptr;
-jfieldID latLngZoomLongitudeId = nullptr;
-jfieldID latLngZoomZoomId = nullptr;
-
-jclass bboxClass = nullptr;
-jmethodID bboxConstructorId = nullptr;
-jfieldID bboxLatNorthId = nullptr;
-jfieldID bboxLatSouthId = nullptr;
-jfieldID bboxLonEastId = nullptr;
-jfieldID bboxLonWestId = nullptr;
-
-jclass spriteClass = nullptr;
-jfieldID spriteIdId = nullptr;
-
-jclass markerClass = nullptr;
-jfieldID markerPositionId = nullptr;
-jfieldID markerIconId = nullptr;
-
-jclass polylineClass = nullptr;
-jfieldID polylineAlphaId = nullptr;
-jfieldID polylineColorId = nullptr;
-jfieldID polylineWidthId = nullptr;
-jfieldID polylinePointsId = nullptr;
-
-jclass polygonClass = nullptr;
-jfieldID polygonAlphaId = nullptr;
-jfieldID polygonFillColorId = nullptr;
-jfieldID polygonStrokeColorId = nullptr;
-jfieldID polygonPointsId = nullptr;
-
-jclass runtimeExceptionClass = nullptr;
-jclass nullPointerExceptionClass = nullptr;
-
-jmethodID listToArrayId = nullptr;
-
-jclass arrayListClass = nullptr;
-jmethodID arrayListConstructorId = nullptr;
-jmethodID arrayListAddId = nullptr;
-
-jclass projectedMetersClass = nullptr;
-jmethodID projectedMetersConstructorId = nullptr;
-jfieldID projectedMetersNorthingId = nullptr;
-jfieldID projectedMetersEastingId = nullptr;
-
-jclass pointFClass = nullptr;
-jmethodID pointFConstructorId = nullptr;
-jfieldID pointFXId = nullptr;
-jfieldID pointFYId = nullptr;
-
-jclass rectFClass = nullptr;
-jmethodID rectFConstructorId = nullptr;
-jfieldID rectFLeftId = nullptr;
-jfieldID rectFTopId = nullptr;
-jfieldID rectFRightId = nullptr;
-jfieldID rectFBottomId = nullptr;
-
-jclass httpContextClass = nullptr;
-jmethodID httpContextGetInstanceId = nullptr;
-jmethodID httpContextCreateRequestId = nullptr;
-
-jclass httpRequestClass = nullptr;
-jmethodID httpRequestStartId = nullptr;
-jmethodID httpRequestCancelId = nullptr;
-
-bool throw_jni_error(JNIEnv *env, const char *msg) {
- if (env->ThrowNew(runtimeExceptionClass, msg) < 0) {
- env->ExceptionDescribe();
- return false;
- }
-
- return true;
-}
-
-bool attach_jni_thread(JavaVM* vm, JNIEnv** env, std::string threadName) {
- assert(vm != nullptr);
- assert(env != nullptr);
-
- JavaVMAttachArgs args = {JNI_VERSION_1_2, threadName.c_str(), NULL};
-
- jint ret;
- *env = nullptr;
- bool detach = false;
- ret = vm->GetEnv(reinterpret_cast<void **>(env), JNI_VERSION_1_6);
- if (ret != JNI_OK) {
- if (ret != JNI_EDETACHED) {
- mbgl::Log::Error(mbgl::Event::JNI, "GetEnv() failed with %i", ret);
- throw new std::runtime_error("GetEnv() failed");
- } else {
- ret = vm->AttachCurrentThread(env, &args);
- if (ret != JNI_OK) {
- mbgl::Log::Error(mbgl::Event::JNI, "AttachCurrentThread() failed with %i", ret);
- throw new std::runtime_error("AttachCurrentThread() failed");
- }
- detach = true;
- }
- }
-
- return detach;
-}
-
-void detach_jni_thread(JavaVM* vm, JNIEnv** env, bool detach) {
- if (detach) {
- assert(vm != nullptr);
- assert(env != nullptr);
-
- jint ret;
- if ((ret = vm->DetachCurrentThread()) != JNI_OK) {
- mbgl::Log::Error(mbgl::Event::JNI, "DetachCurrentThread() failed with %i", ret);
- throw new std::runtime_error("DetachCurrentThread() failed");
- }
- }
- *env = nullptr;
-}
-
-std::string std_string_from_jstring(JNIEnv *env, jstring jstr) {
- std::string str;
-
- if (jstr == nullptr) {
- if (env->ThrowNew(nullPointerExceptionClass, "String cannot be null.") < 0) {
- env->ExceptionDescribe();
- return str;
- }
-
- return str;
- }
-
- jsize len = env->GetStringLength(jstr);
- if (len < 0) {
- env->ExceptionDescribe();
- return str;
- }
-
- const jchar *chars = env->GetStringChars(jstr, nullptr);
- if (chars == nullptr) {
- env->ExceptionDescribe();
- return str;
- }
-
- std::u16string ustr(reinterpret_cast<const char16_t *>(chars), len);
- env->ReleaseStringChars(jstr, chars);
- chars = nullptr;
- str = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>().to_bytes(ustr);
- return str;
-}
-
-jstring std_string_to_jstring(JNIEnv *env, std::string str) {
- std::u16string ustr =
- std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>().from_bytes(str);
-
- jstring jstr = env->NewString(reinterpret_cast<const jchar *>(ustr.c_str()), ustr.size());
- if (jstr == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return jstr;
-}
-
-std::vector<std::string> std_vector_string_from_jobject(JNIEnv *env, jobject jlist) {
- std::vector<std::string> vector;
-
- if (jlist == nullptr) {
- if (env->ThrowNew(nullPointerExceptionClass, "List cannot be null.") < 0) {
- env->ExceptionDescribe();
- return vector;
- }
-
- return vector;
- }
-
- jobjectArray jarray =
- reinterpret_cast<jobjectArray>(env->CallObjectMethod(jlist, listToArrayId));
- if (env->ExceptionCheck() || (jarray == nullptr)) {
- env->ExceptionDescribe();
- return vector;
- }
-
- jsize len = env->GetArrayLength(jarray);
- if (len < 0) {
- env->ExceptionDescribe();
- return vector;
- }
-
- for (jsize i = 0; i < len; i++) {
- jstring jstr = reinterpret_cast<jstring>(env->GetObjectArrayElement(jarray, i));
- if (jstr == nullptr) {
- env->ExceptionDescribe();
- return vector;
- }
-
- vector.push_back(std_string_from_jstring(env, jstr));
- }
-
- env->DeleteLocalRef(jarray);
- jarray = nullptr;
-
- return vector;
-}
-
-jobject std_vector_string_to_jobject(JNIEnv *env, std::vector<std::string> vector) {
- jobject jlist = env->NewObject(arrayListClass, arrayListConstructorId);
- if (jlist == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- for (const auto& str : vector) {
- env->CallBooleanMethod(jlist, arrayListAddId, std_string_to_jstring(env, str));
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
- }
-
- return jlist;
-}
-
-jlongArray std_vector_uint_to_jobject(JNIEnv *env, std::vector<uint32_t> vector) {
- jlongArray jarray = env->NewLongArray(vector.size());
- if (jarray == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- std::vector<jlong> v;
- for (const uint32_t& id : vector) {
- v.push_back((jlong)id);
- }
-
- env->SetLongArrayRegion(jarray, 0, v.size(), &(v[0]));
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return jarray;
-}
-
-mbgl::AnnotationSegment annotation_segment_from_latlng_jlist(JNIEnv *env, jobject jlist) {
- mbgl::AnnotationSegment segment;
-
- if (jlist == nullptr) {
- if (env->ThrowNew(nullPointerExceptionClass, "List cannot be null.") < 0) {
- env->ExceptionDescribe();
- return segment;
- }
- return segment;
- }
-
- jobjectArray jarray =
- reinterpret_cast<jobjectArray>(env->CallObjectMethod(jlist, listToArrayId));
- if (env->ExceptionCheck() || (jarray == nullptr)) {
- env->ExceptionDescribe();
- return segment;
- }
-
- jsize len = env->GetArrayLength(jarray);
- if (len < 0) {
- env->ExceptionDescribe();
- return segment;
- }
-
- segment.reserve(len);
-
- for (jsize i = 0; i < len; i++) {
- jobject latLng = reinterpret_cast<jobject>(env->GetObjectArrayElement(jarray, i));
- if (latLng == nullptr) {
- env->ExceptionDescribe();
- return segment;
- }
-
- jdouble latitude = env->GetDoubleField(latLng, latLngLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return segment;
- }
-
- jdouble longitude = env->GetDoubleField(latLng, latLngLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return segment;
- }
-
- segment.push_back(mbgl::LatLng(latitude, longitude));
- env->DeleteLocalRef(latLng);
- }
-
- env->DeleteLocalRef(jarray);
- jarray = nullptr;
-
- return segment;
-}
-
-std::pair<mbgl::AnnotationSegment, mbgl::ShapeAnnotation::Properties> annotation_std_pair_from_polygon_jobject(JNIEnv *env, jobject polygon) {
- jfloat alpha = env->GetFloatField(polygon, polygonAlphaId);
- jint fillColor = env->GetIntField(polygon, polygonFillColorId);
- jint strokeColor = env->GetIntField(polygon, polygonStrokeColorId);
-
- int rF = (fillColor >> 16) & 0xFF;
- int gF = (fillColor >> 8) & 0xFF;
- int bF = (fillColor) & 0xFF;
- int aF = (fillColor >> 24) & 0xFF;
-
- int rS = (strokeColor >> 16) & 0xFF;
- int gS = (strokeColor >> 8) & 0xFF;
- int bS = (strokeColor) & 0xFF;
- int aS = (strokeColor >> 24) & 0xFF;
-
- mbgl::ShapeAnnotation::Properties shapeProperties;
- mbgl::FillPaintProperties fillProperties;
- fillProperties.opacity = alpha;
- fillProperties.stroke_color = {{ static_cast<float>(rS) / 255.0f, static_cast<float>(gS) / 255.0f, static_cast<float>(bS) / 255.0f, static_cast<float>(aS) / 255.0f }};
- fillProperties.fill_color = {{ static_cast<float>(rF) / 255.0f, static_cast<float>(gF) / 255.0f, static_cast<float>(bF) / 255.0f, static_cast<float>(aF) / 255.0f }};
- shapeProperties.set<mbgl::FillPaintProperties>(fillProperties);
-
- jobject points = env->GetObjectField(polygon, polygonPointsId);
- mbgl::AnnotationSegment segment = annotation_segment_from_latlng_jlist(env, points);
- env->DeleteLocalRef(points);
-
- return std::make_pair(segment, shapeProperties);
-}
-
-}
-}
-
-namespace {
-
-using namespace mbgl::android;
-
-jlong JNICALL nativeCreate(JNIEnv *env, jobject obj, jstring cachePath_, jstring dataPath_, jstring apkPath_, jfloat pixelRatio, jint availableProcessors, jlong totalMemory) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeCreate");
- cachePath = std_string_from_jstring(env, cachePath_);
- dataPath = std_string_from_jstring(env, dataPath_);
- apkPath = std_string_from_jstring(env, apkPath_);
- NativeMapView *nativeMapView = new NativeMapView(env, obj, pixelRatio, availableProcessors, totalMemory);
- jlong mapViewPtr = reinterpret_cast<jlong>(nativeMapView);
- return mapViewPtr;
-}
-
-void JNICALL nativeDestroy(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeDestroy");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- delete nativeMapView;
- nativeMapView = nullptr;
-}
-
-void JNICALL nativeInitializeDisplay(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeInitializeDisplay");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- try
- {
- nativeMapView->initializeDisplay();
- } catch(const std::exception& e) {
- throw_jni_error(env, "Unable to initialize GL display.");
- }
-}
-
-void JNICALL nativeTerminateDisplay(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeTerminateDisplay");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->terminateDisplay();
-}
-
-void JNICALL nativeInitializeContext(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeInitializeContext");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- try {
- nativeMapView->initializeContext();
- } catch(const std::exception& e) {
- throw_jni_error(env, "Unable to initialize GL context.");
- }
-}
-
-void JNICALL nativeTerminateContext(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeTerminateContext");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->terminateContext();
-}
-
-void JNICALL nativeCreateSurface(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject surface) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeCreateSurface");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- try {
- nativeMapView->createSurface(ANativeWindow_fromSurface(env, surface));
- } catch(const std::exception& e) {
- throw_jni_error(env, "Unable to create GL surface.");
- }
-}
-
-void JNICALL nativeDestroySurface(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeDestroySurface");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->destroySurface();
-}
-
-void JNICALL nativePause(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativePause");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->pause();
-}
-
-jboolean JNICALL nativeIsPaused(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeIsPaused");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().isPaused();
-}
-
-void JNICALL nativeResume(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeResume");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->resume();
-}
-
-void JNICALL nativeUpdate(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeUpdate");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().update(mbgl::Update::Repaint);
-}
-
-void JNICALL nativeRenderSync(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeRenderSync");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().renderSync();
-}
-
-void JNICALL nativeViewResize(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jint width, jint height) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeViewResize");
- assert(nativeMapViewPtr != 0);
- assert(width >= 0);
- assert(height >= 0);
- assert(width <= UINT16_MAX);
- assert(height <= UINT16_MAX);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->resizeView(width, height);
-}
-
-void JNICALL nativeFramebufferResize(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jint fbWidth, jint fbHeight) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeFramebufferResize");
- assert(nativeMapViewPtr != 0);
- assert(fbWidth >= 0);
- assert(fbHeight >= 0);
- assert(fbWidth <= UINT16_MAX);
- assert(fbHeight <= UINT16_MAX);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->resizeFramebuffer(fbWidth, fbHeight);
-}
-
-void JNICALL nativeRemoveClass(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jstring clazz) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeRemoveClass");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().removeClass(std_string_from_jstring(env, clazz));
-}
-
-jboolean JNICALL nativeHasClass(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jstring clazz) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeHasClass");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().hasClass(std_string_from_jstring(env, clazz));
-}
-
-void JNICALL nativeAddClass(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jstring clazz) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddClass");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().addClass(std_string_from_jstring(env, clazz));
-}
-
-void JNICALL nativeSetClasses(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject classes) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetClasses");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setClasses(std_vector_string_from_jobject(env, classes));
-}
-
-jobject JNICALL nativeGetClasses(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetClasses");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return std_vector_string_to_jobject(env, nativeMapView->getMap().getClasses());
-}
-
-void JNICALL nativeSetDefaultTransitionDuration(JNIEnv *env, jobject obj, jlong nativeMapViewPtr,
- jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetDefaultTransitionDuration");
- assert(nativeMapViewPtr != 0);
- assert(duration >= 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setDefaultTransitionDuration(std::chrono::milliseconds(duration));
-}
-
-jlong JNICALL nativeGetDefaultTransitionDuration(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetDefaultTransitionDuration");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return std::chrono::duration_cast<std::chrono::milliseconds>(nativeMapView->getMap().getDefaultTransitionDuration()).count();
-}
-
-void JNICALL nativeSetStyleURL(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jstring url) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetStyleURL");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setStyleURL(std_string_from_jstring(env, url));
-}
-
-void JNICALL nativeSetStyleJSON(JNIEnv *env, jobject obj, jlong nativeMapViewPtr,
- jstring newStyleJson, jstring base) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetStyleJSON");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setStyleJSON(std_string_from_jstring(env, newStyleJson),
- std_string_from_jstring(env, base));
-}
-
-jstring JNICALL nativeGetStyleJSON(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetStyleJSON");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return std_string_to_jstring(env, nativeMapView->getMap().getStyleJSON());
-}
-
-void JNICALL nativeSetAccessToken(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jstring accessToken) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetAccessToken");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getFileSource().setAccessToken(std_string_from_jstring(env, accessToken));
-}
-
-jstring JNICALL nativeGetAccessToken(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetAccessToken");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return std_string_to_jstring(env, nativeMapView->getFileSource().getAccessToken());
-}
-
-void JNICALL nativeCancelTransitions(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeCancelTransitions");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().cancelTransitions();
-}
-
-void JNICALL nativeSetGestureInProgress(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jboolean inProgress) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetGestureInProgress");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setGestureInProgress(inProgress);
-}
-
-void JNICALL nativeMoveBy(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble dx, jdouble dy,
- jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeMoveBy");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().moveBy(dx, dy, std::chrono::milliseconds(duration));
-}
-
-void JNICALL nativeSetLatLng(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject latLng,
- jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetLatLng");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jdouble latitude = env->GetDoubleField(latLng, latLngLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- jdouble longitude = env->GetDoubleField(latLng, latLngLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- nativeMapView->getMap().setLatLng(mbgl::LatLng(latitude, longitude), std::chrono::milliseconds(duration));
-}
-
-jobject JNICALL nativeGetLatLng(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetLatLng");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- mbgl::LatLng latLng = nativeMapView->getMap().getLatLng();
-
- jobject ret = env->NewObject(latLngClass, latLngConstructorId, latLng.latitude, latLng.longitude);
- if (ret == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return ret;
-}
-
-void JNICALL nativeResetPosition(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeResetPosition");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().resetPosition();
-}
-
-void JNICALL nativeScaleBy(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble ds, jdouble cx,
- jdouble cy, jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeScaleBy");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().scaleBy(ds, cx, cy, std::chrono::milliseconds(duration));
-}
-
-void JNICALL nativeSetScale(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble scale,
- jdouble cx, jdouble cy, jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetScale");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setScale(scale, cx, cy, std::chrono::milliseconds(duration));
-}
-
-jdouble JNICALL nativeGetScale(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetScale");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getScale();
-}
-
-void JNICALL nativeSetZoom(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble zoom, jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetZoom");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setZoom(zoom, std::chrono::milliseconds(duration));
-}
-
-jdouble JNICALL nativeGetZoom(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetZoom");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getZoom();
-}
-
-void JNICALL nativeSetLatLngZoom(JNIEnv *env, jobject obj, jlong nativeMapViewPtr,
- jobject latLngZoom, jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetLatLngZoom");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jdouble latitude = env->GetDoubleField(latLngZoom, latLngZoomLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- jdouble longitude = env->GetDoubleField(latLngZoom, latLngZoomLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- jdouble zoom = env->GetDoubleField(latLngZoom, latLngZoomZoomId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- nativeMapView->getMap().setLatLngZoom(mbgl::LatLng(latitude, longitude), zoom, std::chrono::milliseconds(duration));
-}
-
-jobject JNICALL nativeGetLatLngZoom(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetLatLngZoom");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- mbgl::LatLng latLng = nativeMapView->getMap().getLatLng();
- jdouble zoom = nativeMapView->getMap().getZoom();
-
- jobject ret = env->NewObject(latLngZoomClass, latLngZoomConstructorId, latLng.longitude, latLng.latitude, zoom);
- if (ret == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return ret;
-}
-
-void JNICALL nativeResetZoom(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeResetZoom");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().resetZoom();
-}
-
-jdouble JNICALL nativeGetMinZoom(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetMinZoom");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getMinZoom();
-}
-
-jdouble JNICALL nativeGetMaxZoom(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetMaxZoom");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getMaxZoom();
-}
-
-void JNICALL nativeRotateBy(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble sx,
- jdouble sy, jdouble ex, jdouble ey, jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeRotateBy");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().rotateBy(sx, sy, ex, ey, std::chrono::milliseconds(duration));
-}
-
-void JNICALL nativeSetBearing(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble degrees,
- jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetBearing");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setBearing(degrees, std::chrono::milliseconds(duration));
-}
-
-void JNICALL nativeSetBearing(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble degrees,
- jdouble cx, jdouble cy) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetBearing");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setBearing(degrees, cx, cy);
-}
-
-jdouble JNICALL nativeGetBearing(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetBearing");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getBearing();
-}
-
-void JNICALL nativeResetNorth(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeResetNorth");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().resetNorth();
-}
-
-jlong JNICALL nativeAddMarker(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject marker) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddMarker");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jobject position = env->GetObjectField(marker, markerPositionId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- jobject icon = env->GetObjectField(marker, markerIconId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- jstring jid = reinterpret_cast<jstring>(env->GetObjectField(icon, spriteIdId));
- std::string id = std_string_from_jstring(env, jid);
-
- jdouble latitude = env->GetDoubleField(position, latLngLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- jdouble longitude = env->GetDoubleField(position, latLngLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- // Because Java only has int, not unsigned int, we need to bump the annotation id up to a long.
- return nativeMapView->getMap().addPointAnnotation(mbgl::PointAnnotation(mbgl::LatLng(latitude, longitude), id));
-}
-
-jlongArray JNICALL nativeAddMarkers(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject jlist) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddMarkers");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- std::vector<mbgl::PointAnnotation> markers;
-
- if (jlist == nullptr) {
- if (env->ThrowNew(nullPointerExceptionClass, "List cannot be null.") < 0) {
- env->ExceptionDescribe();
- return nullptr;
- }
- return nullptr;
- }
-
- jobjectArray jarray =
- reinterpret_cast<jobjectArray>(env->CallObjectMethod(jlist, listToArrayId));
- if (env->ExceptionCheck() || (jarray == nullptr)) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jsize len = env->GetArrayLength(jarray);
- if (len < 0) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- markers.reserve(len);
-
- for (jsize i = 0; i < len; i++) {
- jobject marker = reinterpret_cast<jobject>(env->GetObjectArrayElement(jarray, i));
-
- jobject position = env->GetObjectField(marker, markerPositionId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jobject icon = env->GetObjectField(marker, markerIconId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
- env->DeleteLocalRef(marker);
-
- jstring jid = reinterpret_cast<jstring>(env->GetObjectField(icon, spriteIdId));
- env->DeleteLocalRef(icon);
-
- std::string id = std_string_from_jstring(env, jid);
- env->DeleteLocalRef(jid);
-
- jdouble latitude = env->GetDoubleField(position, latLngLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble longitude = env->GetDoubleField(position, latLngLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
- env->DeleteLocalRef(position);
-
- markers.emplace_back(mbgl::PointAnnotation(mbgl::LatLng(latitude, longitude), id));
- }
-
- env->DeleteLocalRef(jarray);
-
- std::vector<uint32_t> pointAnnotationIDs = nativeMapView->getMap().addPointAnnotations(markers);
- return std_vector_uint_to_jobject(env, pointAnnotationIDs);
-}
-
-
-jlong JNICALL nativeAddPolyline(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject polyline) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddPolyline");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jfloat alpha = env->GetFloatField(polyline, polylineAlphaId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- jint color = env->GetIntField(polyline, polylineColorId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- int r = (color >> 16) & 0xFF;
- int g = (color >> 8) & 0xFF;
- int b = (color) & 0xFF;
- int a = (color >> 24) & 0xFF;
-
- jfloat width = env->GetFloatField(polyline, polylineWidthId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- mbgl::ShapeAnnotation::Properties shapeProperties;
- mbgl::LinePaintProperties lineProperties;
- lineProperties.opacity = alpha;
- lineProperties.color = {{ static_cast<float>(r) / 255.0f, static_cast<float>(g) / 255.0f, static_cast<float>(b) / 255.0f, static_cast<float>(a) / 255.0f }};
- lineProperties.width = width;
- shapeProperties.set<mbgl::LinePaintProperties>(lineProperties);
-
- jobject points = env->GetObjectField(polyline, polylinePointsId);
- mbgl::AnnotationSegment segment = annotation_segment_from_latlng_jlist(env, points);
-
- std::vector<mbgl::ShapeAnnotation> shapes;
- shapes.emplace_back(mbgl::AnnotationSegments { segment }, shapeProperties);
-
- std::vector<uint32_t> shapeAnnotationIDs = nativeMapView->getMap().addShapeAnnotations(shapes);
- uint32_t id = shapeAnnotationIDs.at(0);
-
- return id;
-}
-
-jlong JNICALL nativeAddPolygon(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject polygon) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddPolygon");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- std::vector<mbgl::ShapeAnnotation> shapes;
- std::pair<mbgl::AnnotationSegment, mbgl::ShapeAnnotation::Properties> segment = annotation_std_pair_from_polygon_jobject(env, polygon);
-
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return -1;
- }
-
- shapes.emplace_back(mbgl::AnnotationSegments { segment.first }, segment.second);
-
- std::vector<uint32_t> shapeAnnotationIDs = nativeMapView->getMap().addShapeAnnotations(shapes);
- uint32_t id = shapeAnnotationIDs.at(0);
- return id;
-}
-
-jlongArray JNICALL nativeAddPolygons(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject jlist) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddPolygons");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- std::vector<mbgl::ShapeAnnotation> shapes;
-
- if (jlist == nullptr) {
- if (env->ThrowNew(nullPointerExceptionClass, "List cannot be null.") < 0) {
- env->ExceptionDescribe();
- return nullptr;
- }
- return nullptr;
- }
-
- jobjectArray jarray =
- reinterpret_cast<jobjectArray>(env->CallObjectMethod(jlist, listToArrayId));
- if (env->ExceptionCheck() || (jarray == nullptr)) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jsize len = env->GetArrayLength(jarray);
- if (len < 0) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- shapes.reserve(len);
-
- for (jsize i = 0; i < len; i++) {
- jobject polygon = reinterpret_cast<jobject>(env->GetObjectArrayElement(jarray, i));
-
- std::pair<mbgl::AnnotationSegment, mbgl::ShapeAnnotation::Properties> segment = annotation_std_pair_from_polygon_jobject(env, polygon);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- shapes.emplace_back(mbgl::AnnotationSegments { segment.first }, segment.second);
-
- env->DeleteLocalRef(polygon);
- }
-
- env->DeleteLocalRef(jarray);
-
- std::vector<uint32_t> shapeAnnotationIDs = nativeMapView->getMap().addShapeAnnotations(shapes);
- return std_vector_uint_to_jobject(env, shapeAnnotationIDs);
-}
-
-void JNICALL nativeRemoveAnnotation(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jlong annotationId) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeRemoveAnnotation");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().removeAnnotation(static_cast<uint32_t>(annotationId));
-}
-
-void JNICALL nativeRemoveAnnotations(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jlongArray jarray) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeRemoveAnnotations");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- std::vector<uint32_t> ids;
-
- if (env->ExceptionCheck() || (jarray == nullptr)) {
- env->ExceptionDescribe();
- return;
- }
-
- jsize len = env->GetArrayLength(jarray);
- if (len < 0) {
- env->ExceptionDescribe();
- return;
- }
-
- ids.reserve(len);
- jlong* jids = env->GetLongArrayElements(jarray, nullptr);
-
- for (jsize i = 0; i < len; i++) {
- if(jids[i] == -1L)
- continue;
- ids.push_back(static_cast<uint32_t>(jids[i]));
- }
-
- env->ReleaseLongArrayElements(jarray, jids, JNI_ABORT);
-
- nativeMapView->getMap().removeAnnotations(ids);
-}
-
-jlongArray JNICALL nativeGetAnnotationsInBounds(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject bbox) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetAnnotationsInBounds");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- if (env->ExceptionCheck() || (bbox == nullptr)) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble swLat = env->GetDoubleField(bbox, bboxLatSouthId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble swLon = env->GetDoubleField(bbox, bboxLonWestId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble neLat = env->GetDoubleField(bbox, bboxLatNorthId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble neLon = env->GetDoubleField(bbox, bboxLonEastId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- mbgl::LatLngBounds bounds;
- bounds.sw = { swLat, swLon };
- bounds.ne = { neLat, neLon };
-
- // assume only points for now
- std::vector<uint32_t> annotations = nativeMapView->getMap().getPointAnnotationsInBounds(bounds);
-
- return std_vector_uint_to_jobject(env, annotations);
-}
-
-void JNICALL nativeSetSprite(JNIEnv *env, jobject obj, jlong nativeMapViewPtr,
- jstring symbol, jint width, jint height, jfloat scale, jbyteArray jpixels) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetSprite");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- const std::string symbolName = std_string_from_jstring(env, symbol);
-
- jbyte* pixelData = env->GetByteArrayElements(jpixels, nullptr);
- jsize size = env->GetArrayLength(jpixels);
- std::string pixels(reinterpret_cast<char*>(pixelData), size);
- env->ReleaseByteArrayElements(jpixels, pixelData, JNI_ABORT);
-
- auto spriteImage = std::make_shared<mbgl::SpriteImage>(
- uint16_t(width),
- uint16_t(height),
- float(scale),
- std::move(pixels));
-
- nativeMapView->getMap().setSprite(symbolName, spriteImage);
-}
-
-void JNICALL nativeSetVisibleCoordinateBounds(JNIEnv *env, jobject obj, jlong nativeMapViewPtr,
- jobjectArray coordinates, jobject padding, jdouble direction, jlong duration) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetVisibleCoordinateBounds");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jfloat left = env->GetFloatField(padding, rectFLeftId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- jfloat right = env->GetFloatField(padding, rectFRightId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- jfloat top = env->GetFloatField(padding, rectFTopId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- jfloat bottom = env->GetFloatField(padding, rectFBottomId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
-
- jsize count = env->GetArrayLength(coordinates);
-
- mbgl::EdgeInsets mbglInsets = {top, left, bottom, right};
- mbgl::AnnotationSegment segment;
- segment.reserve(count);
-
- for (int i = 0; i < count; i++) {
- jobject latLng = reinterpret_cast<jobject>(env->GetObjectArrayElement(coordinates, i));
- jdouble latitude = env->GetDoubleField(latLng, latLngLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
- jdouble longitude = env->GetDoubleField(latLng, latLngLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return;
- }
- segment.push_back(mbgl::LatLng(latitude, longitude));
- }
-
- mbgl::CameraOptions options = nativeMapView->getMap().cameraForLatLngs(segment, mbglInsets);
-
- if (direction >= 0) {
- // convert from degrees to radians
- options.angle = (-direction * M_PI) / 180;
- }
- if (duration > 0) {
- options.duration = std::chrono::milliseconds(duration);
- // equivalent to kCAMediaTimingFunctionDefault in iOS
- options.easing = {0.25, 0.1, 0.25, 0.1};
- }
-
- nativeMapView->getMap().easeTo(options);
-}
-
-void JNICALL nativeOnLowMemory(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeOnLowMemory");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().onLowMemory();
-}
-
-void JNICALL nativeSetDebug(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jboolean debug) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetDebug");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setDebug(debug);
- nativeMapView->enableFps(debug);
-}
-
-void JNICALL nativeToggleDebug(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeToggleDebug");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().toggleDebug();
- nativeMapView->enableFps(nativeMapView->getMap().getDebug());
-}
-
-jboolean JNICALL nativeGetDebug(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetDebug");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getDebug();
-}
-
-void JNICALL nativeSetCollisionDebug(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jboolean debug) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetCollisionDebug");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().setCollisionDebug(debug);
-}
-
-void JNICALL nativeToggleCollisionDebug(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeToggleCollisionDebug");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- nativeMapView->getMap().toggleCollisionDebug();
-}
-
-jboolean JNICALL nativeGetCollisionDebug(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetCollisionDebug");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getCollisionDebug();
-}
-
-jboolean JNICALL nativeIsFullyLoaded(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeIsFullyLoaded");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().isFullyLoaded();
-}
-
-void JNICALL nativeSetReachability(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jboolean status) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeSetReachability");
- assert(nativeMapViewPtr != 0);
- if (status) {
- mbgl::NetworkStatus::Reachable();
- }
-}
-
-jdouble JNICALL nativeGetMetersPerPixelAtLatitude(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jdouble lat, jdouble zoom) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetMetersPerPixelAtLatitude");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getMetersPerPixelAtLatitude(lat, zoom);
-}
-
-jobject JNICALL nativeProjectedMetersForLatLng(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject latLng) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeProjectedMetersForLatLng");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jdouble latitude = env->GetDoubleField(latLng, latLngLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble longitude = env->GetDoubleField(latLng, latLngLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- mbgl::ProjectedMeters projectedMeters = nativeMapView->getMap().projectedMetersForLatLng(mbgl::LatLng(latitude, longitude));
-
- jobject ret = env->NewObject(projectedMetersClass, projectedMetersConstructorId, projectedMeters.northing, projectedMeters.easting);
- if (ret == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return ret;
-}
-
-jobject JNICALL nativeLatLngForProjectedMeters(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject projectedMeters) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeLatLngForProjectedMeters");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jdouble northing = env->GetDoubleField(projectedMeters, projectedMetersNorthingId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble easting = env->GetDoubleField(projectedMeters, projectedMetersEastingId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- mbgl::LatLng latLng = nativeMapView->getMap().latLngForProjectedMeters(mbgl::ProjectedMeters(northing, easting));
-
- jobject ret = env->NewObject(latLngClass, latLngConstructorId, latLng.latitude, latLng.longitude);
- if (ret == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return ret;
-}
-
-jobject JNICALL nativePixelForLatLng(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject latLng) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativePixelForLatLng");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jdouble latitude = env->GetDoubleField(latLng, latLngLatitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jdouble longitude = env->GetDoubleField(latLng, latLngLongitudeId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- mbgl::vec2<double> pixel = nativeMapView->getMap().pixelForLatLng(mbgl::LatLng(latitude, longitude));
-
- jobject ret = env->NewObject(pointFClass, pointFConstructorId, static_cast<jfloat>(pixel.x), static_cast<jfloat>(pixel.y));
- if (ret == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return ret;
-}
-
-jobject JNICALL nativeLatLngForPixel(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject pixel) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeLatLngForPixel");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
-
- jfloat x = env->GetFloatField(pixel, pointFXId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- jfloat y = env->GetFloatField(pixel, pointFYId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- mbgl::LatLng latLng = nativeMapView->getMap().latLngForPixel(mbgl::vec2<double>(x, y));
-
- jobject ret = env->NewObject(latLngClass, latLngConstructorId, latLng.latitude, latLng.longitude);
- if (ret == nullptr) {
- env->ExceptionDescribe();
- return nullptr;
- }
-
- return ret;
-}
-
-jdouble JNICALL nativeGetTopOffsetPixelsForAnnotationSymbol(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jstring symbolName) {
- mbgl::Log::Debug(mbgl::Event::JNI, "nativeGetTopOffsetPixelsForAnnotationSymbol");
- assert(nativeMapViewPtr != 0);
- NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr);
- return nativeMapView->getMap().getTopOffsetPixelsForAnnotationSymbol(std_string_from_jstring(env, symbolName));
-}
-
-
-}
-
-extern "C" {
-
-extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
- mbgl::Log::Debug(mbgl::Event::JNI, "JNI_OnLoad");
-
- theJVM = vm;
-
- JNIEnv *env = nullptr;
- jint ret = vm->GetEnv(reinterpret_cast<void **>(&env), JNI_VERSION_1_6);
- if (ret != JNI_OK) {
- mbgl::Log::Error(mbgl::Event::JNI, "GetEnv() failed with %i", ret);
- return JNI_ERR;
- }
-
- latLngClass = env->FindClass("com/mapbox/mapboxsdk/geometry/LatLng");
- if (latLngClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngConstructorId = env->GetMethodID(latLngClass, "<init>", "(DD)V");
- if (latLngConstructorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngLatitudeId = env->GetFieldID(latLngClass, "latitude", "D");
- if (latLngLatitudeId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngLongitudeId = env->GetFieldID(latLngClass, "longitude", "D");
- if (latLngLongitudeId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngZoomClass = env->FindClass("com/mapbox/mapboxsdk/geometry/LatLngZoom");
- if (latLngZoomClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngZoomConstructorId = env->GetMethodID(latLngZoomClass, "<init>", "(DDD)V");
- if (latLngZoomConstructorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngZoomLatitudeId = env->GetFieldID(latLngZoomClass, "latitude", "D");
- if (latLngZoomLatitudeId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngZoomLongitudeId = env->GetFieldID(latLngZoomClass, "longitude", "D");
- if (latLngZoomLongitudeId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngZoomZoomId = env->GetFieldID(latLngZoomClass, "zoom", "D");
- if (latLngZoomZoomId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- bboxClass = env->FindClass("com/mapbox/mapboxsdk/geometry/BoundingBox");
- if (bboxClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- bboxConstructorId = env->GetMethodID(bboxClass, "<init>", "(DDDD)V");
- if (bboxConstructorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- bboxLatNorthId = env->GetFieldID(bboxClass, "mLatNorth", "D");
- if (bboxLatNorthId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- bboxLatSouthId = env->GetFieldID(bboxClass, "mLatSouth", "D");
- if (bboxLatSouthId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- bboxLonEastId = env->GetFieldID(bboxClass, "mLonEast", "D");
- if (bboxLonEastId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- bboxLonWestId = env->GetFieldID(bboxClass, "mLonWest", "D");
- if (bboxLonWestId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- spriteClass = env->FindClass("com/mapbox/mapboxsdk/annotations/Sprite");
- if (spriteClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- spriteIdId = env->GetFieldID(spriteClass, "mId", "Ljava/lang/String;");
- if (spriteIdId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- markerClass = env->FindClass("com/mapbox/mapboxsdk/annotations/Marker");
- if (markerClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- markerPositionId = env->GetFieldID(markerClass, "position", "Lcom/mapbox/mapboxsdk/geometry/LatLng;");
- if (markerPositionId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- markerIconId = env->GetFieldID(markerClass, "icon", "Lcom/mapbox/mapboxsdk/annotations/Sprite;");
- if (markerIconId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polylineClass = env->FindClass("com/mapbox/mapboxsdk/annotations/Polyline");
- if (polylineClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polylineAlphaId = env->GetFieldID(polylineClass, "alpha", "F");
- if (polylineAlphaId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polylineColorId = env->GetFieldID(polylineClass, "color", "I");
- if (polylineColorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polylineWidthId = env->GetFieldID(polylineClass, "width", "F");
- if (polylineWidthId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polylinePointsId = env->GetFieldID(polylineClass, "points", "Ljava/util/List;");
- if (polylineWidthId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polygonClass = env->FindClass("com/mapbox/mapboxsdk/annotations/Polygon");
- if (polygonClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polygonAlphaId = env->GetFieldID(polygonClass, "alpha", "F");
- if (polygonAlphaId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polygonFillColorId = env->GetFieldID(polygonClass, "fillColor", "I");
- if (polygonFillColorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polygonStrokeColorId = env->GetFieldID(polygonClass, "strokeColor", "I");
- if (polygonStrokeColorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- polygonPointsId = env->GetFieldID(polygonClass, "points", "Ljava/util/List;");
- if (polygonPointsId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- jclass nativeMapViewClass = env->FindClass("com/mapbox/mapboxsdk/views/NativeMapView");
- if (nativeMapViewClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- onInvalidateId = env->GetMethodID(nativeMapViewClass, "onInvalidate", "()V");
- if (onInvalidateId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- onMapChangedId = env->GetMethodID(nativeMapViewClass, "onMapChanged", "(I)V");
- if (onMapChangedId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- onFpsChangedId = env->GetMethodID(nativeMapViewClass, "onFpsChanged", "(D)V");
- if (onFpsChangedId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- runtimeExceptionClass = env->FindClass("java/lang/RuntimeException");
- if (runtimeExceptionClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- nullPointerExceptionClass = env->FindClass("java/lang/NullPointerException");
- if (nullPointerExceptionClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- jclass listClass = env->FindClass("java/util/List");
- if (listClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- listToArrayId = env->GetMethodID(listClass, "toArray", "()[Ljava/lang/Object;");
- if (listToArrayId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- arrayListClass = env->FindClass("java/util/ArrayList");
- if (arrayListClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- arrayListConstructorId = env->GetMethodID(arrayListClass, "<init>", "()V");
- if (arrayListConstructorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- arrayListAddId = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z");
- if (arrayListAddId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- projectedMetersClass = env->FindClass("com/mapbox/mapboxsdk/geometry/ProjectedMeters");
- if (projectedMetersClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- projectedMetersConstructorId = env->GetMethodID(projectedMetersClass, "<init>", "(DD)V");
- if (projectedMetersConstructorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- projectedMetersNorthingId = env->GetFieldID(projectedMetersClass, "northing", "D");
- if (projectedMetersNorthingId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- projectedMetersEastingId = env->GetFieldID(projectedMetersClass, "easting", "D");
- if (projectedMetersEastingId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- pointFClass = env->FindClass("android/graphics/PointF");
- if (pointFClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- pointFConstructorId = env->GetMethodID(pointFClass, "<init>", "(FF)V");
- if (pointFConstructorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- pointFXId = env->GetFieldID(pointFClass, "x", "F");
- if (pointFXId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- pointFYId = env->GetFieldID(pointFClass, "y", "F");
- if (pointFYId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- rectFClass = env->FindClass("android/graphics/RectF");
- if (rectFClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- rectFConstructorId = env->GetMethodID(rectFClass, "<init>", "()V");
- if (rectFConstructorId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- rectFLeftId = env->GetFieldID(rectFClass, "left", "F");
- if (rectFLeftId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- rectFRightId = env->GetFieldID(rectFClass, "right", "F");
- if (rectFRightId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- rectFTopId = env->GetFieldID(rectFClass, "top", "F");
- if (rectFTopId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- rectFBottomId = env->GetFieldID(rectFClass, "bottom", "F");
- if (rectFBottomId == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- httpContextClass = env->FindClass("com/mapbox/mapboxsdk/http/HTTPContext");
- if (httpContextClass == nullptr) {
- env->ExceptionDescribe();
- }
-
- httpContextGetInstanceId = env->GetStaticMethodID(httpContextClass, "getInstance", "()Lcom/mapbox/mapboxsdk/http/HTTPContext;");
- if (httpContextGetInstanceId == nullptr) {
- env->ExceptionDescribe();
- }
-
- httpContextCreateRequestId = env->GetMethodID(httpContextClass, "createRequest", "(JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/mapbox/mapboxsdk/http/HTTPContext$HTTPRequest;");
- if (httpContextCreateRequestId == nullptr) {
- env->ExceptionDescribe();
- }
-
- httpRequestClass = env->FindClass("com/mapbox/mapboxsdk/http/HTTPContext$HTTPRequest");
- if (httpRequestClass == nullptr) {
- env->ExceptionDescribe();
- }
-
- httpRequestStartId = env->GetMethodID(httpRequestClass, "start", "()V");
- if (httpRequestStartId == nullptr) {
- env->ExceptionDescribe();
- }
-
- httpRequestCancelId = env->GetMethodID(httpRequestClass, "cancel", "()V");
- if (httpRequestCancelId == nullptr) {
- env->ExceptionDescribe();
- }
-
- const std::vector<JNINativeMethod> methods = {
- {"nativeCreate", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;FIJ)J",
- reinterpret_cast<void *>(&nativeCreate)},
- {"nativeDestroy", "(J)V", reinterpret_cast<void *>(&nativeDestroy)},
- {"nativeInitializeDisplay", "(J)V", reinterpret_cast<void *>(&nativeInitializeDisplay)},
- {"nativeTerminateDisplay", "(J)V", reinterpret_cast<void *>(&nativeTerminateDisplay)},
- {"nativeInitializeContext", "(J)V", reinterpret_cast<void *>(&nativeInitializeContext)},
- {"nativeTerminateContext", "(J)V", reinterpret_cast<void *>(&nativeTerminateContext)},
- {"nativeCreateSurface", "(JLandroid/view/Surface;)V",
- reinterpret_cast<void *>(&nativeCreateSurface)},
- {"nativeDestroySurface", "(J)V", reinterpret_cast<void *>(&nativeDestroySurface)},
- {"nativePause", "(J)V", reinterpret_cast<void *>(&nativePause)},
- {"nativeIsPaused", "(J)Z", reinterpret_cast<void *>(&nativeIsPaused)},
- {"nativeResume", "(J)V", reinterpret_cast<void *>(&nativeResume)},
- {"nativeUpdate", "(J)V", reinterpret_cast<void *>(&nativeUpdate)},
- {"nativeRenderSync", "(J)V", reinterpret_cast<void *>(&nativeRenderSync)},
- {"nativeViewResize", "(JII)V",
- reinterpret_cast<void *>(static_cast<void JNICALL (
- *)(JNIEnv *, jobject, jlong, jint, jint)>(&nativeViewResize))},
- {"nativeFramebufferResize", "(JII)V",
- reinterpret_cast<void *>(static_cast<void JNICALL (
- *)(JNIEnv *, jobject, jlong, jint, jint)>(&nativeFramebufferResize))},
- {"nativeAddClass", "(JLjava/lang/String;)V",
- reinterpret_cast<void *>(&nativeAddClass)},
- {"nativeRemoveClass", "(JLjava/lang/String;)V",
- reinterpret_cast<void *>(&nativeRemoveClass)},
- {"nativeHasClass", "(JLjava/lang/String;)Z",
- reinterpret_cast<void *>(&nativeHasClass)},
- {"nativeSetClasses", "(JLjava/util/List;)V",
- reinterpret_cast<void *>(&nativeSetClasses)},
- {"nativeGetClasses", "(J)Ljava/util/List;",
- reinterpret_cast<void *>(&nativeGetClasses)},
- {"nativeSetDefaultTransitionDuration", "(JJ)V",
- reinterpret_cast<void *>(&nativeSetDefaultTransitionDuration)},
- {"nativeGetDefaultTransitionDuration", "(J)J",
- reinterpret_cast<void *>(&nativeGetDefaultTransitionDuration)},
- {"nativeSetStyleUrl", "(JLjava/lang/String;)V",
- reinterpret_cast<void *>(&nativeSetStyleURL)},
- {"nativeSetStyleJson", "(JLjava/lang/String;Ljava/lang/String;)V",
- reinterpret_cast<void *>(&nativeSetStyleJSON)},
- {"nativeGetStyleJson", "(J)Ljava/lang/String;",
- reinterpret_cast<void *>(&nativeGetStyleJSON)},
- {"nativeSetAccessToken", "(JLjava/lang/String;)V",
- reinterpret_cast<void *>(&nativeSetAccessToken)},
- {"nativeGetAccessToken", "(J)Ljava/lang/String;",
- reinterpret_cast<void *>(&nativeGetAccessToken)},
- {"nativeCancelTransitions", "(J)V", reinterpret_cast<void *>(&nativeCancelTransitions)},
- {"nativeSetGestureInProgress", "(JZ)V", reinterpret_cast<void *>(&nativeSetGestureInProgress)},
- {"nativeMoveBy", "(JDDJ)V", reinterpret_cast<void *>(&nativeMoveBy)},
- {"nativeSetLatLng", "(JLcom/mapbox/mapboxsdk/geometry/LatLng;J)V",
- reinterpret_cast<void *>(&nativeSetLatLng)},
- {"nativeGetLatLng", "(J)Lcom/mapbox/mapboxsdk/geometry/LatLng;",
- reinterpret_cast<void *>(&nativeGetLatLng)},
- {"nativeResetPosition", "(J)V", reinterpret_cast<void *>(&nativeResetPosition)},
- {"nativeScaleBy", "(JDDDJ)V", reinterpret_cast<void *>(&nativeScaleBy)},
- {"nativeSetScale", "(JDDDJ)V", reinterpret_cast<void *>(&nativeSetScale)},
- {"nativeGetScale", "(J)D", reinterpret_cast<void *>(&nativeGetScale)},
- {"nativeSetZoom", "(JDJ)V", reinterpret_cast<void *>(&nativeSetZoom)},
- {"nativeGetZoom", "(J)D", reinterpret_cast<void *>(&nativeGetZoom)},
- {"nativeSetLatLngZoom", "(JLcom/mapbox/mapboxsdk/geometry/LatLngZoom;J)V",
- reinterpret_cast<void *>(&nativeSetLatLngZoom)},
- {"nativeGetLatLngZoom", "(J)Lcom/mapbox/mapboxsdk/geometry/LatLngZoom;",
- reinterpret_cast<void *>(&nativeGetLatLngZoom)},
- {"nativeResetZoom", "(J)V", reinterpret_cast<void *>(&nativeResetZoom)},
- {"nativeGetMinZoom", "(J)D", reinterpret_cast<void *>(&nativeGetMinZoom)},
- {"nativeGetMaxZoom", "(J)D", reinterpret_cast<void *>(&nativeGetMaxZoom)},
- {"nativeRotateBy", "(JDDDDJ)V", reinterpret_cast<void *>(&nativeRotateBy)},
- {"nativeSetBearing", "(JDJ)V",
- reinterpret_cast<void *>(
- static_cast<void JNICALL (*)(JNIEnv *, jobject, jlong, jdouble, jlong)>(
- &nativeSetBearing))},
- {"nativeSetBearing", "(JDDD)V",
- reinterpret_cast<void *>(
- static_cast<void JNICALL (*)(JNIEnv *, jobject, jlong, jdouble, jdouble, jdouble)>(
- &nativeSetBearing))},
- {"nativeGetBearing", "(J)D", reinterpret_cast<void *>(&nativeGetBearing)},
- {"nativeResetNorth", "(J)V", reinterpret_cast<void *>(&nativeResetNorth)},
- {"nativeAddMarker", "(JLcom/mapbox/mapboxsdk/annotations/Marker;)J",
- reinterpret_cast<void *>(&nativeAddMarker)},
- {"nativeAddMarkers", "(JLjava/util/List;)[J",
- reinterpret_cast<void *>(&nativeAddMarkers)},
- {"nativeAddPolyline", "(JLcom/mapbox/mapboxsdk/annotations/Polyline;)J",
- reinterpret_cast<void *>(&nativeAddPolyline)},
- {"nativeAddPolygon", "(JLcom/mapbox/mapboxsdk/annotations/Polygon;)J",
- reinterpret_cast<void *>(&nativeAddPolygon)},
- {"nativeAddPolygons", "(JLjava/util/List;)[J",
- reinterpret_cast<void *>(&nativeAddPolygons)},
- {"nativeRemoveAnnotation", "(JJ)V", reinterpret_cast<void *>(&nativeRemoveAnnotation)},
- {"nativeRemoveAnnotations", "(J[J)V", reinterpret_cast<void *>(&nativeRemoveAnnotations)},
- {"nativeGetAnnotationsInBounds", "(JLcom/mapbox/mapboxsdk/geometry/BoundingBox;)[J",
- reinterpret_cast<void *>(&nativeGetAnnotationsInBounds)},
- {"nativeSetSprite", "(JLjava/lang/String;IIF[B)V", reinterpret_cast<void *>(&nativeSetSprite)},
- {"nativeSetVisibleCoordinateBounds", "(J[Lcom/mapbox/mapboxsdk/geometry/LatLng;Landroid/graphics/RectF;DJ)V",
- reinterpret_cast<void *>(&nativeSetVisibleCoordinateBounds)},
- {"nativeOnLowMemory", "(J)V", reinterpret_cast<void *>(&nativeOnLowMemory)},
- {"nativeSetDebug", "(JZ)V", reinterpret_cast<void *>(&nativeSetDebug)},
- {"nativeToggleDebug", "(J)V", reinterpret_cast<void *>(&nativeToggleDebug)},
- {"nativeGetDebug", "(J)Z", reinterpret_cast<void *>(&nativeGetDebug)},
- {"nativeSetCollisionDebug", "(JZ)V", reinterpret_cast<void *>(&nativeSetCollisionDebug)},
- {"nativeToggleCollisionDebug", "(J)V", reinterpret_cast<void *>(&nativeToggleCollisionDebug)},
- {"nativeGetCollisionDebug", "(J)Z", reinterpret_cast<void *>(&nativeGetCollisionDebug)},
- {"nativeIsFullyLoaded", "(J)Z", reinterpret_cast<void *>(&nativeIsFullyLoaded)},
- {"nativeSetReachability", "(JZ)V", reinterpret_cast<void *>(&nativeSetReachability)},
- {"nativeGetMetersPerPixelAtLatitude", "(JDD)D", reinterpret_cast<void *>(&nativeGetMetersPerPixelAtLatitude)},
- {"nativeProjectedMetersForLatLng",
- "(JLcom/mapbox/mapboxsdk/geometry/LatLng;)Lcom/mapbox/mapboxsdk/geometry/ProjectedMeters;",
- reinterpret_cast<void *>(&nativeProjectedMetersForLatLng)},
- {"nativeLatLngForProjectedMeters",
- "(JLcom/mapbox/mapboxsdk/geometry/ProjectedMeters;)Lcom/mapbox/mapboxsdk/geometry/LatLng;",
- reinterpret_cast<void *>(&nativeLatLngForProjectedMeters)},
- {"nativePixelForLatLng", "(JLcom/mapbox/mapboxsdk/geometry/LatLng;)Landroid/graphics/PointF;",
- reinterpret_cast<void *>(&nativePixelForLatLng)},
- {"nativeLatLngForPixel", "(JLandroid/graphics/PointF;)Lcom/mapbox/mapboxsdk/geometry/LatLng;",
- reinterpret_cast<void *>(&nativeLatLngForPixel)},
- {"nativeGetTopOffsetPixelsForAnnotationSymbol", "(JLjava/lang/String;)D",
- reinterpret_cast<void *>(&nativeGetTopOffsetPixelsForAnnotationSymbol)},
- };
-
- if (env->RegisterNatives(nativeMapViewClass, methods.data(), methods.size()) < 0) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngClass = reinterpret_cast<jclass>(env->NewGlobalRef(latLngClass));
- if (latLngClass == nullptr) {
- env->ExceptionDescribe();
- return JNI_ERR;
- }
-
- latLngZoomClass = reinterpret_cast<jclass>(env->NewGlobalRef(latLngZoomClass));
- if (latLngZoomClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- return JNI_ERR;
- }
-
- bboxClass = reinterpret_cast<jclass>(env->NewGlobalRef(bboxClass));
- if (bboxClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- return JNI_ERR;
- }
-
- spriteClass = reinterpret_cast<jclass>(env->NewGlobalRef(spriteClass));
- if (spriteClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- return JNI_ERR;
- }
-
- markerClass = reinterpret_cast<jclass>(env->NewGlobalRef(markerClass));
- if (markerClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- return JNI_ERR;
- }
-
- polylineClass = reinterpret_cast<jclass>(env->NewGlobalRef(polylineClass));
- if (polylineClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- return JNI_ERR;
- }
-
- polygonClass = reinterpret_cast<jclass>(env->NewGlobalRef(polygonClass));
- if (polygonClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(polylineClass);
- return JNI_ERR;
- }
-
- runtimeExceptionClass = reinterpret_cast<jclass>(env->NewGlobalRef(runtimeExceptionClass));
- if (runtimeExceptionClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- return JNI_ERR;
- }
-
- nullPointerExceptionClass =
- reinterpret_cast<jclass>(env->NewGlobalRef(nullPointerExceptionClass));
- if (nullPointerExceptionClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- env->DeleteGlobalRef(runtimeExceptionClass);
- return JNI_ERR;
- }
-
- arrayListClass = reinterpret_cast<jclass>(env->NewGlobalRef(arrayListClass));
- if (arrayListClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- env->DeleteGlobalRef(runtimeExceptionClass);
- env->DeleteGlobalRef(nullPointerExceptionClass);
- return JNI_ERR;
- }
-
- projectedMetersClass = reinterpret_cast<jclass>(env->NewGlobalRef(projectedMetersClass));
- if (projectedMetersClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- env->DeleteGlobalRef(runtimeExceptionClass);
- env->DeleteGlobalRef(nullPointerExceptionClass);
- env->DeleteGlobalRef(arrayListClass);
- return JNI_ERR;
- }
-
- pointFClass = reinterpret_cast<jclass>(env->NewGlobalRef(pointFClass));
- if (pointFClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- env->DeleteGlobalRef(runtimeExceptionClass);
- env->DeleteGlobalRef(nullPointerExceptionClass);
- env->DeleteGlobalRef(arrayListClass);
- env->DeleteGlobalRef(projectedMetersClass);
- return JNI_ERR;
- }
-
- rectFClass = reinterpret_cast<jclass>(env->NewGlobalRef(rectFClass));
- if (rectFClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- env->DeleteGlobalRef(runtimeExceptionClass);
- env->DeleteGlobalRef(nullPointerExceptionClass);
- env->DeleteGlobalRef(arrayListClass);
- env->DeleteGlobalRef(projectedMetersClass);
- env->DeleteGlobalRef(pointFClass);
- return JNI_ERR;
- }
-
- httpContextClass = reinterpret_cast<jclass>(env->NewGlobalRef(httpContextClass));
- if (httpContextClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- env->DeleteGlobalRef(runtimeExceptionClass);
- env->DeleteGlobalRef(nullPointerExceptionClass);
- env->DeleteGlobalRef(arrayListClass);
- env->DeleteGlobalRef(projectedMetersClass);
- env->DeleteGlobalRef(pointFClass);
- env->DeleteGlobalRef(rectFClass);
- }
-
- httpRequestClass = reinterpret_cast<jclass>(env->NewGlobalRef(httpRequestClass));
- if (httpRequestClass == nullptr) {
- env->ExceptionDescribe();
- env->DeleteGlobalRef(latLngClass);
- env->DeleteGlobalRef(latLngZoomClass);
- env->DeleteGlobalRef(bboxClass);
- env->DeleteGlobalRef(spriteClass);
- env->DeleteGlobalRef(markerClass);
- env->DeleteGlobalRef(polylineClass);
- env->DeleteGlobalRef(polygonClass);
- env->DeleteGlobalRef(runtimeExceptionClass);
- env->DeleteGlobalRef(nullPointerExceptionClass);
- env->DeleteGlobalRef(arrayListClass);
- env->DeleteGlobalRef(projectedMetersClass);
- env->DeleteGlobalRef(pointFClass);
- env->DeleteGlobalRef(rectFClass);
- env->DeleteGlobalRef(httpContextClass);
- }
-
- char release[PROP_VALUE_MAX] = "";
- __system_property_get("ro.build.version.release", release);
- androidRelease = std::string(release);
-
- return JNI_VERSION_1_6;
-}
-
-extern "C" JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) {
- mbgl::Log::Debug(mbgl::Event::JNI, "JNI_OnUnload");
-
- theJVM = vm;
-
- JNIEnv *env = nullptr;
- jint ret = vm->GetEnv(reinterpret_cast<void **>(&env), JNI_VERSION_1_6);
- if (ret != JNI_OK) {
- mbgl::Log::Error(mbgl::Event::JNI, "GetEnv() failed with %i", ret);
- throw new std::runtime_error("GetEnv() failed");
- }
-
- env->DeleteGlobalRef(latLngClass);
- latLngClass = nullptr;
- latLngConstructorId = nullptr;
- latLngLongitudeId = nullptr;
- latLngLatitudeId = nullptr;
-
- env->DeleteGlobalRef(latLngZoomClass);
- latLngZoomClass = nullptr;
- latLngZoomConstructorId = nullptr;
- latLngZoomLongitudeId = nullptr;
- latLngZoomLatitudeId = nullptr;
- latLngZoomZoomId = nullptr;
-
- env->DeleteGlobalRef(bboxClass);
- bboxClass = nullptr;
- bboxConstructorId = nullptr;
- bboxLatNorthId = nullptr;
- bboxLatSouthId = nullptr;
- bboxLonEastId = nullptr;
- bboxLonWestId = nullptr;
-
- env->DeleteGlobalRef(spriteClass);
- spriteClass = nullptr;
- spriteIdId = nullptr;
-
- env->DeleteGlobalRef(markerClass);
- markerClass = nullptr;
- markerPositionId = nullptr;
- markerIconId = nullptr;
-
- env->DeleteGlobalRef(polylineClass);
- polylineClass = nullptr;
- polylineAlphaId = nullptr;
- polylineColorId = nullptr;
- polylineWidthId = nullptr;
- polylinePointsId = nullptr;
-
- env->DeleteGlobalRef(polygonClass);
- polygonClass = nullptr;
- polygonAlphaId = nullptr;
- polygonFillColorId = nullptr;
- polygonStrokeColorId = nullptr;
- polygonPointsId = nullptr;
-
- onInvalidateId = nullptr;
- onMapChangedId = nullptr;
- onFpsChangedId = nullptr;
-
- env->DeleteGlobalRef(runtimeExceptionClass);
- runtimeExceptionClass = nullptr;
-
- env->DeleteGlobalRef(nullPointerExceptionClass);
- nullPointerExceptionClass = nullptr;
-
- listToArrayId = nullptr;
-
- env->DeleteGlobalRef(arrayListClass);
- arrayListClass = nullptr;
- arrayListConstructorId = nullptr;
- arrayListAddId = nullptr;
-
- env->DeleteGlobalRef(projectedMetersClass);
- projectedMetersClass = nullptr;
- projectedMetersConstructorId = nullptr;
- projectedMetersNorthingId = nullptr;
- projectedMetersEastingId = nullptr;
-
- env->DeleteGlobalRef(pointFClass);
- pointFClass = nullptr;
- pointFConstructorId = nullptr;
- pointFXId = nullptr;
- pointFYId = nullptr;
-
- env->DeleteGlobalRef(rectFClass);
- rectFClass = nullptr;
- rectFConstructorId = nullptr;
- rectFLeftId = nullptr;
- rectFTopId = nullptr;
- rectFRightId = nullptr;
- rectFBottomId = nullptr;
-
- env->DeleteGlobalRef(httpContextClass);
- httpContextGetInstanceId = nullptr;
- httpContextCreateRequestId = nullptr;
-
- env->DeleteGlobalRef(httpRequestClass);
- httpRequestStartId = nullptr;
- httpRequestCancelId = nullptr;
-
- theJVM = nullptr;
-}
-}
diff --git a/android/cpp/native_map_view.cpp b/android/cpp/native_map_view.cpp
deleted file mode 100644
index 9c4d4b1d10..0000000000
--- a/android/cpp/native_map_view.cpp
+++ /dev/null
@@ -1,745 +0,0 @@
-#include <cstdlib>
-#include <ctime>
-#include <cassert>
-#include <memory>
-#include <list>
-#include <tuple>
-
-#include <sys/system_properties.h>
-
-#include <GLES2/gl2.h>
-
-#include <mbgl/android/native_map_view.hpp>
-#include <mbgl/android/jni.hpp>
-#include <mbgl/platform/platform.hpp>
-#include <mbgl/platform/event.hpp>
-#include <mbgl/platform/log.hpp>
-#include <mbgl/platform/gl.hpp>
-#include <mbgl/util/constants.hpp>
-
-namespace mbgl {
-namespace android {
-
-void log_egl_string(EGLDisplay display, EGLint name, const char *label) {
- const char *str = eglQueryString(display, name);
- if (str == nullptr) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglQueryString(%d) returned error %d", name,
- eglGetError());
- throw new std::runtime_error("eglQueryString() failed");
- } else {
- char buf[513];
- for (int len = std::strlen(str), pos = 0; len > 0; len -= 512, pos += 512) {
- strncpy(buf, str + pos, 512);
- buf[512] = 0;
- mbgl::Log::Info(mbgl::Event::OpenGL, "EGL %s: %s", label, buf);
- }
- }
-}
-
-void log_gl_string(GLenum name, const char *label) {
- const GLubyte *str = glGetString(name);
- if (str == nullptr) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "glGetString(%d) returned error %d", name,
- glGetError());
- throw new std::runtime_error("glGetString() failed");
- } else {
- char buf[513];
- for (int len = std::strlen(reinterpret_cast<const char *>(str)), pos = 0; len > 0;
- len -= 512, pos += 512) {
- strncpy(buf, reinterpret_cast<const char *>(str) + pos, 512);
- buf[512] = 0;
- mbgl::Log::Info(mbgl::Event::OpenGL, "GL %s: %s", label, buf);
- }
- }
-}
-
-NativeMapView::NativeMapView(JNIEnv *env, jobject obj_, float pixelRatio_, int availableProcessors_, size_t totalMemory_)
- : mbgl::View(*this),
- pixelRatio(pixelRatio_),
- availableProcessors(availableProcessors_),
- totalMemory(totalMemory_) {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::NativeMapView");
-
- assert(env != nullptr);
- assert(obj_ != nullptr);
-
- if (env->GetJavaVM(&vm) < 0) {
- env->ExceptionDescribe();
- return;
- }
-
- obj = env->NewWeakGlobalRef(obj_);
- if (obj == nullptr) {
- env->ExceptionDescribe();
- return;
- }
-
- fileCache = mbgl::SharedSQLiteCache::get(mbgl::android::cachePath + "/mbgl-cache.db");
- fileSource = std::make_unique<mbgl::DefaultFileSource>(fileCache.get());
- map = std::make_unique<mbgl::Map>(*this, *fileSource, MapMode::Continuous);
-
- float zoomFactor = map->getMaxZoom() - map->getMinZoom() + 1;
- float cpuFactor = availableProcessors;
- float memoryFactor = static_cast<float>(totalMemory) / 1000.0f / 1000.0f / 1000.0f;
- float sizeFactor = (static_cast<float>(map->getWidth()) / mbgl::util::tileSize) *
- (static_cast<float>(map->getHeight()) / mbgl::util::tileSize);
-
- size_t cacheSize = zoomFactor * cpuFactor * memoryFactor * sizeFactor * 0.5f;
-
- map->setSourceTileCacheSize(cacheSize);
-
- map->pause();
-}
-
-NativeMapView::~NativeMapView() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::~NativeMapView");
- terminateContext();
- destroySurface();
- terminateDisplay();
-
- assert(vm != nullptr);
- assert(obj != nullptr);
-
- map.reset();
- fileSource.reset();
- fileCache.reset();
-
- jint ret;
- JNIEnv *env = nullptr;
- ret = vm->GetEnv(reinterpret_cast<void **>(&env), JNI_VERSION_1_6);
- if (ret == JNI_OK) {
- env->DeleteWeakGlobalRef(obj);
- } else {
- mbgl::Log::Error(mbgl::Event::JNI, "GetEnv() failed with %i", ret);
- throw new std::runtime_error("GetEnv() failed");
- }
- obj = nullptr;
- vm = nullptr;
-}
-
-float NativeMapView::getPixelRatio() const {
- return pixelRatio;
-}
-
-std::array<uint16_t, 2> NativeMapView::getSize() const {
- return {{ static_cast<uint16_t>(width), static_cast<uint16_t>(height) }};
-}
-
-std::array<uint16_t, 2> NativeMapView::getFramebufferSize() const {
- return {{ static_cast<uint16_t>(fbWidth), static_cast<uint16_t>(fbHeight) }};
-}
-
-void NativeMapView::activate() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::activate");
-
- assert(vm != nullptr);
-
- renderDetach = attach_jni_thread(vm, &renderEnv, "Map Thread");
-
- if ((display != EGL_NO_DISPLAY) && (surface != EGL_NO_SURFACE) && (context != EGL_NO_CONTEXT)) {
- if (!eglMakeCurrent(display, surface, surface, context)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglMakeCurrent() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglMakeCurrent() failed");
- }
-
- if (!eglSwapInterval(display, 0)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglSwapInterval() returned error %d", eglGetError());
- throw new std::runtime_error("eglSwapInterval() failed");
- }
- } else {
- mbgl::Log::Info(mbgl::Event::Android, "Not activating as we are not ready");
- }
-}
-
-void NativeMapView::deactivate() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::deactivate");
-
- assert(vm != nullptr);
-
- if (display != EGL_NO_DISPLAY) {
- if (!eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglMakeCurrent(EGL_NO_CONTEXT) returned error %d",
- eglGetError());
- throw new std::runtime_error("eglMakeCurrent() failed");
- }
- } else {
- mbgl::Log::Info(mbgl::Event::Android, "Not deactivating as we are not ready");
- }
-
- detach_jni_thread(vm, &renderEnv, renderDetach);
-}
-
-void NativeMapView::invalidate() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::invalidate()");
-
- assert(vm != nullptr);
- assert(obj != nullptr);
-
- JNIEnv *env = nullptr;
- bool detach = attach_jni_thread(vm, &env, "NativeMapView::invalidate()");
-
- env->CallVoidMethod(obj, onInvalidateId);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- }
-
- detach_jni_thread(vm, &env, detach);
-}
-
-void NativeMapView::beforeRender() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::beforeRender()");
- // no-op
-}
-
-void NativeMapView::afterRender() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::afterRender()");
-
- assert(vm != nullptr);
- assert(obj != nullptr);
-
- if ((display != EGL_NO_DISPLAY) && (surface != EGL_NO_SURFACE)) {
- if (!eglSwapBuffers(display, surface)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglSwapBuffers() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglSwapBuffers() failed");
- }
-
- updateFps();
- } else {
- mbgl::Log::Info(mbgl::Event::Android, "Not swapping as we are not ready");
- }
-}
-
-void NativeMapView::notify() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::notify()");
- // noop
-}
-
-mbgl::Map &NativeMapView::getMap() { return *map; }
-
-mbgl::DefaultFileSource &NativeMapView::getFileSource() { return *fileSource; }
-
-bool NativeMapView::inEmulator() {
- // Detect if we are in emulator
- char prop[PROP_VALUE_MAX];
- __system_property_get("ro.kernel.qemu", prop);
- return strtol(prop, nullptr, 0) == 1;
-}
-
-void NativeMapView::initializeDisplay() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::initializeDisplay");
-
- assert(display == EGL_NO_DISPLAY);
- assert(config == nullptr);
- assert(format < 0);
-
- display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- if (display == EGL_NO_DISPLAY) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglGetDisplay() returned error %d", eglGetError());
- throw new std::runtime_error("eglGetDisplay() failed");
- }
-
- EGLint major, minor;
- if (!eglInitialize(display, &major, &minor)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglInitialize() returned error %d", eglGetError());
- throw new std::runtime_error("eglInitialize() failed");
- }
- if ((major <= 1) && (minor < 3)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "EGL version is too low, need 1.3, got %d.%d", major,
- minor);
- throw new std::runtime_error("EGL version is too low");
- }
-
- log_egl_string(display, EGL_VENDOR, "Vendor");
- log_egl_string(display, EGL_VERSION, "Version");
- log_egl_string(display, EGL_CLIENT_APIS, "Client APIs");
- log_egl_string(display, EGL_EXTENSIONS, "Client Extensions");
-
- // Detect if we are in emulator
- if (inEmulator()) {
- mbgl::Log::Warning(mbgl::Event::Android, "In emulator! Enabling hacks :-(");
- }
-
- // Get all configs at least RGB 565 with 16 depth and 8 stencil
- EGLint configAttribs[] = {
- EGL_CONFIG_CAVEAT, EGL_NONE, EGL_RENDERABLE_TYPE,
- EGL_OPENGL_ES2_BIT, EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
- EGL_BUFFER_SIZE, 16, EGL_RED_SIZE,
- 5, EGL_GREEN_SIZE, 6,
- EGL_BLUE_SIZE, 5, EGL_DEPTH_SIZE,
- 16, EGL_STENCIL_SIZE, 8,
- (inEmulator() ? EGL_NONE : EGL_CONFORMANT), EGL_OPENGL_ES2_BIT, // Ugly hack
- (inEmulator() ? EGL_NONE : EGL_COLOR_BUFFER_TYPE), EGL_RGB_BUFFER, // Ugly hack
- EGL_NONE};
- EGLint numConfigs;
- if (!eglChooseConfig(display, configAttribs, nullptr, 0, &numConfigs)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglChooseConfig(NULL) returned error %d",
- eglGetError());
- throw new std::runtime_error("eglChooseConfig() failed");
- }
- if (numConfigs < 1) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglChooseConfig() returned no configs.");
- throw new std::runtime_error("eglChooseConfig() failed");
- }
-
- const auto configs = std::make_unique<EGLConfig[]>(numConfigs);
- if (!eglChooseConfig(display, configAttribs, configs.get(), numConfigs, &numConfigs)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglChooseConfig() returned error %d", eglGetError());
- throw new std::runtime_error("eglChooseConfig() failed");
- }
-
- config = chooseConfig(configs.get(), numConfigs);
- if (config == nullptr) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "No config chosen");
- throw new std::runtime_error("No config chosen");
- }
-
- if (!eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglGetConfigAttrib() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
- mbgl::Log::Info(mbgl::Event::OpenGL, "Chosen window format is %d", format);
-}
-
-void NativeMapView::terminateDisplay() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::terminateDisplay");
-
- if (display != EGL_NO_DISPLAY) {
- // Destroy the surface first, if it still exists. This call needs a valid surface.
- if (surface != EGL_NO_SURFACE) {
- if (!eglDestroySurface(display, surface)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglDestroySurface() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglDestroySurface() failed");
- }
- surface = EGL_NO_SURFACE;
- }
-
- if (!eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglMakeCurrent(EGL_NO_CONTEXT) returned error %d", eglGetError());
- throw new std::runtime_error("eglMakeCurrent() failed");
- }
-
- if (!eglTerminate(display)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglTerminate() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglTerminate() failed");
- }
- }
-
- display = EGL_NO_DISPLAY;
- config = nullptr;
- format = -1;
-}
-
-void NativeMapView::initializeContext() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::initializeContext");
-
- assert(display != EGL_NO_DISPLAY);
- assert(context == EGL_NO_CONTEXT);
- assert(config != nullptr);
-
- const EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE};
- context = eglCreateContext(display, config, EGL_NO_CONTEXT, contextAttribs);
- if (context == EGL_NO_CONTEXT) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglCreateContext() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglCreateContext() failed");
- }
-}
-
-void NativeMapView::terminateContext() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::terminateContext");
- if (display != EGL_NO_DISPLAY) {
-
- if (!eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglMakeCurrent(EGL_NO_CONTEXT) returned error %d", eglGetError());
- throw new std::runtime_error("eglMakeCurrent() failed");
- }
-
- if (context != EGL_NO_CONTEXT) {
- if (!eglDestroyContext(display, context)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglDestroyContext() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglDestroyContext() failed");
- }
- }
- }
-
- context = EGL_NO_CONTEXT;
-}
-
-void NativeMapView::createSurface(ANativeWindow *window_) {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::createSurface");
-
- assert(window == nullptr);
- assert(window_ != nullptr);
- window = window_;
-
- assert(display != EGL_NO_DISPLAY);
- assert(surface == EGL_NO_SURFACE);
- assert(config != nullptr);
- assert(format >= 0);
-
- ANativeWindow_setBuffersGeometry(window, 0, 0, format);
-
- const EGLint surfaceAttribs[] = {EGL_NONE};
- surface = eglCreateWindowSurface(display, config, window, surfaceAttribs);
- if (surface == EGL_NO_SURFACE) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglCreateWindowSurface() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglCreateWindowSurface() failed");
- }
-
- if (!firstTime) {
- firstTime = true;
-
- if (!eglMakeCurrent(display, surface, surface, context)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglMakeCurrent() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglMakeCurrent() failed");
- }
-
- log_gl_string(GL_VENDOR, "Vendor");
- log_gl_string(GL_RENDERER, "Renderer");
- log_gl_string(GL_VERSION, "Version");
- if (!inEmulator()) {
- log_gl_string(GL_SHADING_LANGUAGE_VERSION,
- "SL Version"); // In the emulator this returns NULL with error code 0?
- // https://code.google.com/p/android/issues/detail?id=78977
- }
-
- log_gl_string(GL_EXTENSIONS, "Extensions");
- mbgl::gl::InitializeExtensions([] (const char * name) {
- return reinterpret_cast<mbgl::gl::glProc>(eglGetProcAddress(name));
- });
-
- if (!eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglMakeCurrent(EGL_NO_CONTEXT) returned error %d", eglGetError());
- throw new std::runtime_error("eglMakeCurrent() failed");
- }
- }
-
- resume();
-}
-
-void NativeMapView::destroySurface() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::destroySurface");
-
- pause();
-
- if (surface != EGL_NO_SURFACE) {
- if (!eglDestroySurface(display, surface)) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "eglDestroySurface() returned error %d",
- eglGetError());
- throw new std::runtime_error("eglDestroySurface() failed");
- }
- }
-
- surface = EGL_NO_SURFACE;
-
- if (window != nullptr) {
- ANativeWindow_release(window);
- window = nullptr;
- }
-}
-
-// Speed
-/*
-typedef enum {
- Format16Bit = 0,
- Format32BitNoAlpha = 1,
- Format32BitAlpha = 2,
- Format24Bit = 3,
- Unknown = 4
-} BufferFormat;
-
-typedef enum {
- Format16Depth8Stencil = 0,
- Format24Depth8Stencil = 1,
-} DepthStencilFormat;
-*/
-
-// Quality
-typedef enum {
- Format16Bit = 3,
- Format32BitNoAlpha = 1,
- Format32BitAlpha = 2,
- Format24Bit = 0,
- Unknown = 4
-} BufferFormat;
-
-typedef enum {
- Format16Depth8Stencil = 1,
- Format24Depth8Stencil = 0,
-} DepthStencilFormat;
-
-// Tuple is <buffer_format, depth_stencil_format, is_not_conformant, is_caveat, config_num,
-// config_id>
-typedef std::tuple<BufferFormat, DepthStencilFormat, bool, bool, int, EGLConfig> ConfigProperties;
-
-EGLConfig NativeMapView::chooseConfig(const EGLConfig configs[], EGLint numConfigs) {
- mbgl::Log::Info(mbgl::Event::OpenGL, "Found %d configs", numConfigs);
-
- // Create a list of configs that pass our filters
- std::list<ConfigProperties> configList;
- for (int i = 0; i < numConfigs; i++) {
- mbgl::Log::Info(mbgl::Event::OpenGL, "Config %d:", i);
-
- EGLint caveat, conformant, bits, red, green, blue, alpha, alphaMask, depth, stencil,
- sampleBuffers, samples;
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_CONFIG_CAVEAT, &caveat)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_CONFIG_CAVEAT) returned error %d",
- eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_CONFORMANT, &conformant)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_CONFORMANT) returned error %d", eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_BUFFER_SIZE, &bits)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_BUFFER_SIZE) returned error %d",
- eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_RED_SIZE, &red)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_RED_SIZE) returned error %d", eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_GREEN_SIZE, &green)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_GREEN_SIZE) returned error %d", eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_BLUE_SIZE, &blue)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_BLUE_SIZE) returned error %d", eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_ALPHA_SIZE, &alpha)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_ALPHA_SIZE) returned error %d", eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_ALPHA_MASK_SIZE, &alphaMask)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_ALPHA_MASK_SIZE) returned error %d",
- eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_DEPTH_SIZE, &depth)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_DEPTH_SIZE) returned error %d", eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_STENCIL_SIZE, &stencil)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_STENCIL_SIZE) returned error %d",
- eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_SAMPLE_BUFFERS, &sampleBuffers)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_SAMPLE_BUFFERS) returned error %d",
- eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- if (!eglGetConfigAttrib(display, configs[i], EGL_SAMPLES, &samples)) {
- mbgl::Log::Error(mbgl::Event::OpenGL,
- "eglGetConfigAttrib(EGL_SAMPLES) returned error %d", eglGetError());
- throw new std::runtime_error("eglGetConfigAttrib() failed");
- }
-
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Caveat: %d", caveat);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Conformant: %d", conformant);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Color: %d", bits);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Red: %d", red);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Green: %d", green);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Blue: %d", blue);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Alpha: %d", alpha);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Alpha mask: %d", alphaMask);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Depth: %d", depth);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Stencil: %d", stencil);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Sample buffers: %d", sampleBuffers);
- mbgl::Log::Info(mbgl::Event::OpenGL, "...Samples: %d", samples);
-
- bool configOk = true;
- configOk &= (depth == 24) || (depth == 16);
- configOk &= stencil == 8;
- configOk &= sampleBuffers == 0;
- configOk &= samples == 0;
-
- // Filter our configs first for depth, stencil and anti-aliasing
- if (configOk) {
- // Work out the config's buffer format
- BufferFormat bufferFormat;
- if ((bits == 16) && (red == 5) && (green == 6) && (blue == 5) && (alpha == 0)) {
- bufferFormat = Format16Bit;
- } else if ((bits == 32) && (red == 8) && (green == 8) && (blue == 8) && (alpha == 0)) {
- bufferFormat = Format32BitNoAlpha;
- } else if ((bits == 32) && (red == 8) && (green == 8) && (blue == 8) && (alpha == 8)) {
- bufferFormat = Format32BitAlpha;
- } else if ((bits == 24) && (red == 8) && (green == 8) && (blue == 8) && (alpha == 0)) {
- bufferFormat = Format24Bit;
- } else {
- bufferFormat = Unknown;
- }
-
- // Work out the config's depth stencil format
- DepthStencilFormat depthStencilFormat;
- if ((depth == 16) && (stencil == 8)) {
- depthStencilFormat = Format16Depth8Stencil;
- } else {
- depthStencilFormat = Format24Depth8Stencil;
- }
-
- bool isNotConformant = (conformant & EGL_OPENGL_ES2_BIT) != EGL_OPENGL_ES2_BIT;
- bool isCaveat = caveat != EGL_NONE;
- EGLConfig configId = configs[i];
-
- // Ignore formats we don't recognise
- if (bufferFormat != Unknown) {
- configList.push_back(std::make_tuple(bufferFormat, depthStencilFormat,
- isNotConformant, isCaveat, i, configId));
- }
- }
- }
-
- if (configList.empty()) {
- mbgl::Log::Error(mbgl::Event::OpenGL, "Config list was empty.");
- }
-
- // Sort the configs to find the best one
- configList.sort();
- bool isConformant = !std::get<2>(configList.front());
- bool isCaveat = std::get<3>(configList.front());
- int configNum = std::get<4>(configList.front());
- EGLConfig configId = std::get<5>(configList.front());
-
- mbgl::Log::Info(mbgl::Event::OpenGL, "Chosen config is %d", configNum);
-
- if (isCaveat) {
- mbgl::Log::Warning(mbgl::Event::OpenGL, "Chosen config has a caveat.");
- }
- if (!isConformant) {
- mbgl::Log::Warning(mbgl::Event::OpenGL, "Chosen config is not conformant.");
- }
-
- return configId;
-}
-
-void NativeMapView::pause() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::pause");
-
- if ((display != EGL_NO_DISPLAY) && (context != EGL_NO_CONTEXT)) {
- map->pause();
- }
-}
-
-void NativeMapView::resume() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::resume");
-
- assert(display != EGL_NO_DISPLAY);
- assert(context != EGL_NO_CONTEXT);
-
- if (surface != EGL_NO_SURFACE) {
- map->resume();
- } else {
- mbgl::Log::Debug(mbgl::Event::Android, "Not resuming because we are not ready");
- }
-}
-
-void NativeMapView::notifyMapChange(mbgl::MapChange change) {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::notifyMapChange()");
-
- assert(vm != nullptr);
- assert(obj != nullptr);
-
- JNIEnv *env = nullptr;
- bool detach = attach_jni_thread(vm, &env, "NativeMapView::notifyMapChange()");
-
- env->CallVoidMethod(obj, onMapChangedId, change);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- }
-
- detach_jni_thread(vm, &env, detach);
-}
-
-void NativeMapView::enableFps(bool enable) {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::enableFps()");
-
- fpsEnabled = enable;
-}
-
-void NativeMapView::updateFps() {
- mbgl::Log::Debug(mbgl::Event::Android, "NativeMapView::updateFps()");
-
- if (!fpsEnabled) {
- return;
- }
-
- static int frames = 0;
- static int64_t timeElapsed = 0LL;
-
- frames++;
- struct timespec now;
- clock_gettime(CLOCK_MONOTONIC, &now);
- int64_t currentTime = now.tv_sec * 1000000000LL + now.tv_nsec;
-
- if (currentTime - timeElapsed >= 1) {
- fps = frames / ((currentTime - timeElapsed) / 1E9);
- mbgl::Log::Debug(mbgl::Event::Render, "FPS: %4.2f", fps);
- timeElapsed = currentTime;
- frames = 0;
- }
-
- assert(vm != nullptr);
- assert(obj != nullptr);
-
- JNIEnv *env = nullptr;
- bool detach = attach_jni_thread(vm, &env, "NativeMapView::updateFps()");
-
- env->CallVoidMethod(obj, onFpsChangedId, fps);
- if (env->ExceptionCheck()) {
- env->ExceptionDescribe();
- }
-
- detach_jni_thread(vm, &env, detach);
-}
-
-void NativeMapView::resizeView(int w, int h) {
- width = w;
- height = h;
- map->update(mbgl::Update::Dimensions);
-}
-
-void NativeMapView::resizeFramebuffer(int w, int h) {
- fbWidth = w;
- fbHeight = h;
- map->update(mbgl::Update::Repaint);
-}
-
-}
-}
diff --git a/android/java/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar
index 30d399d8d2..30d399d8d2 100644
--- a/android/java/gradle/wrapper/gradle-wrapper.jar
+++ b/android/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/android/java/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 3212d53fb2..3212d53fb2 100644
--- a/android/java/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
diff --git a/android/java/gradlew b/android/gradlew
index 91a7e269e1..91a7e269e1 100755
--- a/android/java/gradlew
+++ b/android/gradlew
diff --git a/android/java/gradlew.bat b/android/gradlew.bat
index 8a0b282aa6..8a0b282aa6 100644
--- a/android/java/gradlew.bat
+++ b/android/gradlew.bat
diff --git a/android/mapboxgl-app.gypi b/android/mapboxgl-app.gypi
deleted file mode 100644
index 9789f57aee..0000000000
--- a/android/mapboxgl-app.gypi
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- 'includes': [
- '../gyp/common.gypi',
- ],
- 'targets': [
- { 'target_name': 'android-lib',
- 'product_name': 'mapbox-gl',
- 'type': 'shared_library',
- 'hard_dependency': 1,
-
- 'dependencies': [
- '../mbgl.gyp:core',
- '../mbgl.gyp:platform-<(platform_lib)',
- '../mbgl.gyp:http-<(http_lib)',
- '../mbgl.gyp:asset-<(asset_lib)',
- '../mbgl.gyp:cache-<(cache_lib)',
- ],
-
- 'sources': [
- './cpp/native_map_view.cpp',
- './cpp/jni.cpp',
- ],
-
- 'cflags_cc': [
- '<@(boost_cflags)',
- '<@(variant_cflags)',
- ],
- 'libraries': [
- '<@(openssl_static_libs)',
- '<@(libcurl_static_libs)',
- '<@(libpng_static_libs)',
- '<@(jpeg_static_libs)',
- '<@(sqlite_static_libs)',
- '<@(libuv_static_libs)',
- '<@(nunicode_static_libs)',
- '<@(libzip_static_libs)',
- ],
- 'variables': {
- 'ldflags': [
- '-llog',
- '-landroid',
- '-lEGL',
- '-lGLESv2',
- '-lstdc++',
- '-latomic',
- '<@(libpng_ldflags)',
- '<@(jpeg_ldflags)',
- '<@(sqlite_ldflags)',
- '<@(openssl_ldflags)',
- '<@(libcurl_ldflags)',
- '<@(zlib_ldflags)',
- '<@(libzip_ldflags)',
- ],
- },
- 'conditions': [
- ['OS == "mac"', {
- 'xcode_settings': {
- 'OTHER_LDFLAGS': [ '<@(ldflags)' ],
- }
- }, {
- 'libraries': [ '<@(ldflags)' ],
- }]
- ],
- },
-
-
- { 'target_name': 'androidapp',
- 'type': 'none',
- 'hard_dependency': 1,
-
- 'variables': {
- 'pwd': '<!(pwd)',
- },
-
- 'copies': [
- {
- 'files': [
- '../common/ca-bundle.crt',
- '../styles/styles'
- ],
- 'destination': '<(pwd)/../android/java/MapboxGLAndroidSDK/src/main/assets'
- },
- {
- 'files': [
- '<(PRODUCT_DIR)/obj.target'
- ],
- 'destination': '<(pwd)/../android/java/MapboxGLAndroidSDK/src/main'
- },
- ],
-
- 'actions': [
- {
- 'action_name': 'Strip dynamic library',
- 'inputs': [ '<(PRODUCT_DIR)/lib.target/libmapbox-gl.so' ],
- 'outputs': [ '<(pwd)/../android/java/MapboxGLAndroidSDK/src/main/jniLibs/$(JNIDIR)/libmapbox-gl.so' ],
- 'action': [ '$(STRIP)', '<@(_inputs)', '-o', '<@(_outputs)' ]
- },
- ],
- },
- ],
-}
diff --git a/android/java/settings.gradle b/android/settings.gradle
index 71a8f1a9ad..71a8f1a9ad 100644
--- a/android/java/settings.gradle
+++ b/android/settings.gradle