From 4f488eb2262813707e1a3e5e044bce962e015fad Mon Sep 17 00:00:00 2001 From: Kris-Gerhard Aabrams Date: Tue, 1 Sep 2026 11:48:38 +0300 Subject: [PATCH] fix(android): don't disable puck bearing and honor followHeading in normal follow mode Two fixes in RNMBXCamera's "normal" follow-mode branch, matching iOS behavior: - Stop setting location.puckBearingEnabled = false: it silently overrides an explicit LocationPuck puckBearing/puckBearingEnabled configuration, freezing a bearing image pointing north whenever followUserMode is "normal". The iOS implementation never touches the puck options here. Fixes #3391. - Pass the non-null followHeading value to FollowPuckViewportStateBearing.Constant: both arms of the when passed cameraState.bearing, so followHeading was ignored and entering normal mode kept the camera's current bearing. --- .../java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt index a471e13ca7..6fd199fc48 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt @@ -488,13 +488,12 @@ class RNMBXCamera(private val mContext: Context, private val mManager: RNMBXCame followOptions.bearing(FollowPuckViewportStateBearing.SyncWithLocationPuck) } "normal" -> { - location.puckBearingEnabled = false when(val it=mFollowHeading) { null -> followOptions.bearing( FollowPuckViewportStateBearing.Constant( cameraState.bearing )) else -> followOptions.bearing( FollowPuckViewportStateBearing.Constant( - cameraState.bearing + it )) } }