Skip to content

Commit

Permalink
rn-0.75
Browse files Browse the repository at this point in the history
  • Loading branch information
mfazekas committed Jul 5, 2024
1 parent 00fa19f commit e0b3a02
Show file tree
Hide file tree
Showing 22 changed files with 175 additions and 40 deletions.
5 changes: 3 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ android {
} else {
java.srcDirs += 'src/main/mapbox-v11-compat/v10'
}
java.srcDirs += 'src/main/rn-compat/rn75'
if (safeExtGet("RNMapboxMapsUseV11", false)) {
logger.warn("RNMapboxMapsUseV11 is deprecated, just set RNMapboxMapsVersion to 11.*")
}
Expand Down Expand Up @@ -164,9 +165,9 @@ dependencies {

// Dependencies
customizableDependencies('RNMapboxMapsSupportLibs') {
implementation "com.android.support:support-vector-drawable:28.0.0"
//implementation "com.android.support:support-vector-drawable:28.0.0"
implementation "com.android.support:support-annotations:28.0.0"
implementation "com.android.support:appcompat-v7:28.0.0"
//implementation "com.android.support:appcompat-v7:28.0.0"
}
customizableDependencies('RNMapboxMapsOkHTTPLibs') {
implementation "com.squareup.okhttp3:okhttp:4.9.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.rnmapbox.rnmbx.utils.ViewTagResolver
import com.rnmapbox.rnmbx.utils.extensions.asBooleanOrNull
import com.rnmapbox.rnmbx.utils.extensions.asDoubleOrNull
import com.rnmapbox.rnmbx.utils.extensions.asStringOrNull
import com.rnmapbox.rnmbx.rncompat.dynamic.*

class RNMBXCameraManager(private val mContext: ReactApplicationContext, val viewTagResolver: ViewTagResolver) :
AbstractEventEmitter<RNMBXCamera?>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.mapbox.maps.ImageStretches
import com.rnmapbox.rnmbx.components.AbstractEventEmitter
import com.rnmapbox.rnmbx.events.constants.EventKeys
import com.rnmapbox.rnmbx.events.constants.eventMapOf
import com.rnmapbox.rnmbx.rncompat.dynamic.*
import com.rnmapbox.rnmbx.utils.ImageEntry
import com.rnmapbox.rnmbx.utils.Logger
import com.rnmapbox.rnmbx.utils.ResourceUtils
Expand Down Expand Up @@ -202,15 +203,13 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) :
images.setNativeImages(nativeImages)
}

override fun customEvents(): Map<String, String>? {
return eventMapOf(
override fun customEvents(): Map<String, String>? { return eventMapOf(
EventKeys.IMAGES_MISSING to "onImageMissing"
)
}

// region RNMBXImage children

override fun addView(parent: RNMBXImages?, childView: View?, childPosition: Int) {
override fun addView(parent: RNMBXImages, childView: View, childPosition: Int) {
if (parent == null || childView == null) {
Logger.e("RNMBXImages", "addView: parent or childView is null")
return
Expand All @@ -225,7 +224,7 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) :
childView.nativeImageUpdater = parent
}

override fun removeView(parent: RNMBXImages?, view: View?) {
override fun removeView(parent: RNMBXImages, view: View) {
if (parent == null || view == null) {
Logger.e("RNMBXImages", "removeView: parent or view is null")
return
Expand All @@ -234,7 +233,7 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) :
parent.mImageViews.remove(view)
}

override fun removeAllViews(parent: RNMBXImages?) {
override fun removeAllViews(parent: RNMBXImages) {
if (parent == null) {
Logger.e("RNMBXImages", "removeAllViews parent is null")
return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ import com.facebook.react.uimanager.ThemedReactContext
import com.facebook.react.uimanager.ViewGroupManager
import com.facebook.react.uimanager.annotations.ReactProp
import com.facebook.react.viewmanagers.RNMBXCustomLocationProviderManagerInterface
import com.rnmapbox.rnmbx.rncompat.dynamic.*
import com.rnmapbox.rnmbx.utils.Logger


class RNMBXCustomLocationProviderManager : ViewGroupManager<RNMBXCustomLocationProvider>(),
RNMBXCustomLocationProviderManagerInterface<RNMBXCustomLocationProvider> {
override fun getName(): String {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.google.gson.Gson
import com.google.gson.stream.JsonWriter
import com.mapbox.bindgen.Value
import com.mapbox.maps.extension.style.expressions.generated.Expression
import com.rnmapbox.rnmbx.rncompat.dynamic.*
import com.rnmapbox.rnmbx.utils.Logger
import com.rnmapbox.rnmbx.utils.extensions.toJsonArray
import java.io.StringWriter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,22 +143,22 @@ class NativeMapViewModule(context: ReactApplicationContext, val viewTagResolver:

override fun setHandledMapChangedEvents(
viewRef: ViewRefTag?,
events: ReadableArray,
promise: Promise
events: ReadableArray?,
promise: Promise?
) {
withMapViewOnUIThread(viewRef, promise) {
it.setHandledMapChangedEvents(events.asArrayString())
withMapViewOnUIThread(viewRef, promise!!) {
it.setHandledMapChangedEvents(events!!.asArrayString())
promise.resolve(null)
}
}

/*
public fun setHandledMapChangedEvents(
viewRef: Double?,
events: ReadableArray,
promise: Promise
promise: Promise?
) {
setHandledMapChangedEvents(viewRef?.toInt(), events, promise)
}
} */

override fun clearData(viewRef: ViewRefTag?, promise: Promise) {
withMapViewOnUIThread(viewRef, promise) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,19 +86,19 @@ open class RNMBXMapViewManager(context: ReactApplicationContext, val viewTagReso
}
}

override fun addView(mapView: RNMBXMapView?, childView: View?, childPosition: Int) {
override fun addView(mapView: RNMBXMapView, childView: View, childPosition: Int) {
mapView!!.addFeature(childView, childPosition)
}

override fun getChildCount(mapView: RNMBXMapView?): Int {
override fun getChildCount(mapView: RNMBXMapView): Int {
return mapView!!.featureCount
}

override fun getChildAt(mapView: RNMBXMapView?, index: Int): View? {
override fun getChildAt(mapView: RNMBXMapView, index: Int): View? {
return mapView!!.getFeatureAt(index)
}

override fun removeViewAt(mapView: RNMBXMapView?, index: Int) {
override fun removeViewAt(mapView: RNMBXMapView, index: Int) {
mapView!!.removeFeatureAt(index)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.facebook.react.viewmanagers.RNMBXStyleImportManagerInterface
import com.rnmapbox.rnmbx.components.AbstractEventEmitter
import com.rnmapbox.rnmbx.components.mapview.RNMBXMapView
import com.mapbox.bindgen.Value
import com.rnmapbox.rnmbx.rncompat.dynamic.*
import com.rnmapbox.rnmbx.utils.Logger
import com.rnmapbox.rnmbx.utils.extensions.toValueHashMap
import org.json.JSONObject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.mapbox.maps.extension.style.types.StyleTransition
import com.rnmapbox.rnmbx.components.styles.RNMBXStyleFactory
import com.mapbox.maps.extension.style.expressions.generated.Expression
import com.mapbox.maps.extension.style.light.LightPosition
import com.rnmapbox.rnmbx.rncompat.dynamic.*
import com.rnmapbox.rnmbx.utils.ExpressionParser
import com.rnmapbox.rnmbx.utils.Logger
import java.util.ArrayList
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.net.Uri
import android.util.Log
import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper
import com.mapbox.maps.extension.style.sources.generated.ImageSource
import com.rnmapbox.rnmbx.rncompat.resourcedrawableidhelper.*
import com.rnmapbox.rnmbx.utils.LatLngQuad
import java.net.URL

Expand Down Expand Up @@ -66,4 +67,5 @@ class RNMBXImageSource(context: Context?) : RNMBXSource<ImageSource?>(context) {
companion object {
const val LOG_TAG = "RNMBXImageSource"
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ class RNMBXShapeSourceModule(reactContext: ReactApplicationContext?, private val
override fun getClusterLeaves(
viewRef: ViewRefTag?,
featureJSON: String,
number: Int,
offset: Int,
number: Double,
offset: Double,
promise: Promise
) {
withShapeSourceOnUIThread(viewRef, promise) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ import com.rnmapbox.rnmbx.components.AbstractEventEmitter
abstract class RNMBXTileSourceManager<T : RNMBXTileSource<*>?> internal constructor(
reactApplicationContext: ReactApplicationContext
) : AbstractEventEmitter<T>(reactApplicationContext) {
override fun getChildAt(source: T, childPosition: Int): View {
override fun getChildAt(source: T & Any, childPosition: Int): View {
return source!!.getChildAt(childPosition)
}

override fun getChildCount(source: T): Int {
override fun getChildCount(source: T & Any): Int {
return source!!.childCount
}

override fun addView(source: T, childView: View, childPosition: Int) {
override fun addView(source: T & Any, childView: View, childPosition: Int) {
source!!.addLayer(childView, childPosition)
}

override fun removeViewAt(source: T, childPosition: Int) {
override fun removeViewAt(source: T & Any, childPosition: Int) {
source!!.removeLayer(childPosition)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ data class ViewTagWaiter<V>(

const val LOG_TAG = "ViewTagResolver"

typealias ViewRefTag = Int
typealias ViewRefTag = Double
// see https://github.com/rnmapbox/maps/pull/3074
open class ViewTagResolver(val context: ReactApplicationContext) {
private val createdViews: HashSet<Int> = hashSetOf<Int>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.facebook.react.bridge.ReadableArray
import com.facebook.react.bridge.ReadableMap
import com.facebook.react.bridge.ReadableType
import com.mapbox.bindgen.Value
import com.rnmapbox.rnmbx.rncompat.dynamic.*

fun ReadableMap.toValueHashMap(): HashMap<String, Value> {
var result = hashMapOf<String, Value>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import com.mapbox.geojson.MultiPolygon
import com.mapbox.geojson.Point
import com.mapbox.geojson.Polygon
import com.mapbox.maps.EdgeInsets
import com.rnmapbox.rnmbx.rncompat.readable_map.*
import com.rnmapbox.rnmbx.utils.ConvertUtils
import com.rnmapbox.rnmbx.utils.Logger

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.rnmapbox.rnmbx.rncompat.dynamic

import com.facebook.react.bridge.Dynamic
import com.facebook.react.bridge.ReadableType

val Dynamic.type: ReadableType
get() { return this.getType() }

val Dynamic.isNull: Boolean
get() { return this.isNull() }
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.rnmapbox.rnmbx.rncompat.readable_map
import com.facebook.react.bridge.ReadableMap

val ReadableMap.entryIterator: Iterator<Map. Entry<String, Any>>
get() { return this.getEntryIterator() }
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.rnmapbox.rnmbx.rncompat.resourcedrawableidhelper;

import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper

public fun ResourceDrawableIdHelper.Companion.getInstance(): ResourceDrawableIdHelper {
return this.instance
}
17 changes: 9 additions & 8 deletions example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"web": "expo start -c --web",
"pod:install": "cd ios && pod install",
"start": "yarn react-native start",
"postinstall": "node ./scripts/set_access_token.js",
"postinstall": "node ./scripts/set_access_token.js && patch-package",
"purge:android": "(cd android && ./gradlew --stop) && rm -rf ~/.gradle/caches/ android/app/build",
"purge:ios": "rm -rf ios/Pods/* ios/build ~/Library/Caches/CocoaPods ~/Library/Developer/Xcode/DerivedData && pod cache clean --all",
"purge:js": "rm -rf node_modules && yarn cache clean && watchman watch-del-all",
Expand All @@ -24,6 +24,7 @@
"@react-navigation/native": "^6.0.17",
"@react-navigation/native-stack": "^6.9.26",
"@rneui/base": "^4.0.0-rc.6",
"@rnmapbox/maps": "link:../",
"@turf/along": "^6.5.0",
"@turf/bbox": "^6.5.0",
"@turf/bbox-polygon": "^6.5.0",
Expand All @@ -40,8 +41,7 @@
"react-native": "0.75.0-rc.3",
"react-native-safe-area-context": "4.10.4",
"react-native-screens": "3.31.1",
"react-native-vector-icons": "9.2.0",
"@rnmapbox/maps": "link:../"
"react-native-vector-icons": "9.2.0"
},
"optionalDependencies": {
"@expo/metro-runtime": "3.2.1",
Expand All @@ -63,15 +63,16 @@
"@types/react": "^18.2.45",
"@types/react-test-renderer": "^18.0.0",
"babel-jest": "^29.6.3",
"babel-plugin-module-resolver": "^5.0.0",
"detox": "^20.12.1",
"eslint": "^8.19.0",
"glob-to-regexp": "^0.4.0",
"jest": "^29.6.3",
"patch-package": "^8.0.0",
"pod-install": "^0.1.0",
"prettier": "^2.8.8",
"react-test-renderer": "19.0.0-rc-fb9a90fa48-20240614",
"typescript": "^5.3.3",
"detox": "^20.12.1",
"glob-to-regexp": "^0.4.0",
"babel-plugin-module-resolver": "^5.0.0",
"pod-install": "^0.1.0"
"typescript": "^5.3.3"
},
"engines": {
"node": ">=18"
Expand Down
22 changes: 22 additions & 0 deletions example/patches/react-native-safe-area-context+4.10.4.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
diff --git a/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.kt b/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.kt
index a57fa38..c1103ac 100644
--- a/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.kt
+++ b/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.kt
@@ -143,7 +143,7 @@ class SafeAreaViewShadowNode : LayoutShadowNode() {
override fun setPaddings(index: Int, padding: Dynamic) {
val spacingType = ViewProps.PADDING_MARGIN_SPACING_TYPES[index]
mPaddings[spacingType] =
- if (padding.type == ReadableType.Number) padding.asDouble().toFloat() else Float.NaN
+ if (padding.getType() == ReadableType.Number) padding.asDouble().toFloat() else Float.NaN
super.setPaddings(index, padding)
mNeedsUpdate = true
}
@@ -163,7 +163,7 @@ class SafeAreaViewShadowNode : LayoutShadowNode() {
override fun setMargins(index: Int, margin: Dynamic) {
val spacingType = ViewProps.PADDING_MARGIN_SPACING_TYPES[index]
mMargins[spacingType] =
- if (margin.type == ReadableType.Number) margin.asDouble().toFloat() else Float.NaN
+ if (margin.getType() == ReadableType.Number) margin.asDouble().toFloat() else Float.NaN
super.setMargins(index, margin)
mNeedsUpdate = true
}
Loading

0 comments on commit e0b3a02

Please sign in to comment.