summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2018-09-19 15:20:03 -0700
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2018-10-24 13:35:36 +0200
commit78a1c30e80c70f36ffec8193753919277418a3ca (patch)
treec828bd86630cc64762bc59469ebbd24552fe673f
parentfc2afc1d23e23f2fc27626409e974e6846020ec5 (diff)
downloadqtlocation-mapboxgl-78a1c30e80c70f36ffec8193753919277418a3ca.tar.gz
[android] Minimal Android wrapper on 'format' expression
For converting to Java types, flatten 'text-field' back to a string.
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/expressions/Expression.java7
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/SymbolLayerTest.java26
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/layer.junit.ejs30
3 files changed, 11 insertions, 52 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 bdeeeb0926..f586ecfdb2 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
@@ -3224,6 +3224,11 @@ public class Expression {
return new Expression("collator", new ExpressionMap(map));
}
+ public static Expression format(Expression input) {
+ Map<String, Expression> map = new HashMap<>();
+ return new Expression("format", input, new ExpressionMap(map));
+ }
+
/**
* Asserts that the input value is an object. If it is not, the expression is an error
* The asserted input value is returned as result.
@@ -4441,4 +4446,4 @@ public class Expression {
}
return objects;
}
-} \ No newline at end of file
+}
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 7026e87a47..d61397033c 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
@@ -13,8 +13,6 @@ import com.mapbox.mapboxsdk.testapp.activity.BaseActivityTest;
import org.junit.Test;
import org.junit.runner.RunWith;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
import static com.mapbox.mapboxsdk.style.expressions.Expression.*;
import static com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke;
@@ -479,18 +477,8 @@ public class SymbolLayerTest extends BaseActivityTest {
assertEquals((String) layer.getTextField().getValue(), (String) "");
layer.setProperties(textField("{token}"));
- JsonArray formatExpression = new JsonArray();
- formatExpression.add("format");
- JsonArray getExpression = new JsonArray();
- getExpression.add("get");
- getExpression.add("token");
- JsonArray stringCoercion = new JsonArray();
- stringCoercion.add("to-string");
- stringCoercion.add(getExpression);
- formatExpression.add(stringCoercion);
- formatExpression.add(new JsonObject());
assertEquals(layer.getTextField().getExpression(),
- Converter.convert(formatExpression));
+ Expression.format(Expression.toString(Expression.get("token"))));
});
}
@@ -503,17 +491,7 @@ public class SymbolLayerTest extends BaseActivityTest {
assertNotNull(layer);
// Set and Get
- JsonArray formatExpression = new JsonArray();
- formatExpression.add("format");
- JsonArray getExpression = new JsonArray();
- getExpression.add("get");
- getExpression.add("undefined");
- JsonArray stringAssertion = new JsonArray();
- stringAssertion.add("string");
- stringAssertion.add(getExpression);
- formatExpression.add(stringAssertion);
- formatExpression.add(new JsonObject());
- Expression expression = Converter.convert(formatExpression);
+ Expression expression = Expression.format(string(Expression.get("undefined")));
layer.setProperties(textField(expression));
assertEquals(layer.getTextField().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 e78620d1b7..ee2bd2477c 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
@@ -17,10 +17,6 @@ import com.mapbox.mapboxsdk.testapp.activity.BaseActivityTest;
import org.junit.Test;
import org.junit.runner.RunWith;
-<% if (type === 'symbol') { -%>
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-<% } -%>
import static com.mapbox.mapboxsdk.style.expressions.Expression.*;
import static com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke;
@@ -170,18 +166,8 @@ public class <%- camelize(type) %>LayerTest extends BaseActivityTest {
layer.setProperties(<%- camelizeWithLeadingLowercase(property.name) %>("{token}"));
<% if (property.type === 'formatted') { -%>
- JsonArray formatExpression = new JsonArray();
- formatExpression.add("format");
- JsonArray getExpression = new JsonArray();
- getExpression.add("get");
- getExpression.add("token");
- JsonArray stringCoercion = new JsonArray();
- stringCoercion.add("to-string");
- stringCoercion.add(getExpression);
- formatExpression.add(stringCoercion);
- formatExpression.add(new JsonObject());
- assertEquals(layer.getTextField().getExpression(),
- Converter.convert(formatExpression));
+ assertEquals(layer.get<%- camelize(property.name) %>().getExpression(),
+ Expression.format(Expression.toString(Expression.get("token"))));
<% } else { -%>
assertEquals(layer.get<%- camelize(property.name) %>().getExpression(), Expression.toString(Expression.get("token")));
<% } -%>
@@ -201,17 +187,7 @@ public class <%- camelize(type) %>LayerTest extends BaseActivityTest {
// Set and Get
<% if (property.type === 'formatted') { -%>
- JsonArray formatExpression = new JsonArray();
- formatExpression.add("format");
- JsonArray getExpression = new JsonArray();
- getExpression.add("get");
- getExpression.add("undefined");
- JsonArray stringAssertion = new JsonArray();
- stringAssertion.add("string");
- stringAssertion.add(getExpression);
- formatExpression.add(stringAssertion);
- formatExpression.add(new JsonObject());
- Expression expression = Converter.convert(formatExpression);
+ Expression expression = Expression.format(<%- defaultExpressionJava(property) %>(Expression.get("undefined")));
<% } else { -%>
Expression expression = <%- defaultExpressionJava(property) %>(Expression.get("undefined"));
<% } -%>