From 9cf1746e350048177487406328ff7815287ede61 Mon Sep 17 00:00:00 2001 From: tobrun Date: Thu, 23 May 2019 18:52:33 +0200 Subject: [android] - load style without url or json --- platform/android/.gitignore | 3 - platform/android/CHANGELOG.md | 4 +- .../java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 2 +- .../main/java/com/mapbox/mapboxsdk/maps/Style.java | 2 + .../java/com/mapbox/mapboxsdk/maps/StyleTest.kt | 2 +- .../src/main/AndroidManifest.xml | 11 +++ .../testapp/activity/style/NoStyleActivity.kt | 84 ++++++++++++++++++++++ .../src/main/res/values/descriptions.xml | 1 + .../src/main/res/values/titles.xml | 1 + 9 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/NoStyleActivity.kt diff --git a/platform/android/.gitignore b/platform/android/.gitignore index f5affd93c7..f37dc37ea6 100644 --- a/platform/android/.gitignore +++ b/platform/android/.gitignore @@ -11,9 +11,6 @@ build/ *.so *.apk -# Lib assets -MapboxGLAndroidSDK/src/main/assets/ - # Local settings local.properties gradle/configuration.gradle diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 8e7bd0ed60..33897e7ed5 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -5,8 +5,8 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to ## master ### Bug fixes - -- Fixed an issue where it was possible to set the map’s content insets then tilt the map enough to see the horizon, causing performance issues [#15195](https://github.com/mapbox/mapbox-gl-native/pull/15195) + - Fixed an issue where it was possible to set the map’s content insets then tilt the map enough to see the horizon, causing performance issues [#15195](https://github.com/mapbox/mapbox-gl-native/pull/15195) + - Allow loading of a map without a Style URI or Style JSON [#15293](https://github.com/mapbox/mapbox-gl-native/pull/15293) ## 8.0.2 - July 31, 2019 [Changes](https://github.com/mapbox/mapbox-gl-native/compare/android-v8.0.1...android-v8.0.2) since [Mapbox Maps SDK for Android v8.0.1](https://github.com/mapbox/mapbox-gl-native/releases/tag/android-v8.0.1): diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index ea06856e9e..8e1019b379 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -837,7 +837,7 @@ public final class MapboxMap { nativeMapView.setStyleJson(builder.getJson()); } else { // user didn't provide a `from` component, load a blank style instead - nativeMapView.setStyleJson("{}"); + nativeMapView.setStyleJson(Style.EMPTY_JSON); } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java index a449ad8a06..a707ab13da 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java @@ -37,6 +37,8 @@ import java.util.Map; @SuppressWarnings("unchecked") public class Style { + static final String EMPTY_JSON = "{\"version\": 8,\"sources\": {},\"layers\": []}"; + private final NativeMap nativeMap; private final HashMap sources = new HashMap<>(); private final HashMap layers = new HashMap<>(); diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt index 9a7462b8d0..d618f17500 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt @@ -48,7 +48,7 @@ class StyleTest { fun testEmptyBuilder() { val builder = Style.Builder() mapboxMap.setStyle(builder) - verify(exactly = 1) { nativeMapView.styleJson = "{}" } + verify(exactly = 1) { nativeMapView.styleJson = Style.EMPTY_JSON } } @Test diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index 84ee250931..73c9b97f20 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -594,6 +594,17 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".activity.FeatureOverviewActivity" /> + + + + + map.moveCamera(CameraUpdateFactory.newLatLngZoom(cameraTarget, cameraZoom)) + map.setStyle( + Style.Builder() + .withImage(imageId, imageIcon) + .withSource(GeoJsonSource(sourceId, URI("asset://points-sf.geojson"))) + .withLayer(SymbolLayer(layerId, sourceId).withProperties(iconImage(imageId))) + ) + } + } + + override fun onStart() { + super.onStart() + mapView.onStart() + } + + override fun onResume() { + super.onResume() + mapView.onResume() + } + + override fun onPause() { + super.onPause() + mapView.onPause() + } + + override fun onStop() { + super.onStop() + mapView.onStop() + } + + override fun onLowMemory() { + super.onLowMemory() + mapView.onLowMemory() + } + + override fun onDestroy() { + super.onDestroy() + mapView.onDestroy() + } + + override fun onSaveInstanceState(outState: Bundle?) { + super.onSaveInstanceState(outState) + outState?.let { + mapView.onSaveInstanceState(it) + } + } + + companion object { + const val layerId = "custom-layer-id" + const val sourceId = "custom-source-id" + const val imageId = "image-id" + const val cameraZoom = 10.0 + val cameraTarget = LatLng(37.758912, -122.442578) + } +} \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml index 082eb39256..7f018a43ff 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml @@ -69,6 +69,7 @@ Enable a transparent surface on TextureView Blend an overlay on a map Example Custom Geometry Source + Load a map without providing a style URI or JSON Suzhou using Droid Sans for Chinese glyphs Example raster-dem source and hillshade layer Use HeatmapLayer to visualise earthquakes diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml index 94566ea995..90baaed284 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml @@ -68,6 +68,7 @@ TextureView transparent background Map overlay Grid Source + No Style URI/JSON Local CJK glyph generation Hillshade Heatmap layer -- cgit v1.2.1