From 490a791caebd266ac13f1858e46b2c4809e2dff1 Mon Sep 17 00:00:00 2001 From: Nazar Shcherbiak Date: Tue, 16 Dec 2025 15:01:33 +0200 Subject: [PATCH 1/7] Fix queryRenderedFeaturesInRect --- .../rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt | 3 ++- .../java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt index 5ff073e3ff..dfe89f64e3 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt @@ -133,9 +133,10 @@ class NativeMapViewModule(context: ReactApplicationContext, val viewTagResolver: ) { withMapViewOnUIThread(viewRef, promise) { val layerIds = ConvertUtils.toStringList(withLayerIDs) + val rectF = ConvertUtils.toRectF(withBBox) it.queryRenderedFeaturesInRect( - ConvertUtils.toRectF(withBBox), + if (withBBox.size() == 0) null else rectF, ExpressionParser.from(withFilter), if (layerIds.size == 0) null else layerIds, createCommandResponse(promise) diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt index b05cdbe74d..f6841eff00 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt @@ -969,8 +969,8 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie fun queryRenderedFeaturesInRect(rect: RectF?, filter: Expression?, layerIDs: List?, response: CommandResponse) { val size = mMap.getMapOptions().size val screenBox = if (rect == null) ScreenBox(ScreenCoordinate(0.0, 0.0), ScreenCoordinate(size?.width!!.toDouble(), size?.height!!.toDouble())) else ScreenBox( - ScreenCoordinate(rect.right.toDouble(), rect.bottom.toDouble() ), ScreenCoordinate(rect.left.toDouble(), rect.top.toDouble()), + ScreenCoordinate(rect.right.toDouble(), rect.bottom.toDouble()), ) mMap.queryRenderedFeatures( RenderedQueryGeometry(screenBox), From deee3ab9c5e4809cfed5b6589df87bb094b023d0 Mon Sep 17 00:00:00 2001 From: Nazar Shcherbiak Date: Tue, 16 Dec 2025 15:02:59 +0200 Subject: [PATCH 2/7] Stop propagation move events when scroll gesture disabled --- .../java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt index f6841eff00..0168014781 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt @@ -297,6 +297,9 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie } override fun onMove(moveGestureDetector: MoveGestureDetector): Boolean { + // Stop propagation move events when scroll gesture disabled to allow moving + // route waypoints on the map + if (!mapView.gestures.scrollEnabled) return true return mapGesture(MapGestureType.Move, moveGestureDetector) } From 6379fd6ff530fac001644f3ee9681ba43c85dad2 Mon Sep 17 00:00:00 2001 From: Nazar Shcherbiak Date: Tue, 16 Dec 2025 15:07:45 +0200 Subject: [PATCH 3/7] Fix for Apollo build --- .../java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt | 3 ++- .../com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt index 0168014781..ba55b7d1f4 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt @@ -1171,7 +1171,8 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie val layer = style.getLayer(it.id) if ((layer != null) && match(layer, sourceId, sourceLayerId)) { layer.visibility( - if (visible) Visibility.VISIBLE else Visibility.NONE + // Fix for Apollo build issue caused by android-35.jar + if (visible) com.mapbox.maps.extension.style.layers.properties.generated.Visibility.VISIBLE else com.mapbox.maps.extension.style.layers.properties.generated.Visibility.NONE ) } } diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt index be1a597f6b..3d0051b394 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt @@ -95,7 +95,8 @@ abstract class RNMBXLayer(protected var mContext: Context) : Abstrac fun setVisible(visible: Boolean) { mVisible = visible if (mLayer != null) { - mLayer!!.visibility(if (mVisible) Visibility.VISIBLE else Visibility.NONE) + // Fix for Apollo build issue caused by android-35.jar + mLayer!!.visibility(if (mVisible) com.mapbox.maps.extension.style.layers.properties.generated.Visibility.VISIBLE else com.mapbox.maps.extension.style.layers.properties.generated.Visibility.NONE) } } From 5fdba15b34d7b4315c58f182f1a402652813f100 Mon Sep 17 00:00:00 2001 From: Nazar Shcherbiak Date: Tue, 16 Dec 2025 15:10:02 +0200 Subject: [PATCH 4/7] Fix dev error on app reload triggered from terminal --- .../java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt b/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt index 21f36b2f21..7193178ed4 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt @@ -42,7 +42,7 @@ open class ViewTagResolver(val context: ReactApplicationContext) { if (list != null) { context.runOnUiQueueThread { try { - val view = manager.resolveView(viewTag) + val view = manager?.resolveView(viewTag) list.forEach { it.fn(view) } } catch (err: IllegalViewOperationException) { @@ -58,19 +58,19 @@ open class ViewTagResolver(val context: ReactApplicationContext) { createdViews.remove(viewTag) } - private val manager : UIManager + private val manager : UIManager? get() = if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - UIManagerHelper.getUIManager(context, UIManagerType.FABRIC)!! + UIManagerHelper.getUIManager(context, UIManagerType.FABRIC) } else { - UIManagerHelper.getUIManager(context, UIManagerType.DEFAULT)!! + UIManagerHelper.getUIManager(context, UIManagerType.DEFAULT) } // calls on UiQueueThread with resolved view fun withViewResolved(viewTag: Int, reject: Promise? = null, fn: (V) -> Unit) { context.runOnUiQueueThread() { try { - val resolvedView: View? = manager.resolveView(viewTag) + val resolvedView: View? = manager?.resolveView(viewTag) val view = resolvedView as? V if (view != null) { fn(view) From ff4928b183704571811beaa6366ac0763e26e82d Mon Sep 17 00:00:00 2001 From: Nazar Shcherbiak Date: Tue, 16 Dec 2025 15:13:42 +0200 Subject: [PATCH 5/7] Expose rn mapbox instance --- ios/RNMBX/RNMBXMapView.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ios/RNMBX/RNMBXMapView.swift b/ios/RNMBX/RNMBXMapView.swift index 80c77e43fb..20d9dc8bae 100644 --- a/ios/RNMBX/RNMBXMapView.swift +++ b/ios/RNMBX/RNMBXMapView.swift @@ -293,6 +293,11 @@ open class RNMBXMapView: UIView, RCTInvalidating { get { _mapView?.mapboxMap } } + // Provide public method to get mapbox from MapView + public func getMapboxMap() -> MapboxMap { + return self.mapView.mapboxMap + } + @objc public func addToMap(_ subview: UIView) { withMapView { mapView in // Check for RNMBXMapAndMapViewComponent first (requires MapView) From ae6c3ed9a46a46ab3044de028423136aa2c71fc8 Mon Sep 17 00:00:00 2001 From: Nazar Shcherbiak Date: Tue, 16 Dec 2025 15:36:20 +0200 Subject: [PATCH 6/7] Remove unused import --- .../com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt index 3d0051b394..095bebed63 100644 --- a/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt +++ b/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt @@ -18,7 +18,6 @@ import com.rnmapbox.rnmbx.components.RemovalReason import com.rnmapbox.rnmbx.utils.ExpressionParser import java.lang.ClassCastException import com.rnmapbox.rnmbx.utils.Logger -import com.rnmapbox.rnmbx.v11compat.layer.* abstract class RNMBXLayer(protected var mContext: Context) : AbstractSourceConsumer( mContext From ee201da3fb2716edadbc6fe217a1d1844e123861 Mon Sep 17 00:00:00 2001 From: Nazar Shcherbiak Date: Tue, 16 Dec 2025 16:02:22 +0200 Subject: [PATCH 7/7] Update package json --- package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/package.json b/package.json index 6f4d44ba6b..791e13dbb7 100644 --- a/package.json +++ b/package.json @@ -151,9 +151,6 @@ "optional": true } }, - "workspaces": [ - "example" - ], "resolutions": { "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0"