summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
diff options
context:
space:
mode:
authorRamin Mirsharifi <ramin@divar.ir>2017-10-07 13:33:44 +0330
committerTobrun <tobrun@mapbox.com>2017-10-30 16:25:37 -0700
commitc351f65c0923c2e21ea0467239d46a343af6aa9c (patch)
tree9929c7afa0f663a35f40c82e8e3c4848f4f53836 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
parent8c4e2f0886b090946e7c4c0210379080b6bd567c (diff)
downloadqtlocation-mapboxgl-c351f65c0923c2e21ea0467239d46a343af6aa9c.tar.gz
[android] - Add touch velocity effects on scale gesture. Fine tune.
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
index bdc0938456..95f34b9b70 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
@@ -419,7 +419,7 @@ final class MapGestureDetector {
return false;
}
- if (tiltGestureOccurred) {
+ if (tiltGestureOccurred || scaleGestureOccurred) {
return false;
}
@@ -476,9 +476,14 @@ final class MapGestureDetector {
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
double velocityXY = Math.abs(velocityTracker.getYVelocity()) + Math.abs(velocityTracker.getXVelocity());
- if (velocityXY > MapboxConstants.VELOCITY_THRESHOLD_IGNORE_FLING) {
+ if (velocityXY > MapboxConstants.VELOCITY_THRESHOLD_IGNORE_FLING / 2) {
long animationTime = (long)(Math.log(velocityXY) * 66);
- transform.zoom(wasZoomingIn, new PointF(detector.getFocusX(), detector.getFocusY()), animationTime);
+ double zoomAddition = (float) (Math.log(velocityXY) / 7.7);
+ if (!wasZoomingIn) {
+ zoomAddition = -zoomAddition;
+ }
+ scaleGestureOccurred = true;
+ transform.zoom(zoomAddition, new PointF(detector.getFocusX(), detector.getFocusY()), animationTime);
handler.postDelayed(new Runnable() {
@Override
public void run() {
@@ -509,7 +514,7 @@ final class MapGestureDetector {
// Also ignore small scales
long time = detector.getEventTime();
long interval = time - scaleBeginTime;
- if (!scaleGestureOccurred && (interval <= ViewConfiguration.getTapTimeout())) {
+ if (!scaleGestureOccurred && (interval <= ViewConfiguration.getTapTimeout() / 3)) {
return false;
}