summaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/FillExtrusionLayer.java16
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java20
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/FillExtrusionLayerTest.java16
-rw-r--r--platform/android/src/style/layers/fill_extrusion_layer.cpp8
-rw-r--r--platform/android/src/style/layers/fill_extrusion_layer.hpp2
5 files changed, 61 insertions, 1 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/FillExtrusionLayer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/FillExtrusionLayer.java
index fada0c483c..286a6e7ee4 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/FillExtrusionLayer.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/FillExtrusionLayer.java
@@ -370,6 +370,18 @@ public class FillExtrusionLayer extends Layer {
nativeSetFillExtrusionBaseTransition(options.getDuration(), options.getDelay());
}
+ /**
+ * Get the FillExtrusionVerticalGradient property
+ *
+ * @return property wrapper value around Boolean
+ */
+ @NonNull
+ @SuppressWarnings("unchecked")
+ public PropertyValue<Boolean> getFillExtrusionVerticalGradient() {
+ checkThread();
+ return (PropertyValue<Boolean>) new PropertyValue("fill-extrusion-vertical-gradient", nativeGetFillExtrusionVerticalGradient());
+ }
+
@NonNull
@Keep
private native Object nativeGetFillExtrusionOpacity();
@@ -440,6 +452,10 @@ public class FillExtrusionLayer extends Layer {
@Keep
private native void nativeSetFillExtrusionBaseTransition(long duration, long delay);
+ @NonNull
+ @Keep
+ private native Object nativeGetFillExtrusionVerticalGradient();
+
@Override
@Keep
protected native void finalize() throws Throwable;
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java
index ace5be3a82..51edca3002 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/layers/PropertyFactory.java
@@ -1245,6 +1245,26 @@ public class PropertyFactory {
}
/**
+ * Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.
+ *
+ * @param value a Boolean value
+ * @return property wrapper around Boolean
+ */
+ public static PropertyValue<Boolean> fillExtrusionVerticalGradient(Boolean value) {
+ return new PaintPropertyValue<>("fill-extrusion-vertical-gradient", value);
+ }
+
+ /**
+ * Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.
+ *
+ * @param expression an expression statement
+ * @return property wrapper around an expression statement
+ */
+ public static PropertyValue<Expression> fillExtrusionVerticalGradient(Expression expression) {
+ return new PaintPropertyValue<>("fill-extrusion-vertical-gradient", expression);
+ }
+
+ /**
* The opacity at which the image will be drawn.
*
* @param value a Float value
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 7ff8039e1a..1f0eb25291 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
@@ -401,4 +401,20 @@ public class FillExtrusionLayerTest extends BaseActivityTest {
assertEquals(layer.getFillExtrusionBase().getExpression(), expression);
});
}
+
+ @Test
+ public void testFillExtrusionVerticalGradientAsConstant() {
+ validateTestSetup();
+ setupLayer();
+ Timber.i("fill-extrusion-vertical-gradient");
+ invoke(mapboxMap, (uiController, mapboxMap) -> {
+ assertNotNull(layer);
+ assertNull(layer.getFillExtrusionVerticalGradient().getValue());
+
+ // Set and Get
+ Boolean propertyValue = true;
+ layer.setProperties(fillExtrusionVerticalGradient(propertyValue));
+ assertEquals(layer.getFillExtrusionVerticalGradient().getValue(), propertyValue);
+ });
+ }
}
diff --git a/platform/android/src/style/layers/fill_extrusion_layer.cpp b/platform/android/src/style/layers/fill_extrusion_layer.cpp
index 7767a900d0..ddfbd71544 100644
--- a/platform/android/src/style/layers/fill_extrusion_layer.cpp
+++ b/platform/android/src/style/layers/fill_extrusion_layer.cpp
@@ -154,6 +154,11 @@ namespace android {
toFillExtrusionLayer(layer).setFillExtrusionBaseTransition(options);
}
+ jni::Local<jni::Object<>> FillExtrusionLayer::getFillExtrusionVerticalGradient(jni::JNIEnv& env) {
+ using namespace mbgl::android::conversion;
+ return std::move(*convert<jni::Local<jni::Object<>>>(env, toFillExtrusionLayer(layer).getFillExtrusionVerticalGradient()));
+ }
+
// FillExtrusionJavaLayerPeerFactory
@@ -207,7 +212,8 @@ namespace android {
METHOD(&FillExtrusionLayer::getFillExtrusionHeight, "nativeGetFillExtrusionHeight"),
METHOD(&FillExtrusionLayer::getFillExtrusionBaseTransition, "nativeGetFillExtrusionBaseTransition"),
METHOD(&FillExtrusionLayer::setFillExtrusionBaseTransition, "nativeSetFillExtrusionBaseTransition"),
- METHOD(&FillExtrusionLayer::getFillExtrusionBase, "nativeGetFillExtrusionBase"));
+ METHOD(&FillExtrusionLayer::getFillExtrusionBase, "nativeGetFillExtrusionBase"),
+ METHOD(&FillExtrusionLayer::getFillExtrusionVerticalGradient, "nativeGetFillExtrusionVerticalGradient"));
}
} // namespace android
diff --git a/platform/android/src/style/layers/fill_extrusion_layer.hpp b/platform/android/src/style/layers/fill_extrusion_layer.hpp
index fe7204985c..2d41a189a9 100644
--- a/platform/android/src/style/layers/fill_extrusion_layer.hpp
+++ b/platform/android/src/style/layers/fill_extrusion_layer.hpp
@@ -51,6 +51,8 @@ public:
void setFillExtrusionBaseTransition(jni::JNIEnv&, jlong duration, jlong delay);
jni::Local<jni::Object<TransitionOptions>> getFillExtrusionBaseTransition(jni::JNIEnv&);
+ jni::Local<jni::Object<jni::ObjectTag>> getFillExtrusionVerticalGradient(jni::JNIEnv&);
+
}; // class FillExtrusionLayer
class FillExtrusionJavaLayerPeerFactory final : public JavaLayerPeerFactory, public mbgl::FillExtrusionLayerFactory {