From 13e4a45c5892892843ee92ca4515a9b1600d6580 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Fri, 30 Mar 2018 11:50:39 -0400 Subject: [PATCH 1/2] [location-layer] - invalidate onCameraMove as part of tracking animation --- .../plugins/locationlayer/LocationLayerCamera.java | 6 +++++- .../plugins/locationlayer/LocationLayerPlugin.java | 9 +++++++-- .../locationlayer/OnCameraMoveInvalidateListener.java | 7 +++++++ 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/OnCameraMoveInvalidateListener.java diff --git a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java index 3e2f012b9..a2b1b9618 100644 --- a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java +++ b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java @@ -26,12 +26,14 @@ final class LocationLayerCamera implements LocationLayerAnimator.OnCameraAnimati private boolean adjustFocalPoint; private final MoveGestureDetector moveGestureDetector; + private final OnCameraMoveInvalidateListener onCameraMoveInvalidateListener; LocationLayerCamera( Context context, MapboxMap mapboxMap, OnCameraTrackingChangedListener internalCameraTrackingChangedListener, - LocationLayerOptions options) { + LocationLayerOptions options, + OnCameraMoveInvalidateListener onCameraMoveInvalidateListener) { this.mapboxMap = mapboxMap; mapboxMap.setGesturesManager( new PluginsGesturesManager(context), true, true); @@ -40,6 +42,7 @@ final class LocationLayerCamera implements LocationLayerAnimator.OnCameraAnimati mapboxMap.addOnRotateListener(onRotateListener); this.internalCameraTrackingChangedListener = internalCameraTrackingChangedListener; + this.onCameraMoveInvalidateListener = onCameraMoveInvalidateListener; initializeOptions(options); } @@ -65,6 +68,7 @@ private void setBearing(float bearing) { private void setLatLng(LatLng latLng) { mapboxMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); + onCameraMoveInvalidateListener.onInvalidateCameraMove(); } @Override diff --git a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java index ad005b655..421a5d5d2 100644 --- a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java +++ b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java @@ -52,7 +52,7 @@ * * @since 0.1.0 */ -public final class LocationLayerPlugin implements LifecycleObserver { +public final class LocationLayerPlugin implements LifecycleObserver, OnCameraMoveInvalidateListener { private final MapboxMap mapboxMap; private final MapView mapView; @@ -491,6 +491,11 @@ public void onStop() { } } + @Override + public void onInvalidateCameraMove() { + onCameraMoveListener.onCameraMove(); + } + private void initialize() { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); @@ -501,7 +506,7 @@ private void initialize() { locationLayer = new LocationLayer(mapView, mapboxMap, options); locationLayerCamera = new LocationLayerCamera( - mapView.getContext(), mapboxMap, cameraTrackingChangedListener, options); + mapView.getContext(), mapboxMap, cameraTrackingChangedListener, options, this); locationLayerAnimator = new LocationLayerAnimator(); locationLayerAnimator.addLayerListener(locationLayer); locationLayerAnimator.addCameraListener(locationLayerCamera); diff --git a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/OnCameraMoveInvalidateListener.java b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/OnCameraMoveInvalidateListener.java new file mode 100644 index 000000000..3636df9f8 --- /dev/null +++ b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/OnCameraMoveInvalidateListener.java @@ -0,0 +1,7 @@ +package com.mapbox.mapboxsdk.plugins.locationlayer; + +interface OnCameraMoveInvalidateListener { + + void onInvalidateCameraMove(); + +} From c208815daf28acd805e834a29a8da0126cba21b3 Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Wed, 4 Apr 2018 11:49:12 -0400 Subject: [PATCH 2/2] hid the onCameraMoveInvalidateListener --- .../locationlayer/LocationLayerCamera.java | 1 + .../locationlayer/LocationLayerPlugin.java | 16 +++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java index a2b1b9618..194fc3353 100644 --- a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java +++ b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerCamera.java @@ -64,6 +64,7 @@ int getCameraMode() { private void setBearing(float bearing) { mapboxMap.moveCamera(CameraUpdateFactory.bearingTo(bearing)); + onCameraMoveInvalidateListener.onInvalidateCameraMove(); } private void setLatLng(LatLng latLng) { diff --git a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java index 421a5d5d2..f7a5fb4a5 100644 --- a/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java +++ b/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayerPlugin.java @@ -52,7 +52,7 @@ * * @since 0.1.0 */ -public final class LocationLayerPlugin implements LifecycleObserver, OnCameraMoveInvalidateListener { +public final class LocationLayerPlugin implements LifecycleObserver { private final MapboxMap mapboxMap; private final MapView mapView; @@ -491,11 +491,6 @@ public void onStop() { } } - @Override - public void onInvalidateCameraMove() { - onCameraMoveListener.onCameraMove(); - } - private void initialize() { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); @@ -506,7 +501,7 @@ private void initialize() { locationLayer = new LocationLayer(mapView, mapboxMap, options); locationLayerCamera = new LocationLayerCamera( - mapView.getContext(), mapboxMap, cameraTrackingChangedListener, options, this); + mapView.getContext(), mapboxMap, cameraTrackingChangedListener, options, onCameraMoveInvalidateListener); locationLayerAnimator = new LocationLayerAnimator(); locationLayerAnimator.addLayerListener(locationLayer); locationLayerAnimator.addCameraListener(locationLayerCamera); @@ -644,6 +639,13 @@ public void onMapChanged(int change) { } }; + private OnCameraMoveInvalidateListener onCameraMoveInvalidateListener = new OnCameraMoveInvalidateListener() { + @Override + public void onInvalidateCameraMove() { + onCameraMoveListener.onCameraMove(); + } + }; + private CompassListener compassListener = new CompassListener() { @Override public void onCompassChanged(float userHeading) {