[android] "is-supported-script" expression support
This commit is contained in:
committed by
Łukasz Paczos
parent
794ba54a27
commit
1c103fa09a
@@ -2848,6 +2848,66 @@ public class Expression {
|
||||
return new Expression("resolved-locale", collator);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the input string is expected to render legibly.
|
||||
* Returns false if the input string contains sections that cannot be rendered without potential loss of meaning
|
||||
* (e.g. Indic scripts that require complex text shaping,
|
||||
* or right-to-left scripts if the the mapbox-gl-rtl-text plugin is not in use in Mapbox GL JS).
|
||||
* <p>
|
||||
* Example usage:
|
||||
* </p>
|
||||
* <pre>
|
||||
* {@code
|
||||
* mapboxMap.addLayer(new SymbolLayer("layer-id", "source-id")
|
||||
* .withProperties(
|
||||
* textField(
|
||||
* switchCase(
|
||||
* isSupportedScript(get("name_property")), get("name_property"),
|
||||
* literal("not-compatible")
|
||||
* )
|
||||
* )
|
||||
* ));
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @param expression the expression to evaluate
|
||||
* @return expression
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-is-supported-script">Style specification</a>
|
||||
*/
|
||||
public static Expression isSupportedScript(Expression expression) {
|
||||
return new Expression("is-supported-script", expression);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the input string is expected to render legibly.
|
||||
* Returns false if the input string contains sections that cannot be rendered without potential loss of meaning
|
||||
* (e.g. Indic scripts that require complex text shaping,
|
||||
* or right-to-left scripts if the the mapbox-gl-rtl-text plugin is not in use in Mapbox GL JS).
|
||||
* <p>
|
||||
* Example usage:
|
||||
* </p>
|
||||
* <pre>
|
||||
* {@code
|
||||
* mapboxMap.addLayer(new SymbolLayer("layer-id", "source-id")
|
||||
* .withProperties(
|
||||
* textField(
|
||||
* switchCase(
|
||||
* isSupportedScript("ಗೌರವಾರ್ಥವಾಗಿ"), literal("ಗೌರವಾರ್ಥವಾಗಿ"),
|
||||
* literal("not-compatible")
|
||||
* )
|
||||
* )
|
||||
* );
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @param string the string to evaluate
|
||||
* @return expression
|
||||
* @see <a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-is-supported-script">Style specification</a>
|
||||
*/
|
||||
public static Expression isSupportedScript(String string) {
|
||||
return new Expression("is-supported-script", literal(string));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the input string converted to uppercase.
|
||||
* <p>
|
||||
|
||||
@@ -43,6 +43,7 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.has;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.heatmapDensity;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.id;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.interpolate;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.isSupportedScript;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.length;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.let;
|
||||
import static com.mapbox.mapboxsdk.style.expressions.Expression.linear;
|
||||
@@ -1388,4 +1389,18 @@ public class ExpressionTest {
|
||||
String actual = Expression.toString(get("name_en")).toString();
|
||||
assertEquals("Reverse string conversion should match", expected, actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsSupportedScriptLiteral() {
|
||||
Object[] expected = new Object[] {"is-supported-script", "ಗೌರವಾರ್ಥವಾಗಿ"};
|
||||
Object[] actual = isSupportedScript("ಗೌರವಾರ್ಥವಾಗಿ").toArray();
|
||||
assertTrue("expression should match", Arrays.deepEquals(expected, actual));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsSupportedScriptExpressions() {
|
||||
Object[] expected = new Object[] {"is-supported-script", new Object[] {"get", "property_name"}};
|
||||
Object[] actual = isSupportedScript(get("property_name")).toArray();
|
||||
assertTrue("expression should match", Arrays.deepEquals(expected, actual));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user