summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2019-11-12 14:33:09 +0200
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2019-11-12 16:41:56 +0200
commit85c93e7e8348226425e6229bfcf963899d14a4f0 (patch)
treef71016517e2c991e277c16b1ec7c1c40ff028eed
parentee38730eedbdae682ed1a8407392026c7eac2ee6 (diff)
downloadqtlocation-mapboxgl-85c93e7e8348226425e6229bfcf963899d14a4f0.tar.gz
[android] Update unit tests that use resolvedImage type
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java43
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillExtrusionLayerTest.java2
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillLayerTest.java2
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/LineLayerTest.java2
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/SymbolLayerTest.java4
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/layer.junit.ejs4
-rwxr-xr-xplatform/android/scripts/generate-style-code.js4
7 files changed, 54 insertions, 7 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java
index 34b3308809..ba1d9337a3 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java
@@ -4888,4 +4888,47 @@ public class Expression {
}
return objects;
}
+
+ /**
+ * Returns image expression for use in '*-pattern' and 'icon-image' layer properties. Compared to
+ * string literals that can be used to represent an image, image expression allows to determine an
+ * image's availability at runtime, thus, can be used in conditional <a href="https://docs.mapbox.com/mapbox-gl-js/style-spec/#expressions-coalesce">coalesce operator</a>.
+ *
+ * <p>
+ * Example usage:
+ * </p>
+ * <pre>
+ * {@code
+ * SymbolLayer symbolLayer = new SymbolLayer("layer-id", "source-id");
+ * symbolLayer.setProperties(
+ * iconImage(image(get("key-to-feature")))
+ * );
+ * }
+ * </pre>
+ *
+ * <p>
+ * Example usage with coalesce operator:
+ * </p>
+ * <pre>
+ * {@code
+ * SymbolLayer symbolLayer = new SymbolLayer("layer-id", "source-id");
+ * symbolLayer.setProperties(
+ * iconImage(
+ * coalesce(
+ * image(literal("maki-11")),
+ * image(literal("bicycle-15")),
+ * image(literal("default-icon"))
+ * )
+ * )
+ * );
+ * }
+ * </pre>
+ *
+ * @param input expression input
+ * @return expression
+ * @see <a href="https://docs.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-image">Image expression</a>
+ */
+ public static Expression image(@NonNull Expression input) {
+ return new Expression("image", input);
+ }
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillExtrusionLayerTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillExtrusionLayerTest.java
index cdfd030f9b..4b936a4c92 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillExtrusionLayerTest.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillExtrusionLayerTest.java
@@ -244,7 +244,7 @@ public class FillExtrusionLayerTest extends BaseLayerTest {
assertNull(layer.getFillExtrusionPattern().getExpression());
// Set and Get
- Expression expression = string(Expression.get("undefined"));
+ Expression expression = image(string(Expression.get("undefined")));
layer.setProperties(fillExtrusionPattern(expression));
assertEquals(layer.getFillExtrusionPattern().getExpression(), expression);
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillLayerTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillLayerTest.java
index f6e3cc8548..4e9dddc0a6 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillLayerTest.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillLayerTest.java
@@ -319,7 +319,7 @@ public class FillLayerTest extends BaseLayerTest {
assertNull(layer.getFillPattern().getExpression());
// Set and Get
- Expression expression = string(Expression.get("undefined"));
+ Expression expression = image(string(Expression.get("undefined")));
layer.setProperties(fillPattern(expression));
assertEquals(layer.getFillPattern().getExpression(), expression);
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/LineLayerTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/LineLayerTest.java
index 5e00890f7f..4c8e70d3d1 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/LineLayerTest.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/LineLayerTest.java
@@ -486,7 +486,7 @@ public class LineLayerTest extends BaseLayerTest {
assertNull(layer.getLinePattern().getExpression());
// Set and Get
- Expression expression = string(Expression.get("undefined"));
+ Expression expression = image(string(Expression.get("undefined")));
layer.setProperties(linePattern(expression));
assertEquals(layer.getLinePattern().getExpression(), expression);
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/SymbolLayerTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/SymbolLayerTest.java
index c65e37019b..02205b3c9e 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/SymbolLayerTest.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/SymbolLayerTest.java
@@ -296,7 +296,7 @@ public class SymbolLayerTest extends BaseLayerTest {
assertEquals(layer.getIconImage().getValue(), propertyValue);
layer.setProperties(iconImage("{token}"));
- assertEquals(layer.getIconImage().getExpression(), Expression.toString(Expression.get("token")));
+ assertEquals(layer.getIconImage().getExpression(), image(Expression.toString(Expression.get("token"))));
}
@Test
@@ -307,7 +307,7 @@ public class SymbolLayerTest extends BaseLayerTest {
assertNull(layer.getIconImage().getExpression());
// Set and Get
- Expression expression = string(Expression.get("undefined"));
+ Expression expression = image(string(Expression.get("undefined")));
layer.setProperties(iconImage(expression));
assertEquals(layer.getIconImage().getExpression(), expression);
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/layer.junit.ejs b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/layer.junit.ejs
index 1104cbed9d..141114c1a0 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/layer.junit.ejs
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/layer.junit.ejs
@@ -151,6 +151,8 @@ public class <%- camelize(type) %>LayerTest extends BaseLayerTest {
layer.setProperties(<%- camelizeWithLeadingLowercase(property.name) %>("{token}"));
<% if (property.type === 'formatted') { -%>
assertEquals(layer.get<%- camelize(property.name) %>().getExpression(), <%- defaultExpressionJava(property) %>(Expression.formatEntry(Expression.toString(Expression.get("token")))));
+<% } else if (property.type === 'resolvedImage') {-%>
+ assertEquals(layer.get<%- camelize(property.name) %>().getExpression(), <%- defaultExpressionJava(property) %>(Expression.toString(Expression.get("token"))));
<% } else {-%>
assertEquals(layer.get<%- camelize(property.name) %>().getExpression(), Expression.toString(Expression.get("token")));
<% } -%>
@@ -169,6 +171,8 @@ public class <%- camelize(type) %>LayerTest extends BaseLayerTest {
// Set and Get
<% if (property.type === 'formatted') { -%>
Expression expression = <%- defaultExpressionJava(property) %>(Expression.formatEntry(Expression.get("undefined"), FormatOption.formatFontScale(2.0), FormatOption.formatTextFont(new String[]{"Open Sans Regular", "Arial Unicode MS Regular"})));
+<% } else if (property.type === 'resolvedImage') { -%>
+ Expression expression = <%- defaultExpressionJava(property) %>(string(Expression.get("undefined")));
<% } else { -%>
Expression expression = <%- defaultExpressionJava(property) %>(Expression.get("undefined"));
<% } -%>
diff --git a/platform/android/scripts/generate-style-code.js b/platform/android/scripts/generate-style-code.js
index 9e07b36440..3265c161e4 100755
--- a/platform/android/scripts/generate-style-code.js
+++ b/platform/android/scripts/generate-style-code.js
@@ -179,9 +179,9 @@ global.defaultExpressionJava = function(property) {
return 'number';
case 'formatted':
return 'format';
+ case 'resolvedImage':
+ return "image";
case 'string':
- case 'image':
- return "string";
case 'enum':
return "string";
case 'color':