summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapZoomButtonController.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapZoomButtonController.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapZoomButtonController.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapZoomButtonController.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapZoomButtonController.java
new file mode 100644
index 0000000000..06084d906e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapZoomButtonController.java
@@ -0,0 +1,59 @@
+package com.mapbox.mapboxsdk.maps;
+
+import android.support.annotation.NonNull;
+import android.view.View;
+import android.widget.ZoomButtonsController;
+
+import com.mapbox.mapboxsdk.constants.MapboxConstants;
+
+/**
+ * The MapZoomButtonController is a ui interface element shown on top of the map.
+ * <p>
+ * Allows single touch only devices to zoom in and out.
+ * </p>
+ */
+final class MapZoomButtonController extends ZoomButtonsController {
+
+ private UiSettings uiSettings;
+
+ MapZoomButtonController(@NonNull View ownerView, @NonNull UiSettings uiSettings, @NonNull Transform transform) {
+ super(ownerView);
+ this.uiSettings = uiSettings;
+ setZoomSpeed(MapboxConstants.ANIMATION_DURATION);
+ setOnZoomListener(new OnZoomListener(uiSettings, transform));
+ }
+
+ @Override
+ public void setVisible(boolean visible) {
+ if (uiSettings.isZoomControlsEnabled()) {
+ super.setVisible(visible);
+ }
+ }
+
+ // Zoom controls allow single touch only devices to zoom in and out
+ private static class OnZoomListener implements ZoomButtonsController.OnZoomListener {
+
+ private final UiSettings uiSettings;
+ private final 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);
+ }
+ }
+}