From ddf0d25845177d3a3e865dd7e64cf98cf6b8a7d7 Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Fri, 12 Aug 2016 12:09:38 -0400 Subject: [android] #5978 - fix number property filters [ci skip] --- .../main/java/com/mapbox/mapboxsdk/style/layers/Filter.java | 3 ++- .../main/java/com/mapbox/mapboxsdk/style/layers/Function.java | 5 +++++ .../main/java/com/mapbox/mapboxsdk/style/layers/Layer.java | 5 +++-- .../testapp/activity/style/RuntimeStyleActivity.java | 11 +++++++++-- platform/android/src/style/android_conversion.hpp | 3 ++- 5 files changed, 21 insertions(+), 6 deletions(-) (limited to 'platform') diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Filter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Filter.java index 04da4da0cb..a0d065a6e9 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Filter.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Filter.java @@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.style.layers; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; /** * Utility to build filter expressions more easily: @@ -36,7 +37,7 @@ public class Filter { ArrayList array = new ArrayList<>(2 + values.length); array.add(operator); array.add(key); - array.addAll(Arrays.asList(values)); + Collections.addAll(array, values); return array.toArray(); } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Function.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Function.java index c776f9ff23..77454cc704 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Function.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Function.java @@ -27,6 +27,11 @@ public class Function { Object[] toValueObject() { return new Object[]{in, out}; } + + @Override + public String toString() { + return String.format("[%s, %s]", in, out); + } } @SafeVarargs diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java index 9bad3647a3..8c33fc976a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Layer.java @@ -26,11 +26,12 @@ public abstract class Layer { boolean updateClasses = false; for (Property property : properties) { + Object converted = convertValue(property.value); if (property instanceof PaintProperty) { updateClasses = true; - nativeSetPaintProperty(property.name, convertValue(property.value)); + nativeSetPaintProperty(property.name, converted); } else { - nativeSetLayoutProperty(property.name, convertValue(property.value)); + nativeSetLayoutProperty(property.name, converted); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java index a75c081202..71510d6868 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java @@ -307,8 +307,15 @@ public class RuntimeStyleActivity extends AppCompatActivity { PropertyValue fillColor = layer.getFillColor(); Function function = fillColor.getFunction(); - Log.d(TAG, "Fill color base: " + function.getBase()); - Log.d(TAG, "Fill color #stops: " + function.getStops().length); + if (function != null) { + Log.d(TAG, "Fill color base: " + function.getBase()); + Log.d(TAG, "Fill color #stops: " + function.getStops().length); + if (function.getStops() != null) { + for (Stop stop : function.getStops()) { + Log.d(TAG, "Fill color #stops: " + stop); + } + } + } } private String readRawResource(@RawRes int rawResource) throws IOException { diff --git a/platform/android/src/style/android_conversion.hpp b/platform/android/src/style/android_conversion.hpp index 0ccb704c0a..46ee768348 100644 --- a/platform/android/src/style/android_conversion.hpp +++ b/platform/android/src/style/android_conversion.hpp @@ -80,7 +80,8 @@ inline optional toValue(const mbgl::android::Value& value) { } else if (value.isString()) { return { value.toString() }; } else if (value.isNumber()) { - return { value.toNumber() }; + //Need to cast to a double here as the float is otherwise considered a bool... + return { (double) value.toNumber() }; } else { return {}; } -- cgit v1.2.1