summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java108
1 files changed, 47 insertions, 61 deletions
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 c70266eea2..41bb70f9dc 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
@@ -13,7 +13,6 @@ import com.mapbox.mapboxsdk.constants.MapboxConstants;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.log.Logger;
-import static com.mapbox.mapboxsdk.maps.MapView.REGION_DID_CHANGE_ANIMATED;
import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraMoveStartedListener;
/**
@@ -23,11 +22,12 @@ import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraMoveStartedListener;
* {@link com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraChangeListener}.
* </p>
*/
-final class Transform implements MapView.OnMapChangedListener {
+final class Transform implements MapView.OnCameraDidChangeListener {
private static final String TAG = "Mbgl-Transform";
- private final NativeMapView mapView;
+ private final NativeMapView nativeMapView;
+ private final MapView mapView;
private final MarkerViewManager markerViewManager;
private final Handler handler = new Handler();
@@ -38,9 +38,20 @@ final class Transform implements MapView.OnMapChangedListener {
private CameraChangeDispatcher cameraChangeDispatcher;
- Transform(NativeMapView mapView, MarkerViewManager markerViewManager,
+ private final MapView.OnCameraDidChangeListener moveByChangeListener = new MapView.OnCameraDidChangeListener() {
+ @Override
+ public void onCameraDidChange(boolean animated) {
+ if (animated) {
+ cameraChangeDispatcher.onCameraIdle();
+ mapView.removeOnCameraDidChangeListener(this);
+ }
+ }
+ };
+
+ Transform(MapView mapView, NativeMapView nativeMapView, MarkerViewManager markerViewManager,
CameraChangeDispatcher cameraChangeDispatcher) {
this.mapView = mapView;
+ this.nativeMapView = nativeMapView;
this.markerViewManager = markerViewManager;
this.cameraChangeDispatcher = cameraChangeDispatcher;
}
@@ -72,8 +83,8 @@ final class Transform implements MapView.OnMapChangedListener {
}
@Override
- public void onMapChanged(@MapView.MapChange int change) {
- if (change == REGION_DID_CHANGE_ANIMATED) {
+ public void onCameraDidChange(boolean animated) {
+ if (animated) {
updateCameraPosition(invalidateCameraPosition());
if (cameraCancelableCallback != null) {
handler.post(new Runnable() {
@@ -87,7 +98,7 @@ final class Transform implements MapView.OnMapChangedListener {
});
}
cameraChangeDispatcher.onCameraIdle();
- mapView.removeOnMapChangedListener(this);
+ mapView.removeOnCameraDidChangeListener(this);
}
}
@@ -97,7 +108,7 @@ final class Transform implements MapView.OnMapChangedListener {
if (isValidCameraPosition(cameraPosition)) {
cancelTransitions();
cameraChangeDispatcher.onCameraMoveStarted(OnCameraMoveStartedListener.REASON_API_ANIMATION);
- mapView.jumpTo(cameraPosition.bearing, cameraPosition.target, cameraPosition.tilt, cameraPosition.zoom);
+ nativeMapView.jumpTo(cameraPosition.bearing, cameraPosition.target, cameraPosition.tilt, cameraPosition.zoom);
cameraChangeDispatcher.onCameraIdle();
invalidateCameraPosition();
handler.post(new Runnable() {
@@ -122,8 +133,8 @@ final class Transform implements MapView.OnMapChangedListener {
if (callback != null) {
cameraCancelableCallback = callback;
}
- mapView.addOnMapChangedListener(this);
- mapView.easeTo(cameraPosition.bearing, cameraPosition.target, durationMs, cameraPosition.tilt,
+ mapView.addOnCameraDidChangeListener(this);
+ nativeMapView.easeTo(cameraPosition.bearing, cameraPosition.target, durationMs, cameraPosition.tilt,
cameraPosition.zoom, easingInterpolator);
}
}
@@ -139,8 +150,8 @@ final class Transform implements MapView.OnMapChangedListener {
if (callback != null) {
cameraCancelableCallback = callback;
}
- mapView.addOnMapChangedListener(this);
- mapView.flyTo(cameraPosition.bearing, cameraPosition.target, durationMs, cameraPosition.tilt,
+ mapView.addOnCameraDidChangeListener(this);
+ nativeMapView.flyTo(cameraPosition.bearing, cameraPosition.target, durationMs, cameraPosition.tilt,
cameraPosition.zoom);
}
}
@@ -152,8 +163,8 @@ final class Transform implements MapView.OnMapChangedListener {
@UiThread
@Nullable
CameraPosition invalidateCameraPosition() {
- if (mapView != null) {
- CameraPosition cameraPosition = mapView.getCameraPosition();
+ if (nativeMapView != null) {
+ CameraPosition cameraPosition = nativeMapView.getCameraPosition();
if (this.cameraPosition != null && !this.cameraPosition.equals(cameraPosition)) {
cameraChangeDispatcher.onCameraMove();
}
@@ -193,7 +204,7 @@ final class Transform implements MapView.OnMapChangedListener {
}
// cancel ongoing transitions
- mapView.cancelTransitions();
+ nativeMapView.cancelTransitions();
cameraChangeDispatcher.onCameraIdle();
}
@@ -201,7 +212,7 @@ final class Transform implements MapView.OnMapChangedListener {
@UiThread
void resetNorth() {
cancelTransitions();
- mapView.resetNorth();
+ nativeMapView.resetNorth();
}
//
@@ -219,37 +230,20 @@ final class Transform implements MapView.OnMapChangedListener {
// Zoom in or out
double getRawZoom() {
- return mapView.getZoom();
+ return nativeMapView.getZoom();
}
void zoomBy(double zoomAddition, @NonNull PointF focalPoint) {
- setZoom(mapView.getZoom() + zoomAddition, focalPoint);
+ setZoom(nativeMapView.getZoom() + zoomAddition, focalPoint);
}
void setZoom(double zoom, @NonNull PointF focalPoint) {
- setZoom(zoom, focalPoint, 0);
- }
-
- void setZoom(double zoom, @NonNull PointF focalPoint, final long duration) {
- if (mapView != null) {
- mapView.addOnMapChangedListener(new MapView.OnMapChangedListener() {
- @Override
- public void onMapChanged(int change) {
- if (change == MapView.REGION_DID_CHANGE_ANIMATED) {
- if (duration > 0) {
- cameraChangeDispatcher.onCameraIdle();
- }
- mapView.removeOnMapChangedListener(this);
- }
- }
- });
- mapView.setZoom(zoom, focalPoint, duration);
- }
+ nativeMapView.setZoom(zoom, focalPoint, 0);
}
// Direction
double getBearing() {
- double direction = -mapView.getBearing();
+ double direction = -nativeMapView.getBearing();
while (direction > 360) {
direction -= 360;
@@ -262,19 +256,19 @@ final class Transform implements MapView.OnMapChangedListener {
}
double getRawBearing() {
- return mapView.getBearing();
+ return nativeMapView.getBearing();
}
void setBearing(double bearing) {
- mapView.setBearing(bearing);
+ nativeMapView.setBearing(bearing);
}
void setBearing(double bearing, float focalX, float focalY) {
- mapView.setBearing(bearing, focalX, focalY);
+ nativeMapView.setBearing(bearing, focalX, focalY);
}
void setBearing(double bearing, float focalX, float focalY, long duration) {
- mapView.setBearing(bearing, focalX, focalY, duration);
+ nativeMapView.setBearing(bearing, focalX, focalY, duration);
}
@@ -283,7 +277,7 @@ final class Transform implements MapView.OnMapChangedListener {
//
LatLng getLatLng() {
- return mapView.getLatLng();
+ return nativeMapView.getLatLng();
}
//
@@ -291,12 +285,12 @@ final class Transform implements MapView.OnMapChangedListener {
//
double getTilt() {
- return mapView.getPitch();
+ return nativeMapView.getPitch();
}
void setTilt(Double pitch) {
markerViewManager.setTilt(pitch.floatValue());
- mapView.setPitch(pitch, 0);
+ nativeMapView.setPitch(pitch, 0);
}
//
@@ -304,15 +298,15 @@ final class Transform implements MapView.OnMapChangedListener {
//
LatLng getCenterCoordinate() {
- return mapView.getLatLng();
+ return nativeMapView.getLatLng();
}
void setCenterCoordinate(LatLng centerCoordinate) {
- mapView.setLatLng(centerCoordinate);
+ nativeMapView.setLatLng(centerCoordinate);
}
void setGestureInProgress(boolean gestureInProgress) {
- mapView.setGestureInProgress(gestureInProgress);
+ nativeMapView.setGestureInProgress(gestureInProgress);
if (!gestureInProgress) {
invalidateCameraPosition();
}
@@ -320,17 +314,9 @@ final class Transform implements MapView.OnMapChangedListener {
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.addOnCameraDidChangeListener(moveByChangeListener);
}
- mapView.moveBy(offsetX, offsetY, duration);
+ nativeMapView.moveBy(offsetX, offsetY, duration);
}
//
@@ -342,11 +328,11 @@ final class Transform implements MapView.OnMapChangedListener {
Logger.e(TAG, String.format("Not setting minZoomPreference, value is in unsupported range: %s", minZoom));
return;
}
- mapView.setMinZoom(minZoom);
+ nativeMapView.setMinZoom(minZoom);
}
double getMinZoom() {
- return mapView.getMinZoom();
+ return nativeMapView.getMinZoom();
}
void setMaxZoom(double maxZoom) {
@@ -354,10 +340,10 @@ final class Transform implements MapView.OnMapChangedListener {
Logger.e(TAG, String.format("Not setting maxZoomPreference, value is in unsupported range: %s", maxZoom));
return;
}
- mapView.setMaxZoom(maxZoom);
+ nativeMapView.setMaxZoom(maxZoom);
}
double getMaxZoom() {
- return mapView.getMaxZoom();
+ return nativeMapView.getMaxZoom();
}
}