diff options
Diffstat (limited to 'platform/android')
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 { |