@rnmapbox/maps 10.0.10-rc.0 → 10.0.10-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/rctmgl/build.gradle +1 -1
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImages.kt +7 -3
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.kt +4 -4
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.kt +2 -2
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/DownloadMapImageTask.kt +3 -3
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/ImageEntry.kt +1 -9
- package/ios/RCTMGL-v10/RCTMGLStyleValue.swift +20 -1
- package/package.json +1 -1
package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImages.kt
CHANGED
|
@@ -43,12 +43,16 @@ fun Style.addBitmapImage(imageId: String, bitmap: Bitmap, sdf: Boolean = false,
|
|
|
43
43
|
|
|
44
44
|
fun Style.addBitmapImage(nativeImage: NativeImage) : Expected<String, None> {
|
|
45
45
|
val info = nativeImage.info
|
|
46
|
-
return addBitmapImage(info.name, nativeImage.drawable.bitmap, info.sdf, info.stretchX, info.stretchY, info.content, info.
|
|
46
|
+
return addBitmapImage(info.name, nativeImage.drawable.bitmap, info.sdf, info.stretchX, info.stretchY, info.content, info.getScaleOr(1.0))
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
data class ImageInfo(val name: String, val scale: Double = 1.0, val sdf: Boolean = false, val stretchX: List<ImageStretches> = listOf(),
|
|
49
|
+
data class ImageInfo(val name: String, val scale: Double? = 1.0, val sdf: Boolean = false, val stretchX: List<ImageStretches> = listOf(),
|
|
50
50
|
val stretchY: List<ImageStretches> = listOf(), val content: ImageContent? = null)
|
|
51
|
-
{
|
|
51
|
+
{
|
|
52
|
+
fun getScaleOr(default: Double): Double {
|
|
53
|
+
return scale ?: default;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
52
56
|
|
|
53
57
|
data class NativeImage(val info: ImageInfo, val drawable: BitmapDrawable);
|
|
54
58
|
|
package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.kt
CHANGED
|
@@ -30,10 +30,10 @@ class RCTMGLImagesManager(private val mContext: ReactApplicationContext) :
|
|
|
30
30
|
|
|
31
31
|
fun imageInfo(name: String, map: ReadableMap): ImageInfo {
|
|
32
32
|
var sdf = false
|
|
33
|
-
var stretchX = listOf<ImageStretches>()
|
|
34
|
-
var stretchY = listOf<ImageStretches>()
|
|
35
|
-
var content : ImageContent? = null
|
|
36
|
-
var scale : Double =
|
|
33
|
+
var stretchX = listOf<ImageStretches>()
|
|
34
|
+
var stretchY = listOf<ImageStretches>()
|
|
35
|
+
var content : ImageContent? = null
|
|
36
|
+
var scale : Double? = null
|
|
37
37
|
if (map.hasKey("sdf")) {
|
|
38
38
|
sdf = map.getBoolean("sdf");
|
|
39
39
|
}
|
package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.kt
CHANGED
|
@@ -18,7 +18,7 @@ class RCTMGLStyleValue(config: ReadableMap) {
|
|
|
18
18
|
private val mPayload: ReadableMap?
|
|
19
19
|
var imageURI: String? = ""
|
|
20
20
|
private var isAddImage = false
|
|
21
|
-
var imageScale =
|
|
21
|
+
var imageScale: Double? = null
|
|
22
22
|
private fun isTokenizedValue(value: String): Boolean {
|
|
23
23
|
return value.startsWith("{") && value.endsWith("}")
|
|
24
24
|
}
|
|
@@ -185,7 +185,7 @@ class RCTMGLStyleValue(config: ReadableMap) {
|
|
|
185
185
|
mPayload = config.getMap("stylevalue")
|
|
186
186
|
isAddImage = false
|
|
187
187
|
if ("image" == type) {
|
|
188
|
-
imageScale =
|
|
188
|
+
imageScale = null
|
|
189
189
|
if ("hashmap" == mPayload!!.getString("type")) {
|
|
190
190
|
val map = map
|
|
191
191
|
imageURI = map!!.getMap("uri")!!.getString("value")
|
|
@@ -126,7 +126,7 @@ class DownloadMapImageTask(context: Context, map: MapboxMap, callback: OnAllImag
|
|
|
126
126
|
bitmapImages[image.name] = image.bitmap
|
|
127
127
|
val info = image.info
|
|
128
128
|
style.addBitmapImage(image.name, image.bitmap,sdf = info.sdf, stretchX = info.stretchX, stretchY = info.stretchY,
|
|
129
|
-
content = info.content,scale = info.
|
|
129
|
+
content = info.content,scale = info.getScaleOr(1.0)
|
|
130
130
|
)
|
|
131
131
|
}
|
|
132
132
|
}
|
|
@@ -134,11 +134,11 @@ class DownloadMapImageTask(context: Context, map: MapboxMap, callback: OnAllImag
|
|
|
134
134
|
mCallback?.onAllImagesLoaded()
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
private fun getBitmapOptions(metrics: DisplayMetrics, scale: Double): BitmapFactory.Options {
|
|
137
|
+
private fun getBitmapOptions(metrics: DisplayMetrics, scale: Double?): BitmapFactory.Options {
|
|
138
138
|
val options = BitmapFactory.Options()
|
|
139
139
|
options.inScreenDensity = metrics.densityDpi
|
|
140
140
|
options.inTargetDensity = metrics.densityDpi
|
|
141
|
-
if (scale !=
|
|
141
|
+
if (scale != null) {
|
|
142
142
|
options.inDensity = (DisplayMetrics.DENSITY_DEFAULT.toDouble() * scale).toInt()
|
|
143
143
|
}
|
|
144
144
|
return options
|
|
@@ -4,14 +4,6 @@ import com.mapbox.rctmgl.components.images.ImageInfo
|
|
|
4
4
|
|
|
5
5
|
data class ImageEntry(val uri: String, val info: ImageInfo) {
|
|
6
6
|
fun getScaleOr(v: Double): Double {
|
|
7
|
-
return
|
|
8
|
-
v
|
|
9
|
-
} else {
|
|
10
|
-
info.scale
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
companion object {
|
|
15
|
-
const val defaultScale = 0.0
|
|
7
|
+
return info.getScaleOr(v)
|
|
16
8
|
}
|
|
17
9
|
}
|
|
@@ -362,11 +362,30 @@ class RCTMGLStyleValue {
|
|
|
362
362
|
func mglStyleValueLineCap() -> Value<LineCap> {
|
|
363
363
|
return mglStyleValueEnum()
|
|
364
364
|
}
|
|
365
|
+
|
|
366
|
+
func parseExpression(_ expression: [Any]) throws -> Expression {
|
|
367
|
+
let data = try JSONSerialization.data(withJSONObject: expression, options: .prettyPrinted)
|
|
368
|
+
let decodedExpression = try JSONDecoder().decode(Expression.self, from: data)
|
|
369
|
+
return decodedExpression
|
|
370
|
+
}
|
|
365
371
|
|
|
366
372
|
func mglStyleValueEnum<Enum : RawRepresentable>() -> Value<Enum> where Enum.RawValue == String {
|
|
367
373
|
if let value = value as? Dictionary<String,Any> {
|
|
368
374
|
let value = RCTMGLStyleValue.convert(value["stylevalue"] as! [String:Any])
|
|
369
|
-
|
|
375
|
+
if let value = value as? String {
|
|
376
|
+
return Value.constant(Enum(rawValue: value )!)
|
|
377
|
+
} else if let value = value as? [Any] {
|
|
378
|
+
if let parsedExpression = (logged("mglStyleValueEnum: failed to parse expression") {
|
|
379
|
+
try parseExpression(value)
|
|
380
|
+
}) {
|
|
381
|
+
return .expression(parsedExpression)
|
|
382
|
+
} else {
|
|
383
|
+
return Value.constant(Enum(rawValue: value[0] as! String)!)
|
|
384
|
+
}
|
|
385
|
+
} else {
|
|
386
|
+
Logger.log(level: .error, message:"Invalid value for enum (nor string, not array): \(value) returning something")
|
|
387
|
+
return Value.constant(Enum(rawValue: value as! String)!)
|
|
388
|
+
}
|
|
370
389
|
} else {
|
|
371
390
|
Logger.log(level: .error, message:"Invalid value for enum: \(value) returning something")
|
|
372
391
|
return Value.constant(Enum(rawValue: value as! String)!)
|