Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ import com.mapbox.android.gestures.AndroidGesturesManager

internal class LocationGesturesManager(
context: Context,
private val onUpEventCallback: (AndroidGesturesManager) -> Unit
private val onUpEventCallback: (AndroidGesturesManager) -> Unit,
private val onDownEventCallback: (AndroidGesturesManager) -> Unit,
) : AndroidGesturesManager(context) {
override fun onTouchEvent(motionEvent: MotionEvent?): Boolean {
if (motionEvent != null) {
val action: Int = motionEvent.actionMasked
if (action == MotionEvent.ACTION_UP) {
onUpEventCallback.invoke(this)
when (motionEvent.actionMasked) {
MotionEvent.ACTION_UP -> onUpEventCallback.invoke(this)
MotionEvent.ACTION_DOWN -> onDownEventCallback.invoke(this)
}
}
return super.onTouchEvent(motionEvent)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ import com.mapbox.android.gestures.AndroidGesturesManager
internal object NavigationCameraLifecycleProvider {
fun getCustomGesturesManager(
context: Context,
onUpEventCallback: (AndroidGesturesManager) -> Unit
): AndroidGesturesManager = LocationGesturesManager(context, onUpEventCallback)
onUpEventCallback: (AndroidGesturesManager) -> Unit,
onDownEventCallback: (AndroidGesturesManager) -> Unit,
): AndroidGesturesManager = LocationGesturesManager(
context,
onUpEventCallback,
onDownEventCallback,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import com.mapbox.maps.plugin.animation.CameraAnimationsLifecycleListener
import com.mapbox.maps.plugin.animation.CameraAnimationsPlugin
import com.mapbox.maps.plugin.animation.CameraAnimatorType
import com.mapbox.maps.plugin.animation.MapAnimationOwnerRegistry
import com.mapbox.maps.plugin.delegates.listeners.OnCameraChangeListener
import com.mapbox.maps.plugin.gestures.GesturesPlugin
import com.mapbox.maps.plugin.gestures.OnMoveListener
import com.mapbox.maps.plugin.gestures.generated.GesturesSettings
Expand Down Expand Up @@ -167,10 +166,16 @@ class NavigationScaleGestureHandler(
*/
val customGesturesManager: AndroidGesturesManager =
NavigationCameraLifecycleProvider.getCustomGesturesManager(
context
) { gesturesManager ->
adjustGesturesThresholds(gesturesManager.moveGestureDetector)
}
context,
onUpEventCallback = { gesturesManager: AndroidGesturesManager ->
adjustGesturesThresholds(gesturesManager.moveGestureDetector)
},
onDownEventCallback = {
puckScreenPosition?.let {
adjustFocalPoint(it)
}
}
)

private var puckScreenPosition: Point? = null

Expand Down Expand Up @@ -242,15 +247,10 @@ class NavigationScaleGestureHandler(
}

private val onIndicatorPositionChangedListener =
OnIndicatorPositionChangedListener {
point ->
puckScreenPosition = point.also { adjustFocalPoint(it) }
OnIndicatorPositionChangedListener { point ->
puckScreenPosition = point
}

private val onCameraChangedListener = OnCameraChangeListener {
puckScreenPosition?.let { adjustFocalPoint(it) }
}

private val navigationCameraStateChangedObserver =
NavigationCameraStateChangedObserver {
adjustGesturesThresholds(customGesturesManager.moveGestureDetector)
Expand Down Expand Up @@ -292,8 +292,6 @@ class NavigationScaleGestureHandler(

locationPlugin.addOnIndicatorPositionChangedListener(onIndicatorPositionChangedListener)

mapboxMap.addOnCameraChangeListener(onCameraChangedListener)

navigationCamera.registerNavigationCameraStateChangeObserver(
navigationCameraStateChangedObserver
)
Expand All @@ -317,8 +315,6 @@ class NavigationScaleGestureHandler(

locationPlugin.removeOnIndicatorPositionChangedListener(onIndicatorPositionChangedListener)

mapboxMap.removeOnCameraChangeListener(onCameraChangedListener)

navigationCamera.unregisterNavigationCameraStateChangeObserver(
navigationCameraStateChangedObserver
)
Expand Down