summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-05-23 18:52:33 +0200
committerTobrun <tobrun.van.nuland@gmail.com>2019-08-01 17:40:48 +0300
commit9cf1746e350048177487406328ff7815287ede61 (patch)
tree563621bf57af952856957dceb07cc5f1360a2bf0
parent04309e01ceaa267becef16ed9db6f91fcea91f59 (diff)
downloadqtlocation-mapboxgl-9cf1746e350048177487406328ff7815287ede61.tar.gz
[android] - load style without url or json
-rw-r--r--platform/android/.gitignore3
-rw-r--r--platform/android/CHANGELOG.md4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java2
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java2
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt2
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml11
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/NoStyleActivity.kt84
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml1
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml1
9 files changed, 103 insertions, 7 deletions
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<String, Source> sources = new HashMap<>();
private final HashMap<String, Layer> 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" />
</activity>
+ <activity
+ android:name=".activity.style.NoStyleActivity"
+ android:description="@string/description_no_style"
+ android:label="@string/activity_no_style">
+ <meta-data
+ android:name="@string/category"
+ android:value="@string/category_style" />
+ <meta-data
+ android:name="android.support.PARENT_ACTIVITY"
+ android:value=".activity.FeatureOverviewActivity" />
+ </activity>
<!-- Features -->
<activity
android:name=".activity.feature.QueryRenderedFeaturesPropertiesActivity"
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/NoStyleActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/NoStyleActivity.kt
new file mode 100644
index 0000000000..ebc59e6536
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/NoStyleActivity.kt
@@ -0,0 +1,84 @@
+package com.mapbox.mapboxsdk.testapp.activity.style
+
+import android.graphics.drawable.Drawable
+import android.os.Bundle
+import android.support.v4.content.res.ResourcesCompat
+import android.support.v7.app.AppCompatActivity
+import com.mapbox.mapboxsdk.camera.CameraUpdateFactory
+import com.mapbox.mapboxsdk.geometry.LatLng
+import com.mapbox.mapboxsdk.maps.Style
+import com.mapbox.mapboxsdk.style.layers.PropertyFactory.*
+import com.mapbox.mapboxsdk.style.layers.SymbolLayer
+import com.mapbox.mapboxsdk.style.sources.GeoJsonSource
+import com.mapbox.mapboxsdk.testapp.R
+import java.net.URI
+import kotlinx.android.synthetic.main.activity_map_simple.*
+
+/**
+ * Activity showcasing how to load symbols on a map without a Style URI or Style JSON.
+ */
+class NoStyleActivity : AppCompatActivity() {
+
+ private val imageIcon: Drawable by lazy {
+ ResourcesCompat.getDrawable(resources, R.drawable.ic_add_white, theme)!!
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_map_simple)
+ mapView.getMapAsync { map ->
+ 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 @@
<string name="description_textureview_transparent">Enable a transparent surface on TextureView</string>
<string name="description_overlay">Blend an overlay on a map</string>
<string name="description_grid_source">Example Custom Geometry Source</string>
+ <string name="description_no_style">Load a map without providing a style URI or JSON</string>
<string name="description_local_glyph">Suzhou using Droid Sans for Chinese glyphs</string>
<string name="description_hillshade">Example raster-dem source and hillshade layer</string>
<string name="description_heatmaplayer">Use HeatmapLayer to visualise earthquakes</string>
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 @@
<string name="activity_textureview_transparent">TextureView transparent background</string>
<string name="activity_overlay">Map overlay</string>
<string name="activity_grid_source">Grid Source</string>
+ <string name="activity_no_style">No Style URI/JSON</string>
<string name="activity_local_glyph">Local CJK glyph generation</string>
<string name="activity_hillshade">Hillshade</string>
<string name="activity_heatmaplayer">Heatmap layer</string>