From e6f083557a8ca4f65dc4b6b3d2c72b1ee1a053e2 Mon Sep 17 00:00:00 2001 From: Tobrun Van Nuland Date: Sun, 8 Jan 2017 10:53:25 +0100 Subject: [PATCH 1/2] [android] - rounded zoom when zooming with zoom button controller --- platform/android/CHANGELOG.md | 2 +- .../mapboxsdk/maps/MapGestureDetector.java | 29 ------------------- .../com/mapbox/mapboxsdk/maps/Transform.java | 6 +++- 3 files changed, 6 insertions(+), 31 deletions(-) diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 204d210acac..78fdb9ae125 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -4,7 +4,7 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to ## 5.0.0 - TBA -<<<<<<< HEAD +* MapZoomButtonController zooms to rounded zoom levels [#7630](https://github.com/mapbox/mapbox-gl-native/pull/7630) * Consistent double tap zoom acceleration [#7514](https://github.com/mapbox/mapbox-gl-native/issues/7514) * Cleanup inconsistencies float vs double [#4445](https://github.com/mapbox/mapbox-gl-native/issues/4445) * Add `mapbox_` prefix to attributes [#6482](https://github.com/mapbox/mapbox-gl-native/issues/6482) 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 053aa72fdff..2aa26705e2f 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 @@ -9,7 +9,6 @@ import android.view.MotionEvent; import android.view.ScaleGestureDetector; import android.view.ViewConfiguration; -import android.widget.ZoomButtonsController; import com.almeros.android.multitouch.gesturedetectors.RotateGestureDetector; import com.almeros.android.multitouch.gesturedetectors.ShoveGestureDetector; @@ -595,34 +594,6 @@ public boolean onShove(ShoveGestureDetector detector) { } } - // This class handles input events from the zoom control buttons - // Zoom controls allow single touch only devices to zoom in and out - private static class OnZoomListener implements ZoomButtonsController.OnZoomListener { - - private UiSettings uiSettings; - private Transform transform; - - OnZoomListener(UiSettings uiSettings, Transform transform) { - this.uiSettings = uiSettings; - this.transform = transform; - } - - // Not used - @Override - public void onVisibilityChanged(boolean visible) { - // Ignore - } - - // Called when user pushes a zoom button - @Override - public void onZoom(boolean zoomIn) { - if (!uiSettings.isZoomGesturesEnabled()) { - return; - } - transform.zoom(zoomIn); - } - } - void setOnMapClickListener(MapboxMap.OnMapClickListener onMapClickListener) { this.onMapClickListener = onMapClickListener; } 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 88acc13356e..924c8e1a7c4 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 @@ -172,7 +172,11 @@ private long getDurationNano(long durationMs) { } void zoom(boolean zoomIn) { - zoom(zoomIn, -1.0f, -1.0f); + CameraPosition currentPosition = invalidateCameraPosition(); + if (currentPosition != null) { + int newZoom = (int) Math.round(currentPosition.zoom + (zoomIn? 1 : -1)); + mapView.setZoom(newZoom, MapboxConstants.ANIMATION_DURATION); + } } void zoom(boolean zoomIn, float x, float y) { From b8e55c638603934201470b93d1a590518757a752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Sun, 8 Jan 2017 20:44:33 -0800 Subject: [PATCH 2/2] [android] Fixed checkstyle error --- .../src/main/java/com/mapbox/mapboxsdk/maps/Transform.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 924c8e1a7c4..7007572f8d9 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 @@ -174,7 +174,7 @@ private long getDurationNano(long durationMs) { void zoom(boolean zoomIn) { CameraPosition currentPosition = invalidateCameraPosition(); if (currentPosition != null) { - int newZoom = (int) Math.round(currentPosition.zoom + (zoomIn? 1 : -1)); + int newZoom = (int) Math.round(currentPosition.zoom + (zoomIn ? 1 : -1)); mapView.setZoom(newZoom, MapboxConstants.ANIMATION_DURATION); } }