diff options
author | Tobrun Van Nuland <tobrun.van.nuland@gmail.com> | 2017-10-19 13:04:56 +0200 |
---|---|---|
committer | Tobrun Van Nuland <tobrun.van.nuland@gmail.com> | 2017-10-19 13:04:56 +0200 |
commit | 83e0f67d754b1114ab014188e637a53a49994d38 (patch) | |
tree | 67534f0f2178c742b82025fc254f31efb9199c13 | |
parent | efcb9ee23129c6c1a863ab4908960dd46328248c (diff) | |
download | qtlocation-mapboxgl-83e0f67d754b1114ab014188e637a53a49994d38.tar.gz |
[android] - remove core animations, replace with Android SDK animators
8 files changed, 145 insertions, 159 deletions
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 6a88470ee7..24687a7a59 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 @@ -632,7 +632,7 @@ public final class MapboxMap { if (focalPoint == null) { focalPoint = new PointF(nativeMapView.getWidth() / 2, nativeMapView.getHeight() / 2); } - nativeMapView.setZoom(zoom, focalPoint, 0); + nativeMapView.setZoom(zoom, focalPoint); } /** @@ -641,7 +641,7 @@ public final class MapboxMap { * @param tilt Tilt angle to change to */ public void setTilt(@FloatRange(from = MapboxConstants.MINIMUM_TILT, to = MapboxConstants.MAXIMUM_TILT) double tilt) { - nativeMapView.setPitch(tilt, 0); + nativeMapView.setPitch(tilt); } /** @@ -944,6 +944,7 @@ public final class MapboxMap { * @param duration The duration of the transformation */ public void setFocalBearing(double bearing, float focalX, float focalY, long duration) { + // TODO remove obsolete public API transform.setBearing(bearing, focalX, focalY, duration); } 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 bd8a54783e..2afdbeed25 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 @@ -194,28 +194,14 @@ final class NativeMapView { if (isDestroyedOn("moveBy")) { return; } - moveBy(dx, dy, 0); - } - - public void moveBy(double dx, double dy, long duration) { - if (isDestroyedOn("moveBy")) { - return; - } - nativeMoveBy(dx / pixelRatio, dy / pixelRatio, duration); + nativeMoveBy(dx/pixelRatio, dy/pixelRatio); } public void setLatLng(LatLng latLng) { if (isDestroyedOn("setLatLng")) { return; } - setLatLng(latLng, 0); - } - - public void setLatLng(LatLng latLng, long duration) { - if (isDestroyedOn("setLatLng")) { - return; - } - nativeSetLatLng(latLng.getLatitude(), latLng.getLongitude(), duration); + nativeSetLatLng(latLng.getLatitude(), latLng.getLongitude()); } public LatLng getLatLng() { @@ -254,18 +240,18 @@ final class NativeMapView { return nativeGetPitch(); } - public void setPitch(double pitch, long duration) { + public void setPitch(double pitch) { if (isDestroyedOn("setPitch")) { return; } - nativeSetPitch(pitch, duration); + nativeSetPitch(pitch); } - public void setZoom(double zoom, PointF focalPoint, long duration) { + public void setZoom(double zoom, PointF focalPoint) { if (isDestroyedOn("setZoom")) { return; } - nativeSetZoom(zoom, focalPoint.x / pixelRatio, focalPoint.y / pixelRatio, duration); + nativeSetZoom(zoom, focalPoint.x / pixelRatio, focalPoint.y / pixelRatio); } public double getZoom() { @@ -314,15 +300,7 @@ final class NativeMapView { if (isDestroyedOn("rotateBy")) { return; } - rotateBy(sx, sy, ex, ey, 0); - } - - public void rotateBy(double sx, double sy, double ex, double ey, - long duration) { - if (isDestroyedOn("rotateBy")) { - return; - } - nativeRotateBy(sx / pixelRatio, sy / pixelRatio, ex, ey, duration); + nativeRotateBy(sx / pixelRatio, sy / pixelRatio, ex, ey); } public void setContentPadding(int[] padding) { @@ -340,28 +318,14 @@ final class NativeMapView { if (isDestroyedOn("setBearing")) { return; } - setBearing(degrees, 0); - } - - public void setBearing(double degrees, long duration) { - if (isDestroyedOn("setBearing")) { - return; - } - nativeSetBearing(degrees, duration); + nativeSetBearing(degrees); } public void setBearing(double degrees, double cx, double cy) { if (isDestroyedOn("setBearing")) { return; } - setBearing(degrees, cx, cy, 0); - } - - public void setBearing(double degrees, double fx, double fy, long duration) { - if (isDestroyedOn("setBearing")) { - return; - } - nativeSetBearingXY(degrees, fx / pixelRatio, fy / pixelRatio, duration); + nativeSetBearingXY(degrees, cx / pixelRatio, cy / pixelRatio); } public double getBearing() { @@ -482,11 +446,11 @@ final class NativeMapView { nativeRemoveAnnotationIcon(symbol); } - public void setVisibleCoordinateBounds(LatLng[] coordinates, RectF padding, double direction, long duration) { + public void setVisibleCoordinateBounds(LatLng[] coordinates, RectF padding, double direction) { if (isDestroyedOn("setVisibleCoordinateBounds")) { return; } - nativeSetVisibleCoordinateBounds(coordinates, padding, direction, duration); + nativeSetVisibleCoordinateBounds(coordinates, padding, direction); } public void onLowMemory() { @@ -873,9 +837,9 @@ final class NativeMapView { private native void nativeSetGestureInProgress(boolean inProgress); - private native void nativeMoveBy(double dx, double dy, long duration); + private native void nativeMoveBy(double dx, double dy); - private native void nativeSetLatLng(double latitude, double longitude, long duration); + private native void nativeSetLatLng(double latitude, double longitude); private native LatLng nativeGetLatLng(); @@ -887,9 +851,9 @@ final class NativeMapView { private native double nativeGetPitch(); - private native void nativeSetPitch(double pitch, long duration); + private native void nativeSetPitch(double pitch); - private native void nativeSetZoom(double zoom, double cx, double cy, long duration); + private native void nativeSetZoom(double zoom, double cx, double cy); private native double nativeGetZoom(); @@ -903,13 +867,13 @@ final class NativeMapView { private native double nativeGetMaxZoom(); - private native void nativeRotateBy(double sx, double sy, double ex, double ey, long duration); + private native void nativeRotateBy(double sx, double sy, double ex, double ey); private native void nativeSetContentPadding(double top, double left, double bottom, double right); - private native void nativeSetBearing(double degrees, long duration); + private native void nativeSetBearing(double degrees); - private native void nativeSetBearingXY(double degrees, double fx, double fy, long duration); + private native void nativeSetBearingXY(double degrees, double fx, double fy); private native double nativeGetBearing(); @@ -931,8 +895,7 @@ final class NativeMapView { private native void nativeRemoveAnnotationIcon(String symbol); - private native void nativeSetVisibleCoordinateBounds(LatLng[] coordinates, RectF padding, - double direction, long duration); + private native void nativeSetVisibleCoordinateBounds(LatLng[] coordinates, RectF padding, double direction); private native void nativeOnLowMemory(); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java index 6f63c2eba8..f3ca4a193c 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java @@ -1,5 +1,9 @@ package com.mapbox.mapboxsdk.maps; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.TypeEvaluator; +import android.animation.ValueAnimator; import android.graphics.PointF; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -12,6 +16,7 @@ import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.widgets.MyLocationView; +import com.mapbox.mapboxsdk.utils.AnimatorUtils; import timber.log.Timber; @@ -210,6 +215,10 @@ final class Transform implements MapView.OnMapChangedListener { return cameraPosition.zoom; } + double getRawZoom() { + return mapView.getZoom(); + } + void zoom(boolean zoomIn, @NonNull PointF focalPoint) { CameraPosition cameraPosition = invalidateCameraPosition(); if (cameraPosition != null) { @@ -222,20 +231,29 @@ final class Transform implements MapView.OnMapChangedListener { } void setZoom(double zoom, @NonNull PointF focalPoint) { - setZoom(zoom, focalPoint, 0); + mapView.setZoom(zoom, focalPoint); } - void setZoom(double zoom, @NonNull PointF focalPoint, long duration) { - mapView.addOnMapChangedListener(new MapView.OnMapChangedListener() { + void setZoom(double zoom, @NonNull final PointF focalPoint, long duration) { + ValueAnimator animator = ValueAnimator.ofFloat( + (float) getRawZoom(), + (float) zoom + ); + animator.setDuration(duration); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mapView.setZoom((Float) animation.getAnimatedValue(), focalPoint); + } + }); + animator.addListener(new AnimatorListenerAdapter() { @Override - public void onMapChanged(int change) { - if (change == MapView.REGION_DID_CHANGE_ANIMATED) { - cameraChangeDispatcher.onCameraIdle(); - mapView.removeOnMapChangedListener(this); - } + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + cameraChangeDispatcher.onCameraIdle(); } }); - mapView.setZoom(zoom, focalPoint, duration); + animator.start(); } // Direction @@ -270,14 +288,21 @@ final class Transform implements MapView.OnMapChangedListener { mapView.setBearing(bearing, focalX, focalY); } - void setBearing(double bearing, float focalX, float focalY, long duration) { - if (myLocationView != null) { - myLocationView.setBearing(bearing); - } - mapView.setBearing(bearing, focalX, focalY, duration); + void setBearing(double bearing, final float focalX, final float focalY, long duration) { + ValueAnimator animator = ValueAnimator.ofFloat( + (float) getRawBearing(), + (float) bearing + ); + animator.setDuration(duration); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + setBearing((Float) animation.getAnimatedValue(), focalX, focalY); + } + }); + animator.start(); } - // // LatLng / CenterCoordinate // @@ -299,7 +324,7 @@ final class Transform implements MapView.OnMapChangedListener { myLocationView.setTilt(pitch); } markerViewManager.setTilt(pitch.floatValue()); - mapView.setPitch(pitch, 0); + mapView.setPitch(pitch); } // @@ -322,22 +347,31 @@ final class Transform implements MapView.OnMapChangedListener { } void zoomBy(double z, float x, float y) { - mapView.setZoom(mapView.getZoom() + z, new PointF(x, y), 0); + mapView.setZoom(getRawZoom() + z, new PointF(x, y)); } void moveBy(double offsetX, double offsetY, long duration) { - if (duration > 0) { - mapView.addOnMapChangedListener(new MapView.OnMapChangedListener() { - @Override - public void onMapChanged(int change) { - if (change == MapView.REGION_DID_CHANGE_ANIMATED) { - mapView.removeOnMapChangedListener(this); - cameraChangeDispatcher.onCameraIdle(); - } - } - }); - } - mapView.moveBy(offsetX, offsetY, duration); + PointF offset = new PointF((float) offsetX, (float) offsetY); + ValueAnimator animator = ValueAnimator.ofObject(new AnimatorUtils.PointFEvaluator(), + new PointF(), + offset + ); + animator.setDuration(duration); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + PointF pointF = (PointF) animation.getAnimatedValue(); + mapView.moveBy(pointF.x, pointF.y); + } + }); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + cameraChangeDispatcher.onCameraIdle(); + } + }); + animator.start(); } // diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java index 34c52c829b..1e9e215491 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/AnimatorUtils.java @@ -4,12 +4,17 @@ import android.animation.Animator; import android.animation.AnimatorInflater; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; +import android.animation.PointFEvaluator; +import android.animation.TypeEvaluator; +import android.graphics.PointF; import android.support.annotation.AnimatorRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.view.animation.FastOutSlowInInterpolator; import android.view.View; +import com.mapbox.mapboxsdk.geometry.LatLng; + /** * Animator utility class. */ @@ -165,4 +170,31 @@ public class AnimatorUtils { public interface OnAnimationEndListener { void onAnimationEnd(); } + + public static class PointFEvaluator implements TypeEvaluator<PointF> { + + private final PointF pointF = new PointF(); + + @Override + public PointF evaluate(float fraction, PointF startValue, PointF endValue) { + pointF.x = startValue.x + ((endValue.x - startValue.x) * fraction); + pointF.y = startValue.y + ((endValue.y - startValue.y) * fraction); + return pointF; + } + } + + public static class LatLngEvaluator implements TypeEvaluator<LatLng> { + + private final LatLng latLng = new LatLng(); + + @Override + public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) { + latLng.setLatitude(startValue.getLatitude() + + ((endValue.getLatitude() - startValue.getLatitude()) * fraction)); + latLng.setLongitude(startValue.getLongitude() + + ((endValue.getLongitude() - startValue.getLongitude()) * fraction)); + return latLng; + } + } } + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java index 52181cee0c..ff1eb23963 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java @@ -27,6 +27,7 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.utils.IconUtils; +import com.mapbox.mapboxsdk.utils.AnimatorUtils; import com.mapbox.services.api.utils.turf.TurfMeasurement; import com.mapbox.services.commons.models.Position; @@ -175,7 +176,7 @@ public class AnimatedMarkerActivity extends AppCompatActivity { marker.setRotation((float) getBearing(marker.getPosition(), to)); final ValueAnimator markerAnimator = ObjectAnimator.ofObject( - marker, "position", new LatLngEvaluator(), marker.getPosition(), to); + marker, "position", new AnimatorUtils.LatLngEvaluator(), marker.getPosition(), to); markerAnimator.setDuration((long) (10 * marker.getPosition().distanceTo(to))); markerAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); @@ -268,23 +269,6 @@ public class AnimatedMarkerActivity extends AppCompatActivity { mapView.onLowMemory(); } - /** - * Evaluator for LatLng pairs - */ - private static class LatLngEvaluator implements TypeEvaluator<LatLng> { - - private LatLng latLng = new LatLng(); - - @Override - public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) { - latLng.setLatitude(startValue.getLatitude() - + ((endValue.getLatitude() - startValue.getLatitude()) * fraction)); - latLng.setLongitude(startValue.getLongitude() - + ((endValue.getLongitude() - startValue.getLongitude()) * fraction)); - return latLng; - } - } - private double getBearing(LatLng from, LatLng to) { return TurfMeasurement.bearing( Position.fromCoordinates(from.getLongitude(), from.getLatitude()), diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java index c8c5c6bd37..ebac25eb78 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimatorActivity.java @@ -24,6 +24,7 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; +import com.mapbox.mapboxsdk.utils.AnimatorUtils; /** * Test activity showcasing using Android SDK animators to animate camera position changes. @@ -129,7 +130,7 @@ public class CameraAnimatorActivity extends AppCompatActivity implements OnMapRe } private Animator createLatLngAnimator(LatLng currentPosition, LatLng targetPosition) { - ValueAnimator latLngAnimator = ValueAnimator.ofObject(new LatLngEvaluator(), currentPosition, targetPosition); + ValueAnimator latLngAnimator = ValueAnimator.ofObject(new AnimatorUtils.LatLngEvaluator(), currentPosition, targetPosition); latLngAnimator.setDuration((long) (1000 * ANIMATION_DELAY_FACTOR)); latLngAnimator.setInterpolator(new FastOutSlowInInterpolator()); latLngAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @@ -284,23 +285,6 @@ public class CameraAnimatorActivity extends AppCompatActivity implements OnMapRe mapView.onLowMemory(); } - /** - * Helper class to evaluate LatLng objects with a ValueAnimator - */ - private static class LatLngEvaluator implements TypeEvaluator<LatLng> { - - private final LatLng latLng = new LatLng(); - - @Override - public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) { - latLng.setLatitude(startValue.getLatitude() - + ((endValue.getLatitude() - startValue.getLatitude()) * fraction)); - latLng.setLongitude(startValue.getLongitude() - + ((endValue.getLongitude() - startValue.getLongitude()) * fraction)); - return latLng; - } - } - interface AnimatorBuilder { Animator build(); } diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 24a35a7068..fa84025079 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -210,13 +210,8 @@ void NativeMapView::setGestureInProgress(jni::JNIEnv&, jni::jboolean inProgress) map->setGestureInProgress(inProgress); } -void NativeMapView::moveBy(jni::JNIEnv&, jni::jdouble dx, jni::jdouble dy, jni::jlong duration) { - mbgl::AnimationOptions animationOptions; - if (duration > 0) { - animationOptions.duration.emplace(mbgl::Milliseconds(duration)); - animationOptions.easing.emplace(mbgl::util::UnitBezier {0.25, 0.46, 0.45, 0.94}); - } - map->moveBy({dx, dy}, animationOptions); +void NativeMapView::moveBy(jni::JNIEnv&, jni::jdouble dx, jni::jdouble dy) { + map->moveBy({dx, dy}, mbgl::AnimationOptions{}); } void NativeMapView::jumpTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitude, jni::jdouble longitude, jni::jdouble pitch, jni::jdouble zoom) { @@ -283,8 +278,8 @@ jni::Object<LatLng> NativeMapView::getLatLng(JNIEnv& env) { return LatLng::New(env, map->getLatLng(insets)); } -void NativeMapView::setLatLng(jni::JNIEnv&, jni::jdouble latitude, jni::jdouble longitude, jni::jlong duration) { - map->setLatLng(mbgl::LatLng(latitude, longitude), insets, mbgl::AnimationOptions{mbgl::Milliseconds(duration)}); +void NativeMapView::setLatLng(jni::JNIEnv&, jni::jdouble latitude, jni::jdouble longitude) { + map->setLatLng(mbgl::LatLng(latitude, longitude), insets, mbgl::AnimationOptions{}); } jni::Object<CameraPosition> NativeMapView::getCameraForLatLngBounds(jni::JNIEnv& env, jni::Object<LatLngBounds> jBounds) { @@ -310,12 +305,12 @@ jni::jdouble NativeMapView::getPitch(jni::JNIEnv&) { return map->getPitch(); } -void NativeMapView::setPitch(jni::JNIEnv&, jni::jdouble pitch, jni::jlong duration) { - map->setPitch(pitch, mbgl::AnimationOptions{mbgl::Milliseconds(duration)}); +void NativeMapView::setPitch(jni::JNIEnv&, jni::jdouble pitch) { + map->setPitch(pitch, mbgl::AnimationOptions{}); } -void NativeMapView::setZoom(jni::JNIEnv&, jni::jdouble zoom, jni::jdouble x, jni::jdouble y, jni::jlong duration) { - map->setZoom(zoom, mbgl::ScreenCoordinate{x,y}, mbgl::AnimationOptions{mbgl::Milliseconds(duration)}); +void NativeMapView::setZoom(jni::JNIEnv&, jni::jdouble zoom, jni::jdouble x, jni::jdouble y) { + map->setZoom(zoom, mbgl::ScreenCoordinate{x,y}, mbgl::AnimationOptions{}); } jni::jdouble NativeMapView::getZoom(jni::JNIEnv&) { @@ -342,19 +337,19 @@ jni::jdouble NativeMapView::getMaxZoom(jni::JNIEnv&) { return map->getMaxZoom(); } -void NativeMapView::rotateBy(jni::JNIEnv&, jni::jdouble sx, jni::jdouble sy, jni::jdouble ex, jni::jdouble ey, jni::jlong duration) { +void NativeMapView::rotateBy(jni::JNIEnv&, jni::jdouble sx, jni::jdouble sy, jni::jdouble ex, jni::jdouble ey) { mbgl::ScreenCoordinate first(sx, sy); mbgl::ScreenCoordinate second(ex, ey); - map->rotateBy(first, second, mbgl::AnimationOptions{mbgl::Milliseconds(duration)}); + map->rotateBy(first, second, mbgl::AnimationOptions{}); } -void NativeMapView::setBearing(jni::JNIEnv&, jni::jdouble degrees, jni::jlong duration) { - map->setBearing(degrees, mbgl::AnimationOptions{mbgl::Milliseconds(duration)}); +void NativeMapView::setBearing(jni::JNIEnv&, jni::jdouble degrees) { + map->setBearing(degrees, mbgl::AnimationOptions{}); } -void NativeMapView::setBearingXY(jni::JNIEnv&, jni::jdouble degrees, jni::jdouble cx, jni::jdouble cy, jni::jlong duration) { +void NativeMapView::setBearingXY(jni::JNIEnv&, jni::jdouble degrees, jni::jdouble cx, jni::jdouble cy) { mbgl::ScreenCoordinate center(cx, cy); - map->setBearing(degrees, center, mbgl::AnimationOptions{mbgl::Milliseconds(duration)}); + map->setBearing(degrees, center, mbgl::AnimationOptions{}); } jni::jdouble NativeMapView::getBearing(jni::JNIEnv&) { @@ -365,7 +360,7 @@ void NativeMapView::resetNorth(jni::JNIEnv&) { map->resetNorth(); } -void NativeMapView::setVisibleCoordinateBounds(JNIEnv& env, jni::Array<jni::Object<LatLng>> coordinates, jni::Object<RectF> padding, jdouble direction, jni::jlong duration) { +void NativeMapView::setVisibleCoordinateBounds(JNIEnv& env, jni::Array<jni::Object<LatLng>> coordinates, jni::Object<RectF> padding, jdouble direction) { NullCheck(env, &coordinates); std::size_t count = coordinates.Length(env); @@ -385,14 +380,7 @@ void NativeMapView::setVisibleCoordinateBounds(JNIEnv& env, jni::Array<jni::Obje cameraOptions.angle = (-direction * M_PI) / 180; } - mbgl::AnimationOptions animationOptions; - if (duration > 0) { - animationOptions.duration.emplace(mbgl::Milliseconds(duration)); - // equivalent to kCAMediaTimingFunctionDefault in iOS - animationOptions.easing.emplace(mbgl::util::UnitBezier { 0.25, 0.1, 0.25, 0.1 }); - } - - map->easeTo(cameraOptions, animationOptions); + map->easeTo(cameraOptions, mbgl::AnimationOptions{}); } void NativeMapView::setContentPadding(JNIEnv&, double top, double left, double bottom, double right) { diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index 4d226d0fa9..c0a686d9ce 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -91,7 +91,7 @@ public: void setGestureInProgress(jni::JNIEnv&, jni::jboolean); - void moveBy(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jlong); + void moveBy(jni::JNIEnv&, jni::jdouble, jni::jdouble); void jumpTo(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jdouble, jni::jdouble, jni::jdouble); @@ -101,7 +101,7 @@ public: jni::Object<LatLng> getLatLng(JNIEnv&); - void setLatLng(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jlong); + void setLatLng(jni::JNIEnv&, jni::jdouble, jni::jdouble); jni::Object<CameraPosition> getCameraForLatLngBounds(jni::JNIEnv&, jni::Object<mbgl::android::LatLngBounds>); @@ -113,9 +113,9 @@ public: jni::jdouble getPitch(jni::JNIEnv&); - void setPitch(jni::JNIEnv&, jni::jdouble, jni::jlong); + void setPitch(jni::JNIEnv&, jni::jdouble); - void setZoom(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jdouble, jni::jlong); + void setZoom(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jdouble); jni::jdouble getZoom(jni::JNIEnv&); @@ -129,17 +129,17 @@ public: jni::jdouble getMaxZoom(jni::JNIEnv&); - void rotateBy(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jdouble, jni::jdouble, jni::jlong); + void rotateBy(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jdouble, jni::jdouble); - void setBearing(jni::JNIEnv&, jni::jdouble, jni::jlong); + void setBearing(jni::JNIEnv&, jni::jdouble); - void setBearingXY(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jdouble, jni::jlong); + void setBearingXY(jni::JNIEnv&, jni::jdouble, jni::jdouble, jni::jdouble); jni::jdouble getBearing(jni::JNIEnv&); void resetNorth(jni::JNIEnv&); - void setVisibleCoordinateBounds(JNIEnv&, jni::Array<jni::Object<LatLng>>, jni::Object<RectF>, jni::jdouble, jni::jlong); + void setVisibleCoordinateBounds(JNIEnv&, jni::Array<jni::Object<LatLng>>, jni::Object<RectF>, jni::jdouble); void setContentPadding(JNIEnv&, double, double, double, double); |