diff options
author | Justin R. Miller <incanus@codesorcery.net> | 2017-01-18 12:43:08 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-18 12:43:08 -0800 |
commit | f6715694f918a884eda77151aa4fec05521b9536 (patch) | |
tree | bd930307db9fb13ad5751324ae57bf858f30aa2a /platform/android | |
parent | d076ba05673a6ced9d3e641e2c7a2b5f3c70a80f (diff) | |
download | qtlocation-mapboxgl-f6715694f918a884eda77151aa4fec05521b9536.tar.gz |
refs #6779: mobile & Mac SDK style transition options (#7711)
Diffstat (limited to 'platform/android')
6 files changed, 123 insertions, 1 deletions
diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index b89e498d21..473ac310ef 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -35,6 +35,7 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to - Extracting all business logic related to annotations into a seperate class cfr. to core and the iOS codebase * Gesture handling bugs - Avoid calls to onFling when while pinch zooming [#7666](https://github.com/mapbox/mapbox-gl-native/issues/7666) +* Support for style-wide transition animation duration and delay [#6779](https://github.com/mapbox/mapbox-gl-native/issues/6779) ## 4.2.1 - December 22, 2016 diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 2fa7fc4641..9e8073edb8 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -166,6 +166,52 @@ public final class MapboxMap { // Style + /** + * <p> + * Get the animation duration for style changes. + * </p> + * The default value is zero, so any changes take effect without animation. + * + * @return Duration in seconds + */ + @UiThread + public long getTransitionDuration() { + return nativeMapView.getTransitionDuration(); + } + + /** + * Set the animation duration for style changes. + * + * @param duration Duration in seconds + */ + @UiThread + public void setTransitionDuration(long duration) { + nativeMapView.setTransitionDuration(duration); + } + + /** + * <p> + * Get the animation delay for style changes. + * </p> + * The default value is zero, so any changes begin to animate immediately. + * + * @return Delay in seconds + */ + @UiThread + public long getTransitionDelay() { + return nativeMapView.getTransitionDelay(); + } + + /** + * Set the animation delay for style changes. + * + * @param delay Delay in seconds + */ + @UiThread + public void setTransitionDelay(long delay) { + nativeMapView.setTransitionDelay(delay); + } + @Nullable @UiThread public Layer getLayer(@NonNull String layerId) { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index 05d1bf1750..0c15480dee 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -767,6 +767,22 @@ final class NativeMapView { // Runtime style Api + public long getTransitionDuration() { + return nativeGetTransitionDuration(nativeMapViewPtr); + } + + public void setTransitionDuration(long duration) { + nativeSetTransitionDuration(nativeMapViewPtr, duration); + } + + public long getTransitionDelay() { + return nativeGetTransitionDelay(nativeMapViewPtr); + } + + public void setTransitionDelay(long delay) { + nativeSetTransitionDelay(nativeMapViewPtr, delay); + } + public Layer getLayer(String layerId) { if (isDestroyedOn("getLayer")) { return null; @@ -1098,6 +1114,14 @@ final class NativeMapView { private native double[] nativeGetCameraValues(long nativeMapViewPtr); + private native long nativeGetTransitionDuration(long nativeMapViewPtr); + + private native void nativeSetTransitionDuration(long nativeMapViewPtr, long duration); + + private native long nativeGetTransitionDelay(long nativeMapViewPtr); + + private native void nativeSetTransitionDelay(long nativeMapViewPtr, long delay); + private native Layer nativeGetLayer(long nativeMapViewPtr, String layerId); private native void nativeAddLayer(long nativeMapViewPtr, long layerPtr, String before); 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 2ac3a6fb00..983f82c53a 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 @@ -239,6 +239,8 @@ public class RuntimeStyleActivity extends AppCompatActivity { private void setWaterColor() { Layer water = mapboxMap.getLayer("water"); if (water != null) { + mapboxMap.setTransitionDuration(5); + mapboxMap.setTransitionDelay(1); water.setProperties( visibility(VISIBLE), fillColor(Color.RED) diff --git a/platform/android/checkstyle.xml b/platform/android/checkstyle.xml index 6a429858a6..3449036e99 100644 --- a/platform/android/checkstyle.xml +++ b/platform/android/checkstyle.xml @@ -19,7 +19,10 @@ <!-- <module name="NewlineAtEndOfFile"> <property name="lineSeparator" value="lf" /> </module> --> - <module name="FileLength"/> + <module name="FileLength"> + <property name="max" value="2042"/> + </module> + <module name="FileTabCharacter"/> <!-- Trailing spaces --> diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp index 5182e268f3..1ef7fec8fb 100755 --- a/platform/android/src/jni.cpp +++ b/platform/android/src/jni.cpp @@ -1082,6 +1082,48 @@ void nativeFlyTo(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr, jdouble nativeMapView->getMap().flyTo(cameraOptions, animationOptions); } +jlong nativeGetTransitionDuration(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr) { + assert(env); + assert(nativeMapViewPtr != 0); + + NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr); + + const auto transitionOptions = nativeMapView->getMap().getTransitionOptions(); + return transitionOptions.duration.value_or(mbgl::Duration::zero()).count(); +} + +void nativeSetTransitionDuration(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr, jlong duration) { + assert(env); + assert(nativeMapViewPtr != 0); + + NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr); + + auto transitionOptions = nativeMapView->getMap().getTransitionOptions(); + transitionOptions.duration = std::chrono::duration_cast<mbgl::Duration>(std::chrono::duration<jlong>(duration)); + nativeMapView->getMap().setTransitionOptions(transitionOptions); +} + +jlong nativeGetTransitionDelay(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr) { + assert(env); + assert(nativeMapViewPtr != 0); + + NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr); + + const auto transitionOptions = nativeMapView->getMap().getTransitionOptions(); + return transitionOptions.delay.value_or(mbgl::Duration::zero()).count(); +} + +void nativeSetTransitionDelay(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr, jlong delay) { + assert(env); + assert(nativeMapViewPtr != 0); + + NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr); + + auto transitionOptions = nativeMapView->getMap().getTransitionOptions(); + transitionOptions.delay = std::chrono::duration_cast<mbgl::Duration>(std::chrono::duration<jlong>(delay)); + nativeMapView->getMap().setTransitionOptions(transitionOptions); +} + jni::jobject* nativeGetLayer(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr, jni::jstring* layerId) { assert(env); assert(nativeMapViewPtr != 0); @@ -1876,6 +1918,10 @@ void registerNatives(JavaVM *vm) { MAKE_NATIVE_METHOD(nativeJumpTo, "(JDDDDD)V"), MAKE_NATIVE_METHOD(nativeEaseTo, "(JDDDJDDZ)V"), MAKE_NATIVE_METHOD(nativeFlyTo, "(JDDDJDD)V"), + MAKE_NATIVE_METHOD(nativeGetTransitionDuration, "(J)J"), + MAKE_NATIVE_METHOD(nativeSetTransitionDuration, "(JJ)V"), + MAKE_NATIVE_METHOD(nativeGetTransitionDelay, "(J)J"), + MAKE_NATIVE_METHOD(nativeSetTransitionDelay, "(JJ)V"), MAKE_NATIVE_METHOD(nativeGetLayer, "(JLjava/lang/String;)Lcom/mapbox/mapboxsdk/style/layers/Layer;"), MAKE_NATIVE_METHOD(nativeAddLayer, "(JJLjava/lang/String;)V"), MAKE_NATIVE_METHOD(nativeRemoveLayerById, "(JLjava/lang/String;)V"), |