summaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
authorJustin R. Miller <incanus@codesorcery.net>2017-01-18 12:43:08 -0800
committerGitHub <noreply@github.com>2017-01-18 12:43:08 -0800
commitf6715694f918a884eda77151aa4fec05521b9536 (patch)
treebd930307db9fb13ad5751324ae57bf858f30aa2a /platform/android
parentd076ba05673a6ced9d3e641e2c7a2b5f3c70a80f (diff)
downloadqtlocation-mapboxgl-f6715694f918a884eda77151aa4fec05521b9536.tar.gz
refs #6779: mobile & Mac SDK style transition options (#7711)
Diffstat (limited to 'platform/android')
-rw-r--r--platform/android/CHANGELOG.md1
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java46
-rwxr-xr-xplatform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java24
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java2
-rw-r--r--platform/android/checkstyle.xml5
-rwxr-xr-xplatform/android/src/jni.cpp46
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"),