@rnmapbox/maps 10.1.0-beta.18 → 10.1.0-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +19 -3
- package/android/src/main/java/com/rnmapbox/rnmbx/components/AbstractEvent.kt +24 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/AbstractEventEmitter.kt +5 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerView.kt +5 -5
- package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerViewManager.kt +3 -9
- package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationManager.kt +8 -7
- package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +4 -4
- package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXVIewportManager.kt +55 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXViewport.kt +259 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXViewportModule.kt +66 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/images/ImageManager.kt +53 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImages.kt +2 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt +4 -3
- package/android/src/main/java/com/rnmapbox/rnmbx/components/location/LocationComponentManager.kt +78 -47
- package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXCustomLocationProvider.kt +114 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXCustomLocationProviderManager.kt +45 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocation.kt +194 -25
- package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocationManager.kt +82 -7
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +0 -7
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +12 -8
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt +9 -8
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyle.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt +5 -4
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSourceManager.kt +5 -4
- package/android/src/main/java/com/rnmapbox/rnmbx/events/AndroidCallbackEvent.java +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/events/FeatureClickEvent.java +3 -3
- package/android/src/main/java/com/rnmapbox/rnmbx/events/IEvent.kt +1 -4
- package/android/src/main/java/com/rnmapbox/rnmbx/events/ImageMissingEvent.java +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/events/LocationEvent.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/events/MapChangeEvent.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/events/MapClickEvent.java +2 -2
- package/android/src/main/java/com/rnmapbox/rnmbx/events/MapUserTrackingModeEvent.kt +4 -4
- package/android/src/main/java/com/rnmapbox/rnmbx/events/PointAnnotationClickEvent.java +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/events/PointAnnotationDragEvent.java +3 -3
- package/android/src/main/java/com/rnmapbox/rnmbx/events/constants/EventKeys.kt +44 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/utils/BitmapUtils.kt +3 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/utils/DownloadMapImageTask.kt +5 -2
- package/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableArray.kt +21 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableMap.kt +34 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Annotation.kt +29 -1
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Cancelable.kt +15 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Image.kt +17 -1
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Location.kt +6 -9
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Annotation.kt +29 -1
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Cancelable.kt +3 -0
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Image.kt +21 -1
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Location.kt +2 -2
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCustomLocationProviderManagerDelegate.java +32 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCustomLocationProviderManagerInterface.java +17 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerDelegate.java +20 -2
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerInterface.java +7 -1
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXViewportManagerDelegate.java +35 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXViewportManagerInterface.java +18 -0
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXViewportModuleSpec.java +49 -0
- package/ios/RNMBX/ImageManager.swift +41 -0
- package/ios/RNMBX/RNMBXCustomLocationProvider.swift +269 -0
- package/ios/RNMBX/RNMBXCustomLocationProviderComponentView.h +15 -0
- package/ios/RNMBX/RNMBXCustomLocationProviderComponentView.mm +67 -0
- package/ios/RNMBX/RNMBXCustomLocationProviderVIewManager.swift +13 -0
- package/ios/RNMBX/RNMBXCustomLocationProviderViewManager.m +9 -0
- package/ios/RNMBX/RNMBXFabricPropConvert.h +41 -0
- package/ios/RNMBX/RNMBXFabricPropConvert.mm +131 -0
- package/ios/RNMBX/RNMBXImageModule.mm +2 -2
- package/ios/RNMBX/RNMBXImages.swift +20 -4
- package/ios/RNMBX/RNMBXImagesComponentView.mm +19 -1
- package/ios/RNMBX/RNMBXLocationModule.swift +25 -14
- package/ios/RNMBX/RNMBXLocationModuleV11.swift +81 -14
- package/ios/RNMBX/RNMBXLogging.swift +8 -0
- package/ios/RNMBX/RNMBXMapView.swift +4 -3
- package/ios/RNMBX/RNMBXMapViewComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXMapViewManager.swift +0 -1
- package/ios/RNMBX/RNMBXMapViewModule.mm +0 -1
- package/ios/RNMBX/RNMBXMarkerView.swift +0 -1
- package/ios/RNMBX/RNMBXNativeUserLocation.swift +217 -21
- package/ios/RNMBX/RNMBXNativeUserLocationComponentView.mm +14 -6
- package/ios/RNMBX/RNMBXNativeUserLocationViewManager.m +7 -0
- package/ios/RNMBX/RNMBXPointAnnotationModule.mm +2 -2
- package/ios/RNMBX/RNMBXUtils.swift +2 -7
- package/ios/RNMBX/RNMBXViewport.swift +220 -0
- package/ios/RNMBX/RNMBXViewportComponentView.h +17 -0
- package/ios/RNMBX/RNMBXViewportComponentView.mm +119 -0
- package/ios/RNMBX/RNMBXViewportManager.m +12 -0
- package/ios/RNMBX/RNMBXViewportManager.swift +38 -0
- package/ios/RNMBX/RNMBXViewportModule.h +18 -0
- package/ios/RNMBX/RNMBXViewportModule.mm +87 -0
- package/ios/RNMBX/Uitls/PropertyChanges.swift +3 -4
- package/ios/RNMBX/rnmapbox_maps-Swift.pre.h +3 -0
- package/lib/commonjs/Mapbox.js +24 -0
- package/lib/commonjs/Mapbox.js.map +1 -1
- package/lib/commonjs/classes/AnimatedCoordinatesArray.js +4 -4
- package/lib/commonjs/classes/AnimatedCoordinatesArray.js.map +1 -1
- package/lib/commonjs/classes/AnimatedPoint.js +9 -14
- package/lib/commonjs/classes/AnimatedPoint.js.map +1 -1
- package/lib/commonjs/classes/AnimatedRouteCoordinatesArray.js +1 -2
- package/lib/commonjs/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
- package/lib/commonjs/components/Annotation.js +1 -2
- package/lib/commonjs/components/Annotation.js.map +1 -1
- package/lib/commonjs/components/Camera.js +5 -11
- package/lib/commonjs/components/Camera.js.map +1 -1
- package/lib/commonjs/components/CustomLocationProvider.js +16 -0
- package/lib/commonjs/components/CustomLocationProvider.js.map +1 -0
- package/lib/commonjs/components/HeadingIndicator.js +3 -4
- package/lib/commonjs/components/HeadingIndicator.js.map +1 -1
- package/lib/commonjs/components/Image.js +7 -8
- package/lib/commonjs/components/Image.js.map +1 -1
- package/lib/commonjs/components/MapView.js +6 -15
- package/lib/commonjs/components/MapView.js.map +1 -1
- package/lib/commonjs/components/NativeBridgeComponent.js +3 -4
- package/lib/commonjs/components/NativeBridgeComponent.js.map +1 -1
- package/lib/commonjs/components/NativeUserLocation.js +23 -1
- package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
- package/lib/commonjs/components/UserLocation.js +3 -4
- package/lib/commonjs/components/UserLocation.js.map +1 -1
- package/lib/commonjs/components/Viewport.js +105 -0
- package/lib/commonjs/components/Viewport.js.map +1 -0
- package/lib/commonjs/modules/location/locationManager.js +1 -2
- package/lib/commonjs/modules/location/locationManager.js.map +1 -1
- package/lib/commonjs/modules/snapshot/SnapshotOptions.js +1 -2
- package/lib/commonjs/modules/snapshot/SnapshotOptions.js.map +1 -1
- package/lib/commonjs/modules/snapshot/snapshotManager.js +1 -2
- package/lib/commonjs/modules/snapshot/snapshotManager.js.map +1 -1
- package/lib/commonjs/specs/NativeRNMBXViewportModule.js +10 -0
- package/lib/commonjs/specs/NativeRNMBXViewportModule.js.map +1 -0
- package/lib/commonjs/specs/RNMBXCustomLocationProviderNativeComponent.js +11 -0
- package/lib/commonjs/specs/RNMBXCustomLocationProviderNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js +1 -0
- package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNMBXViewportNativeComponent.js +36 -0
- package/lib/commonjs/specs/RNMBXViewportNativeComponent.js.map +1 -0
- package/lib/commonjs/utils/deprecation.js +3 -4
- package/lib/commonjs/utils/deprecation.js.map +1 -1
- package/lib/commonjs/utils/geoUtils.js +1 -3
- package/lib/commonjs/utils/geoUtils.js.map +1 -1
- package/lib/commonjs/utils/index.js +2 -4
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/web/components/Camera.js +1 -3
- package/lib/commonjs/web/components/Camera.js.map +1 -1
- package/lib/module/Mapbox.js +3 -0
- package/lib/module/Mapbox.js.map +1 -1
- package/lib/module/classes/AnimatedCoordinatesArray.js +4 -4
- package/lib/module/classes/AnimatedCoordinatesArray.js.map +1 -1
- package/lib/module/classes/AnimatedPoint.js +9 -14
- package/lib/module/classes/AnimatedPoint.js.map +1 -1
- package/lib/module/classes/AnimatedRouteCoordinatesArray.js +1 -2
- package/lib/module/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
- package/lib/module/components/Annotation.js +1 -2
- package/lib/module/components/Annotation.js.map +1 -1
- package/lib/module/components/Camera.js +5 -11
- package/lib/module/components/Camera.js.map +1 -1
- package/lib/module/components/CustomLocationProvider.js +7 -0
- package/lib/module/components/CustomLocationProvider.js.map +1 -0
- package/lib/module/components/HeadingIndicator.js +3 -4
- package/lib/module/components/HeadingIndicator.js.map +1 -1
- package/lib/module/components/Image.js +7 -8
- package/lib/module/components/Image.js.map +1 -1
- package/lib/module/components/MapView.js +6 -15
- package/lib/module/components/MapView.js.map +1 -1
- package/lib/module/components/NativeBridgeComponent.js +3 -4
- package/lib/module/components/NativeBridgeComponent.js.map +1 -1
- package/lib/module/components/NativeUserLocation.js +24 -2
- package/lib/module/components/NativeUserLocation.js.map +1 -1
- package/lib/module/components/UserLocation.js +3 -4
- package/lib/module/components/UserLocation.js.map +1 -1
- package/lib/module/components/Viewport.js +96 -0
- package/lib/module/components/Viewport.js.map +1 -0
- package/lib/module/modules/location/locationManager.js +1 -2
- package/lib/module/modules/location/locationManager.js.map +1 -1
- package/lib/module/modules/snapshot/SnapshotOptions.js +1 -2
- package/lib/module/modules/snapshot/SnapshotOptions.js.map +1 -1
- package/lib/module/modules/snapshot/snapshotManager.js +1 -2
- package/lib/module/modules/snapshot/snapshotManager.js.map +1 -1
- package/lib/module/specs/NativeRNMBXViewportModule.js +6 -0
- package/lib/module/specs/NativeRNMBXViewportModule.js.map +1 -0
- package/lib/module/specs/RNMBXCustomLocationProviderNativeComponent.js +6 -0
- package/lib/module/specs/RNMBXCustomLocationProviderNativeComponent.js.map +1 -0
- package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js +3 -0
- package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
- package/lib/module/specs/RNMBXViewportNativeComponent.js +31 -0
- package/lib/module/specs/RNMBXViewportNativeComponent.js.map +1 -0
- package/lib/module/utils/deprecation.js +3 -4
- package/lib/module/utils/deprecation.js.map +1 -1
- package/lib/module/utils/geoUtils.js +1 -3
- package/lib/module/utils/geoUtils.js.map +1 -1
- package/lib/module/utils/index.js +2 -4
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/web/components/Camera.js +1 -3
- package/lib/module/web/components/Camera.js.map +1 -1
- package/lib/typescript/src/Mapbox.d.ts +3 -0
- package/lib/typescript/src/Mapbox.d.ts.map +1 -1
- package/lib/typescript/src/components/Camera.d.ts +1 -2
- package/lib/typescript/src/components/Camera.d.ts.map +1 -1
- package/lib/typescript/src/components/CustomLocationProvider.d.ts +8 -0
- package/lib/typescript/src/components/CustomLocationProvider.d.ts.map +1 -0
- package/lib/typescript/src/components/NativeUserLocation.d.ts +40 -0
- package/lib/typescript/src/components/NativeUserLocation.d.ts.map +1 -1
- package/lib/typescript/src/components/UserLocation.d.ts +1 -0
- package/lib/typescript/src/components/UserLocation.d.ts.map +1 -1
- package/lib/typescript/src/components/Viewport.d.ts +68 -0
- package/lib/typescript/src/components/Viewport.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeRNMBXViewportModule.d.ts +36 -0
- package/lib/typescript/src/specs/NativeRNMBXViewportModule.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXCustomLocationProviderNativeComponent.d.ts +10 -0
- package/lib/typescript/src/specs/RNMBXCustomLocationProviderNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts +11 -2
- package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/specs/RNMBXViewportNativeComponent.d.ts +47 -0
- package/lib/typescript/src/specs/RNMBXViewportNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/types/Position.d.ts +3 -0
- package/lib/typescript/src/types/Position.d.ts.map +1 -1
- package/package.json +1 -1
- package/rnmapbox-maps.podspec +1 -1
- package/setup-jest.js +6 -0
- package/src/Mapbox.ts +3 -0
- package/src/components/Camera.tsx +1 -2
- package/src/components/CustomLocationProvider.tsx +14 -0
- package/src/components/NativeUserLocation.tsx +69 -2
- package/src/components/UserLocation.tsx +1 -0
- package/src/components/Viewport.tsx +250 -0
- package/src/specs/NativeRNMBXViewportModule.ts +41 -0
- package/src/specs/RNMBXCustomLocationProviderNativeComponent.ts +17 -0
- package/src/specs/RNMBXNativeUserLocationNativeComponent.ts +15 -2
- package/src/specs/RNMBXViewportNativeComponent.ts +102 -0
- package/src/types/Position.ts +3 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/AbstractEvent.java +0 -35
- package/android/src/main/java/com/rnmapbox/rnmbx/events/constants/EventKeys.java +0 -39
|
@@ -457,14 +457,9 @@ class RNMBXLocationModule: RCTEventEmitter, LocationProviderRNMBXDelegate {
|
|
|
457
457
|
|
|
458
458
|
static weak var shared : RNMBXLocationModule? = nil
|
|
459
459
|
|
|
460
|
-
var locationProviderRNMBX : LocationProviderRNMBX
|
|
461
460
|
var hasListener = false
|
|
462
461
|
|
|
463
|
-
var locationProvider : LocationProvider
|
|
464
|
-
get {
|
|
465
|
-
return locationProviderRNMBX
|
|
466
|
-
}
|
|
467
|
-
}
|
|
462
|
+
var locationProvider : LocationProvider
|
|
468
463
|
|
|
469
464
|
var locationEventThrottle : (
|
|
470
465
|
waitBetweenEvents: Double?,
|
|
@@ -475,9 +470,11 @@ class RNMBXLocationModule: RCTEventEmitter, LocationProviderRNMBXDelegate {
|
|
|
475
470
|
)
|
|
476
471
|
|
|
477
472
|
override init() {
|
|
478
|
-
|
|
473
|
+
locationProvider = LocationProviderRNMBX()
|
|
479
474
|
super.init()
|
|
480
|
-
|
|
475
|
+
if let locationProvider = locationProvider as? LocationProviderRNMBX {
|
|
476
|
+
locationProvider.delegate = self
|
|
477
|
+
}
|
|
481
478
|
RNMBXLocationModule.shared = self
|
|
482
479
|
}
|
|
483
480
|
|
|
@@ -497,12 +494,20 @@ class RNMBXLocationModule: RCTEventEmitter, LocationProviderRNMBXDelegate {
|
|
|
497
494
|
}
|
|
498
495
|
|
|
499
496
|
@objc func start(_ minDisplacement: CLLocationDistance) {
|
|
500
|
-
if minDisplacement >= 0.0 {
|
|
501
|
-
|
|
497
|
+
if minDisplacement >= 0.0 {
|
|
498
|
+
if let locationProvider = locationProvider as? LocationProviderRNMBX {
|
|
499
|
+
locationProvider.setDistanceFilter(minDisplacement)
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
if let locationProvider = locationProvider as? LocationProviderRNMBX {
|
|
503
|
+
locationProvider.start()
|
|
504
|
+
}
|
|
502
505
|
}
|
|
503
506
|
|
|
504
507
|
@objc func stop() {
|
|
505
|
-
|
|
508
|
+
if let locationProvider = locationProvider as? LocationProviderRNMBX {
|
|
509
|
+
locationProvider.stop()
|
|
510
|
+
}
|
|
506
511
|
}
|
|
507
512
|
|
|
508
513
|
@objc func getLastKnownLocation() -> RNMBXLocation? {
|
|
@@ -510,15 +515,21 @@ class RNMBXLocationModule: RCTEventEmitter, LocationProviderRNMBXDelegate {
|
|
|
510
515
|
}
|
|
511
516
|
|
|
512
517
|
@objc func setMinDisplacement(_ minDisplacement: CLLocationDistance) {
|
|
513
|
-
|
|
518
|
+
if let locationProvider = locationProvider as? LocationProviderRNMBX {
|
|
519
|
+
locationProvider.setDistanceFilter(minDisplacement)
|
|
520
|
+
}
|
|
514
521
|
}
|
|
515
522
|
|
|
516
523
|
@objc func setRequestsAlwaysUse(_ requestsAlwaysUse: Bool) {
|
|
517
|
-
|
|
524
|
+
if let locationProvider = locationProvider as? LocationProviderRNMBX {
|
|
525
|
+
locationProvider.setRequestsAlwaysUse(requestsAlwaysUse)
|
|
526
|
+
}
|
|
518
527
|
}
|
|
519
528
|
|
|
520
529
|
@objc func simulateHeading(_ changesPerSecond: NSNumber, increment: NSNumber) {
|
|
521
|
-
|
|
530
|
+
if let locationProvider = locationProvider as? LocationProviderRNMBX {
|
|
531
|
+
locationProvider.simulateHeading(changesPerSecond: changesPerSecond.intValue, increment: increment.doubleValue)
|
|
532
|
+
}
|
|
522
533
|
}
|
|
523
534
|
|
|
524
535
|
@objc
|
|
@@ -133,10 +133,9 @@ extension RNMBXAppleLocationProviderProxy {
|
|
|
133
133
|
class RNMBXLocationModule: RCTEventEmitter {
|
|
134
134
|
static weak var shared : RNMBXLocationModule? = nil
|
|
135
135
|
|
|
136
|
-
|
|
137
|
-
var
|
|
138
|
-
var
|
|
139
|
-
var locationHeadingObserver : AnyCancelable? = nil
|
|
136
|
+
var _locationProvider : LocationProvider & HeadingProvider = AppleLocationProvider()
|
|
137
|
+
var locationUpdateObserver : Cancelable? = nil
|
|
138
|
+
var locationHeadingObserver : Cancelable? = nil
|
|
140
139
|
|
|
141
140
|
var actLocation : RNMBXLocation = RNMBXLocation()
|
|
142
141
|
|
|
@@ -164,12 +163,10 @@ class RNMBXLocationModule: RCTEventEmitter {
|
|
|
164
163
|
}
|
|
165
164
|
|
|
166
165
|
@objc func start(_ minDisplacement: CLLocationDistance) {
|
|
167
|
-
|
|
168
|
-
newOptions.distanceFilter = minDisplacement
|
|
169
|
-
if minDisplacement >= 0.0 { _locationProvider.options = newOptions }
|
|
166
|
+
setMinDisplacement(minDisplacement)
|
|
170
167
|
|
|
171
168
|
locationUpdateObserver?.cancel()
|
|
172
|
-
locationUpdateObserver = _locationProvider
|
|
169
|
+
locationUpdateObserver = observeLocationUpdates(_locationProvider) { location in
|
|
173
170
|
guard self.hasListener else { return }
|
|
174
171
|
|
|
175
172
|
self.actLocation.location = location.last
|
|
@@ -178,7 +175,7 @@ class RNMBXLocationModule: RCTEventEmitter {
|
|
|
178
175
|
}
|
|
179
176
|
}
|
|
180
177
|
locationHeadingObserver?.cancel()
|
|
181
|
-
locationHeadingObserver = _locationProvider
|
|
178
|
+
locationHeadingObserver = observeHeadingUpdates(_locationProvider) { heading in
|
|
182
179
|
guard self.hasListener else { return }
|
|
183
180
|
|
|
184
181
|
self.actLocation.heading = heading
|
|
@@ -188,6 +185,64 @@ class RNMBXLocationModule: RCTEventEmitter {
|
|
|
188
185
|
}
|
|
189
186
|
}
|
|
190
187
|
|
|
188
|
+
class _LocationObserver : Cancelable, LocationObserver {
|
|
189
|
+
weak var locationProvider: LocationProvider?
|
|
190
|
+
var callback: (([Location]) -> Void)?
|
|
191
|
+
|
|
192
|
+
init(_ locationProvider: LocationProvider) {
|
|
193
|
+
self.locationProvider = locationProvider
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
func onLocationUpdateReceived(for locations: [Location]) {
|
|
197
|
+
callback?(locations)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
func cancel() {
|
|
201
|
+
locationProvider?.removeLocationObserver(for: self)
|
|
202
|
+
locationProvider = nil
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
deinit {
|
|
206
|
+
self.cancel()
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
class _HeadingObserver: Cancelable, HeadingObserver {
|
|
211
|
+
var headingProvider: HeadingProvider?
|
|
212
|
+
var callback: ((Heading) -> Void)?
|
|
213
|
+
|
|
214
|
+
init(_ headingProvider: HeadingProvider) {
|
|
215
|
+
self.headingProvider = headingProvider
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
func onHeadingUpdate(_ heading: MapboxMaps.Heading) {
|
|
219
|
+
callback?(heading)
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
func cancel() {
|
|
223
|
+
headingProvider?.remove(headingObserver: self)
|
|
224
|
+
headingProvider = nil
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
deinit {
|
|
228
|
+
self.cancel()
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
func observeLocationUpdates(_ locationProvider: LocationProvider, callback: @escaping ([Location]) -> Void) -> Cancelable {
|
|
233
|
+
let observer = _LocationObserver(locationProvider)
|
|
234
|
+
observer.callback = callback
|
|
235
|
+
locationProvider.addLocationObserver(for: observer)
|
|
236
|
+
return observer
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
func observeHeadingUpdates(_ headingProvider: HeadingProvider, callback: @escaping (Heading) -> Void) -> Cancelable {
|
|
240
|
+
let observer = _HeadingObserver(headingProvider)
|
|
241
|
+
observer.callback = callback
|
|
242
|
+
headingProvider.add(headingObserver: observer)
|
|
243
|
+
return observer
|
|
244
|
+
}
|
|
245
|
+
|
|
191
246
|
@objc func stop() {
|
|
192
247
|
locationUpdateObserver?.cancel()
|
|
193
248
|
locationUpdateObserver = nil
|
|
@@ -199,14 +254,17 @@ class RNMBXLocationModule: RCTEventEmitter {
|
|
|
199
254
|
@objc func getLastKnownLocation() -> RNMBXLocation? {
|
|
200
255
|
let last = RNMBXLocation()
|
|
201
256
|
last.heading = _locationProvider.latestHeading
|
|
202
|
-
last.location = _locationProvider.
|
|
257
|
+
last.location = _locationProvider.getLastObservedLocation()
|
|
203
258
|
return last
|
|
204
259
|
}
|
|
205
260
|
|
|
206
|
-
@objc
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
261
|
+
@objc
|
|
262
|
+
func setMinDisplacement(_ minDisplacement: CLLocationDistance) {
|
|
263
|
+
if let appleLocationProvider = _locationProvider as? AppleLocationProvider {
|
|
264
|
+
var newOptions = appleLocationProvider.options
|
|
265
|
+
newOptions.distanceFilter = minDisplacement
|
|
266
|
+
if minDisplacement >= 0.0 { appleLocationProvider.options = newOptions }
|
|
267
|
+
}
|
|
210
268
|
}
|
|
211
269
|
|
|
212
270
|
@objc
|
|
@@ -236,7 +294,16 @@ class RNMBXLocationModule: RCTEventEmitter {
|
|
|
236
294
|
get {
|
|
237
295
|
return _locationProvider
|
|
238
296
|
}
|
|
297
|
+
set(value) {
|
|
298
|
+
_locationProvider = value
|
|
299
|
+
}
|
|
239
300
|
}
|
|
301
|
+
|
|
302
|
+
func overrideLocationProvider(newProvider: LocationProvider & HeadingProvider) {
|
|
303
|
+
_locationProvider = newProvider
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
|
|
240
307
|
}
|
|
241
308
|
|
|
242
309
|
class EventThrottler {
|
|
@@ -115,6 +115,14 @@ func logged<T>(_ msg: String, info: (() -> String)? = nil, errorResult: (Error)
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
@objc(RNMBXLogger)
|
|
119
|
+
public class RNMBXLogger : NSObject {
|
|
120
|
+
@objc
|
|
121
|
+
static public func error(_ message: String) {
|
|
122
|
+
Logger.error(message)
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
118
126
|
@objc(RNMBXLogging)
|
|
119
127
|
class RNMBXLogging: RCTEventEmitter {
|
|
120
128
|
static var shared : RNMBXLogging? = nil
|
|
@@ -14,7 +14,6 @@ class FeatureEntry {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
|
|
18
17
|
#if RNMBX_11
|
|
19
18
|
extension QueriedRenderedFeature {
|
|
20
19
|
var feature : Feature { return queriedFeature.feature }
|
|
@@ -99,6 +98,8 @@ class RNMBXCameraChanged : RNMBXEvent, RCTEvent {
|
|
|
99
98
|
|
|
100
99
|
@objc(RNMBXMapView)
|
|
101
100
|
open class RNMBXMapView: UIView {
|
|
101
|
+
var imageManager: ImageManager = ImageManager()
|
|
102
|
+
|
|
102
103
|
var tapDelegate: IgnoreRNMBXMakerViewGestureDelegate? = nil
|
|
103
104
|
|
|
104
105
|
var eventDispatcher: RCTEventDispatcherProtocol
|
|
@@ -164,7 +165,7 @@ open class RNMBXMapView: UIView {
|
|
|
164
165
|
var mapboxMap: MapboxMap! {
|
|
165
166
|
get { _mapView.mapboxMap }
|
|
166
167
|
}
|
|
167
|
-
|
|
168
|
+
|
|
168
169
|
@objc public func addToMap(_ subview: UIView) {
|
|
169
170
|
withMapView {
|
|
170
171
|
if let mapComponent = subview as? RNMBXMapComponent {
|
|
@@ -575,7 +576,7 @@ open class RNMBXMapView: UIView {
|
|
|
575
576
|
mapView.ornaments.options.scaleBar.margins = margins
|
|
576
577
|
}
|
|
577
578
|
}
|
|
578
|
-
|
|
579
|
+
|
|
579
580
|
@objc override public func didSetProps(_ props: [String]) {
|
|
580
581
|
if (_mapView == nil) {
|
|
581
582
|
createMapView()
|
|
@@ -139,7 +139,6 @@ RCT_EXPORT_METHOD(querySourceFeatures:(nonnull NSNumber*)viewRef sourceId:(NSStr
|
|
|
139
139
|
} reject:reject methodName:@"querySourceFeatures"];
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
|
|
143
142
|
// Thanks to this guard, we won't compile this code when we build for the old architecture.
|
|
144
143
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
145
144
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
@@ -22,7 +22,6 @@ class RNMBXMarkerViewParentViewAnnotation : UIView {
|
|
|
22
22
|
if actSize.width != size.width || actSize.height != size.height {
|
|
23
23
|
let dx = ((size.width/2.0) - newOffset.dx) - ((actSize.width/2.0) - oldOffset.dx)
|
|
24
24
|
let dy = ((size.height/2.0) + newOffset.dy) - ((actSize.height/2.0) + oldOffset.dy)
|
|
25
|
-
print(" => size=\(size) actSize=\(actSize) newOffset=\(newOffset) oldOffset=\(oldOffset) dx=\(dx) dy=\(dy)")
|
|
26
25
|
var frame = self.frame
|
|
27
26
|
frame = frame.offsetBy(dx: -dx, dy: -dy)
|
|
28
27
|
frame.size = size
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import MapboxMaps
|
|
2
2
|
|
|
3
3
|
@objc
|
|
4
|
-
public class RNMBXNativeUserLocation
|
|
4
|
+
public class RNMBXNativeUserLocation: UIView, RNMBXMapComponent {
|
|
5
5
|
weak var map : RNMBXMapView! = nil
|
|
6
|
+
var imageManager: ImageManager? = nil
|
|
6
7
|
|
|
7
8
|
let locationLayerId = "location-layer"
|
|
8
9
|
|
|
@@ -10,39 +11,193 @@ public class RNMBXNativeUserLocation : UIView, RNMBXMapComponent {
|
|
|
10
11
|
|
|
11
12
|
@objc
|
|
12
13
|
public var iosShowsUserHeadingIndicator : Bool = false {
|
|
13
|
-
didSet {
|
|
14
|
-
|
|
14
|
+
didSet { _apply() }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
enum PuckImagePart: String {
|
|
18
|
+
case top
|
|
19
|
+
case bearing
|
|
20
|
+
case shadow
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var imageNames: [PuckImagePart: String] = [:]
|
|
24
|
+
var subscriptions: [PuckImagePart: ImageManager.Subscription] = [:]
|
|
25
|
+
var images: [PuckImagePart: UIImage] = [:]
|
|
26
|
+
|
|
27
|
+
@objc
|
|
28
|
+
public var topImage : String? = nil {
|
|
29
|
+
didSet { imageNameUpdated(.top, topImage) }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@objc
|
|
33
|
+
public var bearingImage : String? = nil {
|
|
34
|
+
didSet { imageNameUpdated(.bearing, bearingImage) }
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@objc
|
|
38
|
+
public var shadowImage : String? = nil {
|
|
39
|
+
didSet { imageNameUpdated(.shadow, shadowImage) }
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@objc
|
|
43
|
+
public var scale : Any? = nil
|
|
44
|
+
|
|
45
|
+
@objc
|
|
46
|
+
public var visible: Bool = false
|
|
47
|
+
|
|
48
|
+
var _puckBearing: PuckBearing? = nil
|
|
49
|
+
|
|
50
|
+
@objc
|
|
51
|
+
public var puckBearing: String? {
|
|
52
|
+
get {
|
|
53
|
+
switch (_puckBearing) {
|
|
54
|
+
case .heading:
|
|
55
|
+
return "heading"
|
|
56
|
+
case .course:
|
|
57
|
+
return "course"
|
|
58
|
+
case nil:
|
|
59
|
+
return nil
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
set(value) {
|
|
63
|
+
switch(value) {
|
|
64
|
+
case "heading":
|
|
65
|
+
_puckBearing = .heading
|
|
66
|
+
case "coures":
|
|
67
|
+
_puckBearing = .course
|
|
68
|
+
case nil:
|
|
69
|
+
_puckBearing = nil
|
|
70
|
+
default:
|
|
71
|
+
Logger.error("RNMBXNativeUserLocation puckBearing is uncrecognized: \(value)")
|
|
72
|
+
_puckBearing = nil
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@objc
|
|
78
|
+
public var puckBearingEnabled: Bool = false
|
|
79
|
+
|
|
80
|
+
@objc
|
|
81
|
+
override public func didSetProps(_ props: [String]) {
|
|
82
|
+
_apply()
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
func imageNameUpdated(_ image: PuckImagePart, _ name: String?) {
|
|
86
|
+
imageNames[image] = name
|
|
87
|
+
if let subscription = subscriptions[image] {
|
|
88
|
+
subscription.cancel()
|
|
89
|
+
subscriptions.removeValue(forKey: image)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
guard let name = name else {
|
|
93
|
+
imageUpdated(image, nil)
|
|
94
|
+
return
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if let imageManager = imageManager {
|
|
98
|
+
subscribe(imageManager, image, name)
|
|
15
99
|
}
|
|
16
100
|
}
|
|
17
101
|
|
|
18
|
-
func
|
|
19
|
-
let
|
|
20
|
-
|
|
21
|
-
if (iosShowsUserHeadingIndicator) {
|
|
22
|
-
#if RNMBX_11
|
|
23
|
-
location.options.puckBearing = .heading
|
|
24
|
-
#else
|
|
25
|
-
location.options.puckBearingSource = .heading
|
|
26
|
-
#endif
|
|
27
|
-
location.options.puckBearingEnabled = true
|
|
102
|
+
func imageUpdated(_ image: PuckImagePart, _ uiImage: UIImage?) {
|
|
103
|
+
if let uiImage = uiImage {
|
|
104
|
+
images[image] = uiImage
|
|
28
105
|
} else {
|
|
29
|
-
|
|
106
|
+
images.removeValue(forKey: image)
|
|
107
|
+
}
|
|
108
|
+
_apply()
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
func toDoubleValue(value: Any?, name: String) -> Value<Double>? {
|
|
112
|
+
if value == nil {
|
|
113
|
+
return nil
|
|
114
|
+
}
|
|
115
|
+
switch value {
|
|
116
|
+
case let value as NSNumber:
|
|
117
|
+
return .constant(value.doubleValue)
|
|
118
|
+
case let value as Int:
|
|
119
|
+
return .constant(Double(value))
|
|
120
|
+
case let value as Double:
|
|
121
|
+
return .constant(value)
|
|
122
|
+
case let value as Array<Any>:
|
|
123
|
+
do {
|
|
124
|
+
let data = try JSONSerialization.data(withJSONObject: value, options: .prettyPrinted)
|
|
125
|
+
let decodedExpression = try JSONDecoder().decode(Expression.self, from: data)
|
|
126
|
+
return Value.expression(decodedExpression)
|
|
127
|
+
} catch {
|
|
128
|
+
Logger.error("toDoubleValue: \(name): unable to parse as expression \(value) with type: \(type(of:value))")
|
|
129
|
+
return Value.constant(0.0)
|
|
130
|
+
}
|
|
131
|
+
default:
|
|
132
|
+
Logger.error("toDoubleValue: \(name): has unknown type: \(type(of:value)) \(value) ")
|
|
133
|
+
return .constant(1.0)
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
func _apply() {
|
|
138
|
+
guard let map = self.map else {
|
|
139
|
+
return
|
|
140
|
+
}
|
|
141
|
+
guard let mapView = map.mapView else {
|
|
142
|
+
Logger.error("RNMBXNativeUserLocation mapView was nil")
|
|
143
|
+
return
|
|
144
|
+
}
|
|
145
|
+
_apply(mapView)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
func _apply(_ mapView: MapView) {
|
|
149
|
+
guard let location = mapView.location else {
|
|
150
|
+
Logger.error("RNMBXNativeUserLocation location was nil")
|
|
151
|
+
return
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (visible) {
|
|
155
|
+
if images.isEmpty {
|
|
156
|
+
location.options.puckType = .puck2D(.makeDefault(showBearing: puckBearingEnabled))
|
|
157
|
+
} else {
|
|
158
|
+
location.options.puckType = .puck2D(
|
|
159
|
+
Puck2DConfiguration(
|
|
160
|
+
topImage: self.images[.top],
|
|
161
|
+
bearingImage: self.images[.bearing],
|
|
162
|
+
shadowImage: self.images[.shadow],
|
|
163
|
+
scale: toDoubleValue(value: scale, name: "scale")
|
|
164
|
+
)
|
|
165
|
+
)
|
|
166
|
+
}
|
|
167
|
+
} else {
|
|
168
|
+
let emptyImage = UIGraphicsImageRenderer(size: CGSize(width: 1, height: 1)).image { _ in }
|
|
169
|
+
location.options.puckType = .puck2D(
|
|
170
|
+
Puck2DConfiguration(
|
|
171
|
+
topImage: emptyImage,
|
|
172
|
+
bearingImage: emptyImage,
|
|
173
|
+
shadowImage: emptyImage,
|
|
174
|
+
scale: Value.constant(1.0)
|
|
175
|
+
)
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
location.options.puckBearingEnabled = puckBearingEnabled
|
|
181
|
+
if let puckBearing = _puckBearing {
|
|
182
|
+
location.options.puckBearing = puckBearing
|
|
30
183
|
}
|
|
31
184
|
}
|
|
32
185
|
|
|
33
186
|
func addToMap(_ map: RNMBXMapView, style: Style) {
|
|
34
187
|
self.map = map
|
|
35
|
-
|
|
188
|
+
|
|
189
|
+
_fetchImages(map)
|
|
190
|
+
_apply()
|
|
36
191
|
}
|
|
37
192
|
|
|
38
193
|
func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool {
|
|
39
|
-
let location = map.mapView.location
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
194
|
+
if let location = map.mapView.location {
|
|
195
|
+
location.options.puckType = nil
|
|
196
|
+
location.options.puckType = .none
|
|
197
|
+
} else {
|
|
198
|
+
Logger.error("RNMBXNativeUserLocation.removeFromMap: location is nil")
|
|
43
199
|
}
|
|
44
|
-
|
|
45
|
-
location.options.puckType = .none
|
|
200
|
+
removeSubscriptions()
|
|
46
201
|
self.map = nil
|
|
47
202
|
|
|
48
203
|
return true
|
|
@@ -52,3 +207,44 @@ public class RNMBXNativeUserLocation : UIView, RNMBXMapComponent {
|
|
|
52
207
|
return true
|
|
53
208
|
}
|
|
54
209
|
}
|
|
210
|
+
|
|
211
|
+
// MARK: fetch images and subscribe on updates
|
|
212
|
+
|
|
213
|
+
extension RNMBXNativeUserLocation {
|
|
214
|
+
func subscribe(_ imageManager: ImageManager, _ image: PuckImagePart, _ name: String) {
|
|
215
|
+
if let subscription = subscriptions[image] {
|
|
216
|
+
subscription.cancel()
|
|
217
|
+
subscriptions[image] = nil
|
|
218
|
+
Logger.error("RNMBXNativeUserLocation.subscribe: there is already a subscription for image: \(image)")
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
subscriptions[image] = imageManager.subscribe(name: name) { name, uiImage in
|
|
222
|
+
self.imageUpdated(image, uiImage)
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
func removeSubscriptions() {
|
|
227
|
+
self.subscriptions.forEach { (part,subscription) in
|
|
228
|
+
subscription.cancel()
|
|
229
|
+
}
|
|
230
|
+
self.subscriptions.removeAll()
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
func _fetchImages(_ map: RNMBXMapView) {
|
|
234
|
+
if let style = map.mapView?.mapboxMap?.style {
|
|
235
|
+
imageNames.forEach { (part, name) in
|
|
236
|
+
if style.imageExists(withId: name), let image = style.image(withId: name) {
|
|
237
|
+
images[part] = image
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
let imageManager = map.imageManager
|
|
243
|
+
removeSubscriptions()
|
|
244
|
+
self.imageManager = imageManager
|
|
245
|
+
imageNames.forEach { (part,name) in
|
|
246
|
+
subscribe(imageManager, part, name)
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#import "RNMBXNativeUserLocationComponentView.h"
|
|
4
4
|
#import "RNMBXFabricHelpers.h"
|
|
5
|
+
#import "RNMBXFabricPropConvert.h"
|
|
5
6
|
|
|
6
7
|
#import <React/RCTConversions.h>
|
|
7
8
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
@@ -53,13 +54,20 @@ using namespace facebook::react;
|
|
|
53
54
|
|
|
54
55
|
- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
|
|
55
56
|
{
|
|
56
|
-
const auto &
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
const auto &oldViewProps = static_cast<const RNMBXNativeUserLocationProps &>(*oldProps);
|
|
58
|
+
const auto &newViewProps = static_cast<const RNMBXNativeUserLocationProps &>(*props);
|
|
59
|
+
|
|
60
|
+
RNMBX_OPTIONAL_RPOP_NSString(puckBearing)
|
|
61
|
+
RNMBX_OPTIONAL_RPOP_BOOL(puckBearingEnabled)
|
|
62
|
+
RNMBX_OPTIONAL_RPOP_NSString(bearingImage)
|
|
63
|
+
RNMBX_OPTIONAL_RPOP_NSString(shadowImage)
|
|
64
|
+
RNMBX_OPTIONAL_RPOP_NSString(topImage)
|
|
65
|
+
RNMBX_OPTIONAL_RPOP_ExpressionDouble(scale)
|
|
66
|
+
RNMBX_RPOP_BOOL(visible)
|
|
67
|
+
|
|
62
68
|
[super updateProps:props oldProps:oldProps];
|
|
69
|
+
|
|
70
|
+
[_view didSetProps:@[]];
|
|
63
71
|
}
|
|
64
72
|
|
|
65
73
|
@end
|
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
@interface RCT_EXTERN_REMAP_MODULE(RNMBXNativeUserLocation, RNMBXNativeUserLocationViewManager, RCTViewManager)
|
|
5
5
|
|
|
6
6
|
RCT_EXPORT_VIEW_PROPERTY(iosShowsUserHeadingIndicator, BOOL);
|
|
7
|
+
RCT_EXPORT_VIEW_PROPERTY(topImage, NSString);
|
|
8
|
+
RCT_EXPORT_VIEW_PROPERTY(bearingImage, NSString);
|
|
9
|
+
RCT_EXPORT_VIEW_PROPERTY(shadowImage, NSString);
|
|
10
|
+
RCT_EXPORT_VIEW_PROPERTY(scale, NSArray);
|
|
11
|
+
RCT_EXPORT_VIEW_PROPERTY(visible, BOOL);
|
|
12
|
+
RCT_EXPORT_VIEW_PROPERTY(puckBearing, NSString);
|
|
13
|
+
RCT_EXPORT_VIEW_PROPERTY(puckBearingEnabled, BOOL);
|
|
7
14
|
|
|
8
15
|
@end
|
|
9
16
|
|
|
@@ -25,7 +25,7 @@ RCT_EXPORT_MODULE();
|
|
|
25
25
|
return RCTGetUIManagerQueue();
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
- (void)withPointAnnotation:(NSNumber*)viewRef block:(void (^)(RNMBXPointAnnotation *))block reject:(RCTPromiseRejectBlock)reject methodName:(NSString *)methodName
|
|
28
|
+
- (void)withPointAnnotation:(nonnull NSNumber*)viewRef block:(void (^)(RNMBXPointAnnotation *))block reject:(RCTPromiseRejectBlock)reject methodName:(NSString *)methodName
|
|
29
29
|
{
|
|
30
30
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
31
31
|
[self.viewRegistry_DEPRECATED addUIBlock:^(RCTViewRegistry *viewRegistry) {
|
|
@@ -46,7 +46,7 @@ RCT_EXPORT_MODULE();
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
RCT_EXPORT_METHOD(refresh:(NSNumber*)viewRef resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
49
|
+
RCT_EXPORT_METHOD(refresh:(nonnull NSNumber*)viewRef resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
50
50
|
{
|
|
51
51
|
[self withPointAnnotation:viewRef block:^(RNMBXPointAnnotation *view) {
|
|
52
52
|
[view refresh];
|
|
@@ -8,9 +8,8 @@ class RNMBXUtils {
|
|
|
8
8
|
RNMBXImageQueue.sharedInstance.addImage(url, scale: scale, bridge: bridge, handler: callback)
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
static func fetchImages(_ bridge: RCTBridge, style: Style, objects: [String:Any], forceUpdate: Bool, loaded: @escaping (
|
|
11
|
+
static func fetchImages(_ bridge: RCTBridge, style: Style, objects: [String:Any], forceUpdate: Bool, loaded: @escaping (String, UIImage) -> Void) {
|
|
12
12
|
guard !objects.isEmpty else {
|
|
13
|
-
callback()
|
|
14
13
|
return
|
|
15
14
|
}
|
|
16
15
|
|
|
@@ -19,9 +18,6 @@ class RNMBXUtils {
|
|
|
19
18
|
|
|
20
19
|
let imageLoadedBlock = { () in
|
|
21
20
|
imagesToLoad = imagesToLoad - 1;
|
|
22
|
-
if imagesToLoad == 0 {
|
|
23
|
-
callback()
|
|
24
|
-
}
|
|
25
21
|
}
|
|
26
22
|
|
|
27
23
|
for imageName in imageNames {
|
|
@@ -55,8 +51,7 @@ class RNMBXUtils {
|
|
|
55
51
|
if let image = image {
|
|
56
52
|
logged("RNMBXUtils.fetchImage-\(imageName)") {
|
|
57
53
|
try style.addImage(image, id: imageName, sdf:sdf, stretchX: stretchX, stretchY: stretchY, content: content)
|
|
58
|
-
loaded(imageName)
|
|
59
|
-
imageLoadedBlock()
|
|
54
|
+
loaded(imageName, image)
|
|
60
55
|
}
|
|
61
56
|
}
|
|
62
57
|
}
|