From a4959131b2cf5500a66c26ebd83ee3de44861feb Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 30 Mar 2017 13:25:56 +0200 Subject: [android] - transition options in milliseconds, added test cases, fixup test activity code (#8576) --- platform/android/CHANGELOG.md | 1 + .../java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 16 +++++------ .../com/mapbox/mapboxsdk/maps/MapboxMapTest.java | 32 ++++++++++++++++++++++ .../activity/style/RuntimeStyleActivity.java | 4 +-- platform/android/src/native_map_view.cpp | 8 +++--- 5 files changed, 47 insertions(+), 14 deletions(-) (limited to 'platform') diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index ec0a5f1586..bc490fc7ab 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -6,6 +6,7 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to 5.1.0 builds further on 5.0.1 and adds: +* Style wide transition duration and transition offset in milliseconds [#8576](https://github.com/mapbox/mapbox-gl-native/pull/8576) * LatLngBounds includes with another bounds [#8517](https://github.com/mapbox/mapbox-gl-native/pull/8517) * LatLngBounds includes takes in account LatLng on the edges (cfr. core) [#8517](https://github.com/mapbox/mapbox-gl-native/pull/8517) * LatLngBounds facility getters/setters for LatLnbg on the edges of the bounds [#8517](https://github.com/mapbox/mapbox-gl-native/pull/8517) 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 6edae8b944..40585700d1 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 @@ -194,7 +194,7 @@ public final class MapboxMap { *

* The default value is zero, so any changes take effect without animation. * - * @return Duration in seconds + * @return Duration in milliseconds */ @UiThread public long getTransitionDuration() { @@ -204,11 +204,11 @@ public final class MapboxMap { /** * Set the animation duration for style changes. * - * @param duration Duration in seconds + * @param durationMs Duration in milliseconds */ @UiThread - public void setTransitionDuration(long duration) { - nativeMapView.setTransitionDuration(duration); + public void setTransitionDuration(long durationMs) { + nativeMapView.setTransitionDuration(durationMs); } /** @@ -217,7 +217,7 @@ public final class MapboxMap { *

* The default value is zero, so any changes begin to animate immediately. * - * @return Delay in seconds + * @return Delay in milliseconds */ @UiThread public long getTransitionDelay() { @@ -227,11 +227,11 @@ public final class MapboxMap { /** * Set the animation delay for style changes. * - * @param delay Delay in seconds + * @param delayMs Delay in milliseconds */ @UiThread - public void setTransitionDelay(long delay) { - nativeMapView.setTransitionDelay(delay); + public void setTransitionDelay(long delayMs) { + nativeMapView.setTransitionDelay(delayMs); } /** diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java index 2cd077f510..c110935133 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java @@ -75,6 +75,38 @@ public class MapboxMapTest { assertNotNull("mapboxMap should not be null", mapboxMap); } + // + // Style wide transition options + // + + @Test + public void testTransitionDuration() { + ViewUtils.checkViewIsDisplayed(R.id.mapView); + final MapboxMap mapboxMap = activity.getMapboxMap(); + onView(withId(R.id.mapView)).perform(new MapboxMapAction(new InvokeViewAction() { + @Override + public void onViewAction(UiController uiController, View view) { + long transitionDuration = 600; + mapboxMap.setTransitionDuration(transitionDuration); + assertEquals("TransitionDuration should match", transitionDuration, mapboxMap.getTransitionDuration(), 0); + } + })); + } + + @Test + public void testTransitionDelay() { + ViewUtils.checkViewIsDisplayed(R.id.mapView); + final MapboxMap mapboxMap = activity.getMapboxMap(); + onView(withId(R.id.mapView)).perform(new MapboxMapAction(new InvokeViewAction() { + @Override + public void onViewAction(UiController uiController, View view) { + long transitionDelay = 50; + mapboxMap.setTransitionDelay(transitionDelay); + assertEquals("TransitionDelay should match", transitionDelay, mapboxMap.getTransitionDelay(), 0); + } + })); + } + // // MinZoomLevel // 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 af42b7a0fe..2fc0407c7f 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 @@ -259,8 +259,8 @@ public class RuntimeStyleActivity extends AppCompatActivity { private void setWaterColor() { Layer water = mapboxMap.getLayer("water"); if (water != null) { - mapboxMap.setTransitionDuration(5); - mapboxMap.setTransitionDelay(1); + mapboxMap.setTransitionDuration(5000); + mapboxMap.setTransitionDelay(1000); water.setProperties( visibility(VISIBLE), fillColor(Color.RED) diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index dd4cadbcfb..d9c24ba0f8 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -752,23 +752,23 @@ jdouble NativeMapView::getTopOffsetPixelsForAnnotationSymbol(JNIEnv& env, jni::S jlong NativeMapView::getTransitionDuration(JNIEnv&) { const auto transitionOptions = map->getTransitionOptions(); - return transitionOptions.duration.value_or(mbgl::Duration::zero()).count(); + return std::chrono::duration_cast(transitionOptions.duration.value_or(mbgl::Duration::zero())).count(); } void NativeMapView::setTransitionDuration(JNIEnv&, jlong duration) { auto transitionOptions = map->getTransitionOptions(); - transitionOptions.duration = std::chrono::duration_cast(std::chrono::duration(duration)); + transitionOptions.duration.emplace(mbgl::Milliseconds(duration)); map->setTransitionOptions(transitionOptions); } jlong NativeMapView::getTransitionDelay(JNIEnv&) { const auto transitionOptions = map->getTransitionOptions(); - return transitionOptions.delay.value_or(mbgl::Duration::zero()).count(); + return std::chrono::duration_cast(transitionOptions.delay.value_or(mbgl::Duration::zero())).count(); } void NativeMapView::setTransitionDelay(JNIEnv&, jlong delay) { auto transitionOptions = map->getTransitionOptions(); - transitionOptions.delay = std::chrono::duration_cast(std::chrono::duration(delay)); + transitionOptions.delay.emplace(mbgl::Milliseconds(delay)); map->setTransitionOptions(transitionOptions); } -- cgit v1.2.1