resolves #24
This commit is contained in:
@@ -44,6 +44,7 @@ final class LocationCameraController {
|
||||
|
||||
private boolean isTransitioning;
|
||||
private LatLng lastLocation;
|
||||
private boolean isEnabled;
|
||||
|
||||
LocationCameraController(
|
||||
Context context,
|
||||
@@ -133,7 +134,8 @@ final class LocationCameraController {
|
||||
long transitionDuration,
|
||||
Double zoom, Double bearing, Double tilt,
|
||||
final OnLocationCameraTransitionListener internalTransitionListener) {
|
||||
if (!wasTracking && isLocationTracking() && lastLocation != null) {
|
||||
if (!wasTracking && isLocationTracking() && lastLocation != null && isEnabled)
|
||||
{
|
||||
isTransitioning = true;
|
||||
LatLng target = new LatLng(lastLocation);
|
||||
|
||||
@@ -320,6 +322,10 @@ final class LocationCameraController {
|
||||
|| cameraMode == CameraMode.NONE_COMPASS;
|
||||
}
|
||||
|
||||
void setEnabled(boolean enabled) {
|
||||
isEnabled = enabled;
|
||||
}
|
||||
|
||||
private boolean isLocationTracking() {
|
||||
return cameraMode == CameraMode.TRACKING
|
||||
|| cameraMode == CameraMode.TRACKING_COMPASS
|
||||
|
||||
@@ -517,6 +517,7 @@ public final class LocationComponent {
|
||||
} else {
|
||||
disableLocationComponent();
|
||||
}
|
||||
locationCameraController.setEnabled(isEnabled);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -57,7 +57,7 @@ public class LocationCameraControllerTest {
|
||||
MapboxMap mapboxMap = mock(MapboxMap.class);
|
||||
LocationCameraController camera = buildCamera(mapboxMap);
|
||||
camera.initializeOptions(mock(LocationComponentOptions.class));
|
||||
|
||||
camera.setEnabled(true);
|
||||
camera.setCameraMode(TRACKING_GPS);
|
||||
|
||||
verify(mapboxMap).cancelTransitions();
|
||||
@@ -1142,6 +1142,32 @@ public class LocationCameraControllerTest {
|
||||
.animateCamera(eq(mapboxMap), eq(cameraUpdate), eq(1200), any(MapboxMap.CancelableCallback.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void transition_customAnimationDisabled() {
|
||||
MapboxMap mapboxMap = mock(MapboxMap.class);
|
||||
Transform transform = mock(Transform.class);
|
||||
when(mapboxMap.getCameraPosition()).thenReturn(CameraPosition.DEFAULT);
|
||||
Projection projection = mock(Projection.class);
|
||||
when(mapboxMap.getProjection()).thenReturn(projection);
|
||||
when(projection.getMetersPerPixelAtLatitude(any(Double.class))).thenReturn(Double.valueOf(1000));
|
||||
LocationCameraController camera = buildCamera(mapboxMap, transform);
|
||||
camera.initializeOptions(mock(LocationComponentOptions.class));
|
||||
Location location = mock(Location.class);
|
||||
CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(
|
||||
new CameraPosition.Builder()
|
||||
.target(new LatLng(location))
|
||||
.zoom(14.0)
|
||||
.bearing(13.0)
|
||||
.tilt(45.0)
|
||||
.build()
|
||||
);
|
||||
|
||||
camera.setEnabled(false);
|
||||
camera.setCameraMode(TRACKING, location, 1200, 14.0, 13.0, 45.0, null);
|
||||
verify(transform, times(0))
|
||||
.animateCamera(eq(mapboxMap), eq(cameraUpdate), eq(1200), any(MapboxMap.CancelableCallback.class));
|
||||
}
|
||||
|
||||
private LocationCameraController buildCamera(OnCameraTrackingChangedListener onCameraTrackingChangedListener) {
|
||||
MapboxMap mapboxMap = mock(MapboxMap.class);
|
||||
when(mapboxMap.getUiSettings()).thenReturn(mock(UiSettings.class));
|
||||
@@ -1206,8 +1232,10 @@ public class LocationCameraControllerTest {
|
||||
OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = mock(OnCameraMoveInvalidateListener.class);
|
||||
AndroidGesturesManager initialGesturesManager = mock(AndroidGesturesManager.class);
|
||||
AndroidGesturesManager internalGesturesManager = mock(AndroidGesturesManager.class);
|
||||
return new LocationCameraController(mapboxMap, transform, moveGestureDetector,
|
||||
LocationCameraController locationCameraController = new LocationCameraController(mapboxMap, transform, moveGestureDetector,
|
||||
onCameraTrackingChangedListener, onCameraMoveInvalidateListener, initialGesturesManager, internalGesturesManager);
|
||||
locationCameraController.setEnabled(true);
|
||||
return locationCameraController;
|
||||
}
|
||||
|
||||
private LocationCameraController buildCamera(MapboxMap mapboxMap, AndroidGesturesManager initialGesturesManager,
|
||||
|
||||
Reference in New Issue
Block a user