summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuardiola31337 <pablo.guardiola@mapbox.com>2017-05-25 12:46:01 +0200
committerGuardiola31337 <pablo.guardiola@mapbox.com>2017-05-25 17:10:32 +0200
commit1c245f940fadd5644421a17147a49087dbf24bf6 (patch)
tree40b9df1d0aaf9ac3cb152d765cb9da05ee43703b
parent1f33adaee221a81e8eb0919f8ef6867b594d7503 (diff)
downloadqtlocation-mapboxgl-1c245f940fadd5644421a17147a49087dbf24bf6.tar.gz
[WIP] add equals filter statement conversion
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/Filter.java4
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillLayerTest.java4
-rw-r--r--platform/android/src/style/filter.cpp6
-rw-r--r--platform/android/src/style/layers/layer.cpp12
4 files changed, 16 insertions, 10 deletions
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 643a126388..d6f04e5a9b 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
@@ -26,6 +26,10 @@ public class Filter {
* @return the filter represented as an array
*/
public abstract Object[] toArray();
+
+ public String getOperator() {
+ return operator;
+ }
}
/**
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 857d07e965..25254c76d8 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
@@ -73,8 +73,8 @@ public class FillLayerTest extends BaseActivityTest {
Timber.i("Filter");
assertNotNull(layer);
- layer.setFilter(all(eq("type", "park")));
- assertEquals(all(eq("type", "park")), layer.getFilter());
+ layer.setFilter(eq("type", "park"));
+ assertEquals("==", layer.getFilter().getOperator());
}
@Test
diff --git a/platform/android/src/style/filter.cpp b/platform/android/src/style/filter.cpp
index 3e5c28c08f..30a2add903 100644
--- a/platform/android/src/style/filter.cpp
+++ b/platform/android/src/style/filter.cpp
@@ -4,8 +4,10 @@ namespace mbgl {
namespace android {
jni::Object<Filter::Statement> Filter::fromFilter(jni::JNIEnv& env, const mbgl::style::Filter&) {
- static auto constructor = Filter::Statement::javaClass.template GetConstructor<>(env);
- return Filter::Statement::javaClass.New(env, constructor);
+ static auto constructor = Filter::Statement::javaClass.template GetConstructor<jni::String>(env);
+ const char *const equals = "==";
+ auto joper = jni::Make<jni::String>(env, equals);
+ return Filter::Statement::javaClass.New(env, constructor, joper);
}
jni::Class<Filter> Filter::javaClass;
diff --git a/platform/android/src/style/layers/layer.cpp b/platform/android/src/style/layers/layer.cpp
index 0c51f8470d..2f2f155367 100644
--- a/platform/android/src/style/layers/layer.cpp
+++ b/platform/android/src/style/layers/layer.cpp
@@ -100,17 +100,17 @@ namespace android {
}
struct GetFilterEvaluator {
- optional<Filter> noop(std::string layerType) {
+ optional<style::Filter> noop(std::string layerType) {
Log::Warning(mbgl::Event::JNI, "%s doesn't support filters", layerType.c_str());
return {};
}
- optional<Filter> operator()(style::BackgroundLayer&) { return noop("BackgroundLayer"); }
- optional<Filter> operator()(style::CustomLayer&) { return noop("CustomLayer"); }
- optional<Filter> operator()(style::RasterLayer&) { return noop("RasterLayer"); }
+ optional<style::Filter> operator()(style::BackgroundLayer&) { return noop("BackgroundLayer"); }
+ optional<style::Filter> operator()(style::CustomLayer&) { return noop("CustomLayer"); }
+ optional<style::Filter> operator()(style::RasterLayer&) { return noop("RasterLayer"); }
template <class LayerType>
- optional<Filter> operator()(LayerType& layer) {
+ optional<style::Filter> operator()(LayerType& layer) {
return { layer.getFilter() };
}
};
@@ -144,7 +144,7 @@ namespace android {
Value wrapped(env, jfilter);
Error error;
- optional<Filter> converted = convert<Filter>(wrapped, error);
+ optional<mbgl::style::Filter> converted = convert<mbgl::style::Filter>(wrapped, error);
if (!converted) {
mbgl::Log::Error(mbgl::Event::JNI, "Error setting filter: " + error.message);
return;