@rnmapbox/maps 10.2.8 → 10.2.9
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 +2 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXCustomLocationProvider.kt +7 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/events/MapSteadyEvent.kt +50 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/events/RNMBXCameraGestureObserver.kt +296 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/events/RNMBXCameraGestureObserverManager.kt +74 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerDelegate.java +39 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerInterface.java +18 -0
- package/ios/RNMBX/RNMBXCameraGestureObserver.swift +218 -0
- package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.h +15 -0
- package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.mm +119 -0
- package/ios/RNMBX/RNMBXCustomLocationProvider.swift +4 -0
- package/ios/RNMBX/RNMBXMapView.swift +50 -6
- package/ios/RNMBX/RNMBXRasterArraySourceComponentView.mm +4 -11
- package/ios/RNMBX/RNMBXRasterParticleLayerComponentView.mm +4 -15
- package/lib/module/Mapbox.native.js +2 -0
- package/lib/module/Mapbox.native.js.map +1 -1
- package/lib/module/components/CameraGestureObserver.js +17 -0
- package/lib/module/components/CameraGestureObserver.js.map +1 -0
- package/lib/module/specs/RNMBXCameraGestureObserverNativeComponent.ts +28 -0
- package/lib/typescript/src/Mapbox.native.d.ts +2 -0
- package/lib/typescript/src/Mapbox.native.d.ts.map +1 -1
- package/lib/typescript/src/components/CameraGestureObserver.d.ts +27 -0
- package/lib/typescript/src/components/CameraGestureObserver.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXCameraGestureObserverNativeComponent.d.ts +20 -0
- package/lib/typescript/src/specs/RNMBXCameraGestureObserverNativeComponent.d.ts.map +1 -0
- package/package.json +7 -2
- package/src/Mapbox.native.ts +2 -0
- package/src/components/CameraGestureObserver.tsx +37 -0
- package/src/specs/RNMBXCameraGestureObserverNativeComponent.ts +28 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import MapboxMaps
|
|
2
|
+
|
|
3
|
+
@objc(RNMBXCameraGestureObserver)
|
|
4
|
+
public class RNMBXCameraGestureObserver: RNMBXMapComponentBase, GestureManagerDelegate {
|
|
5
|
+
// MARK: Props from Fabric
|
|
6
|
+
@objc public var quietPeriodMs: NSNumber? = nil
|
|
7
|
+
@objc public var maxIntervalMs: NSNumber? = nil
|
|
8
|
+
|
|
9
|
+
// Event callback set from the ComponentView when JS subscribes
|
|
10
|
+
@objc public var onMapSteady: ((_ reason: String, _ idleDurationMs: NSNumber?, _ lastGestureType: String?, _ timestamp: NSNumber) -> Void)? = nil
|
|
11
|
+
|
|
12
|
+
private var hasOnMapSteady: Bool = false
|
|
13
|
+
|
|
14
|
+
@objc public func setHasOnMapSteady(_ hasOnMapSteady: Bool) {
|
|
15
|
+
self.hasOnMapSteady = hasOnMapSteady
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// MARK: Internal state
|
|
19
|
+
private var activeAnimations: Int = 0
|
|
20
|
+
private var isGestureActive: Bool = false
|
|
21
|
+
private var lastGestureType: String? = nil
|
|
22
|
+
// Time when the last transition (gesture without follow-up anim or camera animation) ended
|
|
23
|
+
private var lastTransitionEndedAtMs: Double? = nil
|
|
24
|
+
private var quietTimer: DispatchSourceTimer? = nil
|
|
25
|
+
private var timeoutTimer: DispatchSourceTimer? = nil
|
|
26
|
+
private var emittedForCurrentActivity: Bool = false
|
|
27
|
+
|
|
28
|
+
#if RNMBX_11
|
|
29
|
+
private var _cancelables = Set<AnyCancelable>()
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
private var quietMs: Double { (quietPeriodMs?.doubleValue) ?? 200.0 }
|
|
33
|
+
private var maxMs: Double? { maxIntervalMs?.doubleValue }
|
|
34
|
+
|
|
35
|
+
private func nowMs() -> Double { Date().timeIntervalSince1970 * 1000.0 }
|
|
36
|
+
private func timestamp() -> NSNumber { NSNumber(value: nowMs()) }
|
|
37
|
+
|
|
38
|
+
private var canEmitSteady: Bool {
|
|
39
|
+
activeAnimations == 0 && !isGestureActive && lastTransitionEndedAtMs != nil
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private func normalizeGestureType(_ gestureType: MapboxMaps.GestureType) -> String {
|
|
43
|
+
switch gestureType {
|
|
44
|
+
case .pan: return "pan"
|
|
45
|
+
case .pinch: return "pinch"
|
|
46
|
+
#if RNMBX_11
|
|
47
|
+
case .rotation: return "rotate"
|
|
48
|
+
#endif
|
|
49
|
+
case .pitch: return "pitch"
|
|
50
|
+
default: return "\(gestureType)"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
private func debugLog(_ message: String) {
|
|
55
|
+
#if DEBUG
|
|
56
|
+
print("[RNMBXCameraGestureObserver] \(message); activeAnimations=\(activeAnimations) isGestureActive=\(isGestureActive) lastTransitionEnd=\(lastTransitionEndedAtMs ?? -1)")
|
|
57
|
+
#endif
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private func scheduleTimer(
|
|
61
|
+
_ timer: inout DispatchSourceTimer?,
|
|
62
|
+
delay: Double,
|
|
63
|
+
handler: @escaping @convention(block) () -> Void
|
|
64
|
+
) {
|
|
65
|
+
timer?.cancel()
|
|
66
|
+
guard delay > 0 else {
|
|
67
|
+
timer = nil
|
|
68
|
+
return
|
|
69
|
+
}
|
|
70
|
+
let newTimer = DispatchSource.makeTimerSource(queue: .main)
|
|
71
|
+
newTimer.schedule(deadline: .now() + .milliseconds(Int(delay)))
|
|
72
|
+
newTimer.setEventHandler(handler: handler)
|
|
73
|
+
newTimer.resume()
|
|
74
|
+
timer = newTimer
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private func cancelQuietTimer() {
|
|
78
|
+
quietTimer?.cancel()
|
|
79
|
+
quietTimer = nil
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private func cancelTimeoutTimer() {
|
|
83
|
+
timeoutTimer?.cancel()
|
|
84
|
+
timeoutTimer = nil
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private func scheduleQuietCheck() {
|
|
88
|
+
let delay = quietMs
|
|
89
|
+
guard delay > 0 else {
|
|
90
|
+
cancelQuietTimer()
|
|
91
|
+
maybeEmitSteady()
|
|
92
|
+
return
|
|
93
|
+
}
|
|
94
|
+
debugLog("scheduleQuietCheck in \(Int(delay))ms")
|
|
95
|
+
scheduleTimer(&quietTimer, delay: delay) { [weak self] in
|
|
96
|
+
self?.debugLog("quiet timer fired")
|
|
97
|
+
self?.maybeEmitSteady()
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
private func scheduleTimeout() {
|
|
102
|
+
guard let delay = maxMs else { return }
|
|
103
|
+
scheduleTimer(&timeoutTimer, delay: delay) { [weak self] in
|
|
104
|
+
self?.emitTimeout()
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private func markActivity(gestureType: String? = nil) {
|
|
109
|
+
if let gestureType = gestureType { lastGestureType = gestureType }
|
|
110
|
+
emittedForCurrentActivity = false
|
|
111
|
+
scheduleQuietCheck()
|
|
112
|
+
scheduleTimeout()
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
private func maybeEmitSteady() {
|
|
116
|
+
guard canEmitSteady else { return }
|
|
117
|
+
guard let lastEnd = lastTransitionEndedAtMs else { return }
|
|
118
|
+
let sinceEnd = nowMs() - lastEnd
|
|
119
|
+
guard sinceEnd >= quietMs else { return }
|
|
120
|
+
emitSteady(idleDurationMs: sinceEnd)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private func emitSteady(idleDurationMs: Double) {
|
|
124
|
+
if emittedForCurrentActivity { return }
|
|
125
|
+
cancelQuietTimer()
|
|
126
|
+
cancelTimeoutTimer()
|
|
127
|
+
let idleNs = NSNumber(value: idleDurationMs)
|
|
128
|
+
let gesture = lastGestureType
|
|
129
|
+
debugLog("EMIT steady idleDurationMs=\(idleDurationMs) lastGestureType=\(gesture ?? "nil")")
|
|
130
|
+
onMapSteady?("steady", idleNs, gesture, timestamp())
|
|
131
|
+
lastGestureType = nil
|
|
132
|
+
emittedForCurrentActivity = true
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
private func emitTimeout() {
|
|
136
|
+
cancelQuietTimer()
|
|
137
|
+
debugLog("EMIT timeout lastGestureType=\(lastGestureType ?? "nil")")
|
|
138
|
+
onMapSteady?("timeout", nil, lastGestureType, timestamp())
|
|
139
|
+
scheduleTimeout()
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// MARK: RNMBXMapComponent
|
|
143
|
+
public override func addToMap(_ map: RNMBXMapView, style: Style) {
|
|
144
|
+
super.addToMap(map, style: style)
|
|
145
|
+
|
|
146
|
+
guard hasOnMapSteady else { return }
|
|
147
|
+
|
|
148
|
+
#if RNMBX_11
|
|
149
|
+
let camera = map.mapView.camera!
|
|
150
|
+
|
|
151
|
+
// Camera animator lifecycle
|
|
152
|
+
_cancelables.insert(camera.onCameraAnimatorStarted.observe { [weak self] _ in
|
|
153
|
+
guard let self = self else { return }
|
|
154
|
+
self.activeAnimations += 1
|
|
155
|
+
self.lastTransitionEndedAtMs = nil
|
|
156
|
+
self.markActivity()
|
|
157
|
+
self.debugLog("camera animator started")
|
|
158
|
+
})
|
|
159
|
+
let handleAnimatorEnd: (CameraAnimator) -> Void = { [weak self] _ in
|
|
160
|
+
guard let self = self else { return }
|
|
161
|
+
self.activeAnimations -= 1
|
|
162
|
+
#if DEBUG
|
|
163
|
+
if self.activeAnimations < 0 {
|
|
164
|
+
print("[RNMBXCameraGestureObserver] WARNING: activeAnimations went negative, resetting to 0")
|
|
165
|
+
self.activeAnimations = 0
|
|
166
|
+
}
|
|
167
|
+
#endif
|
|
168
|
+
self.lastTransitionEndedAtMs = self.nowMs()
|
|
169
|
+
self.scheduleQuietCheck()
|
|
170
|
+
self.debugLog("camera animator ended")
|
|
171
|
+
}
|
|
172
|
+
_cancelables.insert(camera.onCameraAnimatorFinished.observe(handleAnimatorEnd))
|
|
173
|
+
_cancelables.insert(camera.onCameraAnimatorCancelled.observe(handleAnimatorEnd))
|
|
174
|
+
|
|
175
|
+
// Subscribe to gestures as a secondary observer (multicast from RNMBXMapView)
|
|
176
|
+
map.addGestureDelegate(self)
|
|
177
|
+
debugLog("addToMap and subscribed to gestures")
|
|
178
|
+
#endif
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
public override func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool {
|
|
182
|
+
#if RNMBX_11
|
|
183
|
+
_cancelables.forEach { $0.cancel() }
|
|
184
|
+
_cancelables.removeAll()
|
|
185
|
+
#endif
|
|
186
|
+
map.removeGestureDelegate(self)
|
|
187
|
+
debugLog("removeFromMap and unsubscribed from gestures")
|
|
188
|
+
cancelQuietTimer()
|
|
189
|
+
cancelTimeoutTimer()
|
|
190
|
+
return super.removeFromMap(map, reason: reason)
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// MARK: GestureManagerDelegate
|
|
194
|
+
public func gestureManager(_ gestureManager: MapboxMaps.GestureManager, didBegin gestureType: MapboxMaps.GestureType) {
|
|
195
|
+
isGestureActive = true
|
|
196
|
+
lastGestureType = normalizeGestureType(gestureType)
|
|
197
|
+
lastTransitionEndedAtMs = nil
|
|
198
|
+
markActivity(gestureType: lastGestureType)
|
|
199
|
+
debugLog("gesture didBegin type=\(lastGestureType ?? "")")
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
public func gestureManager(_ gestureManager: MapboxMaps.GestureManager, didEnd gestureType: MapboxMaps.GestureType, willAnimate: Bool) {
|
|
203
|
+
lastGestureType = normalizeGestureType(gestureType)
|
|
204
|
+
if !willAnimate {
|
|
205
|
+
isGestureActive = false
|
|
206
|
+
lastTransitionEndedAtMs = nowMs()
|
|
207
|
+
}
|
|
208
|
+
markActivity(gestureType: lastGestureType)
|
|
209
|
+
debugLog("gesture didEnd type=\(lastGestureType ?? "") willAnimate=\(willAnimate) -> isGestureActive=\(isGestureActive)")
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
public func gestureManager(_ gestureManager: MapboxMaps.GestureManager, didEndAnimatingFor gestureType: MapboxMaps.GestureType) {
|
|
213
|
+
isGestureActive = false
|
|
214
|
+
lastTransitionEndedAtMs = nowMs()
|
|
215
|
+
scheduleQuietCheck()
|
|
216
|
+
debugLog("gesture didEndAnimatingFor type=\(gestureType)")
|
|
217
|
+
}
|
|
218
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
#import <React/RCTUIManager.h>
|
|
6
|
+
#import <React/RCTViewComponentView.h>
|
|
7
|
+
|
|
8
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
9
|
+
|
|
10
|
+
@interface RNMBXCameraGestureObserverComponentView : RCTViewComponentView
|
|
11
|
+
@end
|
|
12
|
+
|
|
13
|
+
NS_ASSUME_NONNULL_END
|
|
14
|
+
|
|
15
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import "RNMBXCameraGestureObserverComponentView.h"
|
|
4
|
+
#import "RNMBXFabricHelpers.h"
|
|
5
|
+
|
|
6
|
+
#import <React/RCTConversions.h>
|
|
7
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
8
|
+
#import <React/RCTBridge+Private.h>
|
|
9
|
+
|
|
10
|
+
#import <react/renderer/components/rnmapbox_maps_specs/ComponentDescriptors.h>
|
|
11
|
+
#import <react/renderer/components/rnmapbox_maps_specs/EventEmitters.h>
|
|
12
|
+
#import <react/renderer/components/rnmapbox_maps_specs/Props.h>
|
|
13
|
+
#import <react/renderer/components/rnmapbox_maps_specs/RCTComponentViewHelpers.h>
|
|
14
|
+
|
|
15
|
+
#import "RNMBXFabricPropConvert.h"
|
|
16
|
+
|
|
17
|
+
using namespace facebook::react;
|
|
18
|
+
|
|
19
|
+
@interface RNMBXCameraGestureObserverComponentView () <RCTRNMBXCameraGestureObserverViewProtocol>
|
|
20
|
+
@end
|
|
21
|
+
|
|
22
|
+
@implementation RNMBXCameraGestureObserverComponentView {
|
|
23
|
+
RNMBXCameraGestureObserver *_view;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
+ (void)load
|
|
27
|
+
{
|
|
28
|
+
[super load];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
32
|
+
{
|
|
33
|
+
if (self = [super initWithFrame:frame]) {
|
|
34
|
+
static const auto defaultProps = std::make_shared<const RNMBXCameraGestureObserverProps>();
|
|
35
|
+
_props = defaultProps;
|
|
36
|
+
[self prepareView];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return self;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
- (void)prepareView
|
|
43
|
+
{
|
|
44
|
+
_view = [[RNMBXCameraGestureObserver alloc] init];
|
|
45
|
+
self.contentView = _view;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
- (void)setHasOnMapSteady:(BOOL)hasOnMapSteady {
|
|
49
|
+
if (hasOnMapSteady) {
|
|
50
|
+
#if DEBUG
|
|
51
|
+
NSLog(@"[RNMBXCameraGestureObserver] setHasOnMapSteady=YES");
|
|
52
|
+
#endif
|
|
53
|
+
__weak __typeof__(self) weakSelf = self;
|
|
54
|
+
[_view setOnMapSteady:^(NSString* reason, NSNumber* _Nullable idleDurationMs, NSString* _Nullable lastGestureType, NSNumber* timestamp){
|
|
55
|
+
__typeof__(self) strongSelf = weakSelf;
|
|
56
|
+
if (strongSelf != nullptr && strongSelf->_eventEmitter != nullptr) {
|
|
57
|
+
using EventEmitterT = facebook::react::RNMBXCameraGestureObserverEventEmitter;
|
|
58
|
+
EventEmitterT::OnMapSteadyReason reasonEnum = EventEmitterT::OnMapSteadyReason::Steady;
|
|
59
|
+
if ([reason isEqualToString:@"timeout"]) {
|
|
60
|
+
reasonEnum = EventEmitterT::OnMapSteadyReason::Timeout;
|
|
61
|
+
} else {
|
|
62
|
+
reasonEnum = EventEmitterT::OnMapSteadyReason::Steady;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
double ts = [timestamp doubleValue];
|
|
66
|
+
double idle = idleDurationMs != nil ? [idleDurationMs doubleValue] : 0.0;
|
|
67
|
+
std::string lastGesture = lastGestureType != nil ? std::string([lastGestureType UTF8String]) : std::string("");
|
|
68
|
+
#if DEBUG
|
|
69
|
+
NSLog(@"[RNMBXCameraGestureObserver] emitting onMapSteady reason=%s idle=%.2f lastGesture=%s ts=%.0f",
|
|
70
|
+
EventEmitterT::toString(reasonEnum), idle, lastGesture.c_str(), ts);
|
|
71
|
+
#endif
|
|
72
|
+
std::dynamic_pointer_cast<const EventEmitterT>(strongSelf->_eventEmitter)->onMapSteady({reasonEnum, idle, lastGesture, ts});
|
|
73
|
+
}
|
|
74
|
+
}];
|
|
75
|
+
} else {
|
|
76
|
+
#if DEBUG
|
|
77
|
+
NSLog(@"[RNMBXCameraGestureObserver] setHasOnMapSteady=NO");
|
|
78
|
+
#endif
|
|
79
|
+
[_view setHasOnMapSteady:NO];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
#pragma mark - RCTComponentViewProtocol
|
|
84
|
+
|
|
85
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
86
|
+
{
|
|
87
|
+
return concreteComponentDescriptorProvider<RNMBXCameraGestureObserverComponentDescriptor>();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
|
|
91
|
+
{
|
|
92
|
+
const auto &oldViewProps = static_cast<const RNMBXCameraGestureObserverProps &>(*oldProps);
|
|
93
|
+
const auto &newViewProps = static_cast<const RNMBXCameraGestureObserverProps &>(*props);
|
|
94
|
+
|
|
95
|
+
RNMBX_OPTIONAL_PROP_NSNumber(quietPeriodMs);
|
|
96
|
+
RNMBX_OPTIONAL_PROP_NSNumber(maxIntervalMs);
|
|
97
|
+
RNMBX_OPTIONAL_PROP_BOOL(hasOnMapSteady);
|
|
98
|
+
|
|
99
|
+
if (!oldProps.get() || oldViewProps.hasOnMapSteady != newViewProps.hasOnMapSteady) {
|
|
100
|
+
[self setHasOnMapSteady:newViewProps.hasOnMapSteady.asBool()];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
[super updateProps:props oldProps:oldProps];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
- (void)prepareForRecycle
|
|
107
|
+
{
|
|
108
|
+
[super prepareForRecycle];
|
|
109
|
+
[self prepareView];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@end
|
|
113
|
+
|
|
114
|
+
Class<RCTComponentViewProtocol> RNMBXCameraGestureObserverCls(void)
|
|
115
|
+
{
|
|
116
|
+
return RNMBXCameraGestureObserverComponentView.class;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -77,6 +77,10 @@ extension RNMBXCustomLocationProvider {
|
|
|
77
77
|
if (customLocationProvider == nil) {
|
|
78
78
|
let customLocationProvider = CustomLocationProvider()
|
|
79
79
|
self.customLocationProvider = customLocationProvider
|
|
80
|
+
applyHeading()
|
|
81
|
+
if (!coordinate.isEmpty) {
|
|
82
|
+
applyCoordinate()
|
|
83
|
+
}
|
|
80
84
|
|
|
81
85
|
if let locationModule = RNMBXLocationModule.shared {
|
|
82
86
|
locationModule.locationProvider = customLocationProvider
|
|
@@ -155,7 +155,33 @@ class RNMBXCameraChanged : RNMBXEvent, RCTEvent {
|
|
|
155
155
|
|
|
156
156
|
@objc(RNMBXMapView)
|
|
157
157
|
open class RNMBXMapView: UIView, RCTInvalidating {
|
|
158
|
-
|
|
158
|
+
|
|
159
|
+
// Backward compatibility single-delegate property; internally we maintain a weak set.
|
|
160
|
+
public weak var rnmbxGestures: GestureManagerDelegate? {
|
|
161
|
+
didSet {
|
|
162
|
+
if let old = oldValue { _gestureDelegates.remove(old as AnyObject) }
|
|
163
|
+
if let d = rnmbxGestures { _gestureDelegates.add(d as AnyObject) }
|
|
164
|
+
#if DEBUG
|
|
165
|
+
print("[RNMBXMapView] rnmbxGestures didSet; delegates=\(_gestureDelegates.allObjects.count)")
|
|
166
|
+
#endif
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
private var _gestureDelegates: NSHashTable<AnyObject> = NSHashTable.weakObjects()
|
|
170
|
+
|
|
171
|
+
public func addGestureDelegate(_ delegate: GestureManagerDelegate) {
|
|
172
|
+
_gestureDelegates.add(delegate as AnyObject)
|
|
173
|
+
#if DEBUG
|
|
174
|
+
print("[RNMBXMapView] addGestureDelegate; delegates=\(_gestureDelegates.allObjects.count)")
|
|
175
|
+
#endif
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
public func removeGestureDelegate(_ delegate: GestureManagerDelegate) {
|
|
179
|
+
_gestureDelegates.remove(delegate as AnyObject)
|
|
180
|
+
#if DEBUG
|
|
181
|
+
print("[RNMBXMapView] removeGestureDelegate; delegates=\(_gestureDelegates.allObjects.count)")
|
|
182
|
+
#endif
|
|
183
|
+
}
|
|
184
|
+
|
|
159
185
|
public func invalidate() {
|
|
160
186
|
self.removeAllFeaturesFromMap(reason: .ViewRemoval)
|
|
161
187
|
|
|
@@ -163,14 +189,14 @@ open class RNMBXMapView: UIView, RCTInvalidating {
|
|
|
163
189
|
cancelables.forEach { $0.cancel() }
|
|
164
190
|
cancelables.removeAll()
|
|
165
191
|
#endif
|
|
166
|
-
|
|
192
|
+
|
|
167
193
|
_mapView.gestures.delegate = nil
|
|
168
194
|
_mapView.removeFromSuperview()
|
|
169
195
|
_mapView = nil
|
|
170
|
-
|
|
196
|
+
|
|
171
197
|
self.removeFromSuperview()
|
|
172
198
|
}
|
|
173
|
-
|
|
199
|
+
|
|
174
200
|
var imageManager: ImageManager = ImageManager()
|
|
175
201
|
|
|
176
202
|
var tapDelegate: IgnoreRNMBXMakerViewGestureDelegate? = nil
|
|
@@ -1469,17 +1495,35 @@ extension RNMBXMapView: GestureManagerDelegate {
|
|
|
1469
1495
|
}
|
|
1470
1496
|
|
|
1471
1497
|
public func gestureManager(_ gestureManager: GestureManager, didBegin gestureType: GestureType) {
|
|
1498
|
+
#if DEBUG
|
|
1499
|
+
print("[RNMBXMapView] gesture didBegin type=\(gestureType) delegates=\(_gestureDelegates.allObjects.count)")
|
|
1500
|
+
#endif
|
|
1501
|
+
for case let d as GestureManagerDelegate in _gestureDelegates.allObjects {
|
|
1502
|
+
d.gestureManager(gestureManager, didBegin: gestureType)
|
|
1503
|
+
}
|
|
1472
1504
|
isGestureActive = true
|
|
1473
1505
|
}
|
|
1474
1506
|
|
|
1475
1507
|
public func gestureManager(_ gestureManager: GestureManager, didEnd gestureType: GestureType, willAnimate: Bool) {
|
|
1508
|
+
#if DEBUG
|
|
1509
|
+
print("[RNMBXMapView] gesture didEnd type=\(gestureType) willAnimate=\(willAnimate) delegates=\(_gestureDelegates.allObjects.count)")
|
|
1510
|
+
#endif
|
|
1511
|
+
for case let d as GestureManagerDelegate in _gestureDelegates.allObjects {
|
|
1512
|
+
d.gestureManager(gestureManager, didEnd: gestureType, willAnimate: willAnimate)
|
|
1513
|
+
}
|
|
1476
1514
|
if !willAnimate {
|
|
1477
|
-
isGestureActive = false
|
|
1515
|
+
isGestureActive = false
|
|
1478
1516
|
}
|
|
1479
1517
|
}
|
|
1480
1518
|
|
|
1481
1519
|
public func gestureManager(_ gestureManager: GestureManager, didEndAnimatingFor gestureType: GestureType) {
|
|
1482
|
-
|
|
1520
|
+
#if DEBUG
|
|
1521
|
+
print("[RNMBXMapView] gesture didEndAnimatingFor type=\(gestureType) delegates=\(_gestureDelegates.allObjects.count)")
|
|
1522
|
+
#endif
|
|
1523
|
+
for case let d as GestureManagerDelegate in _gestureDelegates.allObjects {
|
|
1524
|
+
d.gestureManager(gestureManager, didEndAnimatingFor: gestureType)
|
|
1525
|
+
}
|
|
1526
|
+
isGestureActive = false
|
|
1483
1527
|
}
|
|
1484
1528
|
}
|
|
1485
1529
|
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
|
|
14
14
|
using namespace facebook::react;
|
|
15
15
|
|
|
16
|
-
#if RNMBX_11
|
|
17
|
-
|
|
18
16
|
@interface RNMBXRasterArraySourceComponentView () <RCTRNMBXRasterArraySourceViewProtocol>
|
|
19
17
|
@end
|
|
20
18
|
|
|
19
|
+
#if RNMBX_11
|
|
20
|
+
|
|
21
21
|
@implementation RNMBXRasterArraySourceComponentView {
|
|
22
22
|
RNMBXRasterArraySource *_view;
|
|
23
23
|
}
|
|
@@ -117,19 +117,11 @@ using namespace facebook::react;
|
|
|
117
117
|
|
|
118
118
|
@end
|
|
119
119
|
|
|
120
|
-
Class<RCTComponentViewProtocol> RNMBXRasterArraySourceCls(void)
|
|
121
|
-
{
|
|
122
|
-
return RNMBXRasterArraySourceComponentView.class;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
120
|
#else // !RNMBX_11
|
|
126
121
|
|
|
127
122
|
// RasterArraySource is only available in Mapbox v11+
|
|
128
123
|
// Provide a stub implementation for v10 builds
|
|
129
124
|
|
|
130
|
-
@interface RNMBXRasterArraySourceComponentView () <RCTRNMBXRasterArraySourceViewProtocol>
|
|
131
|
-
@end
|
|
132
|
-
|
|
133
125
|
@implementation RNMBXRasterArraySourceComponentView
|
|
134
126
|
|
|
135
127
|
+ (void)load
|
|
@@ -158,11 +150,12 @@ Class<RCTComponentViewProtocol> RNMBXRasterArraySourceCls(void)
|
|
|
158
150
|
|
|
159
151
|
@end
|
|
160
152
|
|
|
153
|
+
#endif // RNMBX_11
|
|
154
|
+
|
|
161
155
|
Class<RCTComponentViewProtocol> RNMBXRasterArraySourceCls(void)
|
|
162
156
|
{
|
|
163
157
|
return RNMBXRasterArraySourceComponentView.class;
|
|
164
158
|
}
|
|
165
159
|
|
|
166
|
-
#endif // RNMBX_11
|
|
167
160
|
|
|
168
161
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
|
|
15
15
|
using namespace facebook::react;
|
|
16
16
|
|
|
17
|
-
#if RNMBX_11
|
|
18
|
-
|
|
19
17
|
@interface RNMBXRasterParticleLayerComponentView () <RCTRNMBXRasterParticleLayerViewProtocol>
|
|
20
18
|
@end
|
|
21
19
|
|
|
20
|
+
#if RNMBX_11
|
|
21
|
+
|
|
22
22
|
@implementation RNMBXRasterParticleLayerComponentView {
|
|
23
23
|
RNMBXRasterParticleLayer *_view;
|
|
24
24
|
}
|
|
@@ -70,19 +70,8 @@ using namespace facebook::react;
|
|
|
70
70
|
|
|
71
71
|
@end
|
|
72
72
|
|
|
73
|
-
Class<RCTComponentViewProtocol> RNMBXRasterParticleLayerCls(void)
|
|
74
|
-
{
|
|
75
|
-
return RNMBXRasterParticleLayerComponentView.class;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
73
|
#else // !RNMBX_11
|
|
79
74
|
|
|
80
|
-
// RasterParticleLayer is only available in Mapbox v11+
|
|
81
|
-
// Provide a stub implementation for v10 builds
|
|
82
|
-
|
|
83
|
-
@interface RNMBXRasterParticleLayerComponentView () <RCTRNMBXRasterParticleLayerViewProtocol>
|
|
84
|
-
@end
|
|
85
|
-
|
|
86
75
|
@implementation RNMBXRasterParticleLayerComponentView
|
|
87
76
|
|
|
88
77
|
+ (void)load
|
|
@@ -111,11 +100,11 @@ Class<RCTComponentViewProtocol> RNMBXRasterParticleLayerCls(void)
|
|
|
111
100
|
|
|
112
101
|
@end
|
|
113
102
|
|
|
103
|
+
#endif // RNMBX_11
|
|
104
|
+
|
|
114
105
|
Class<RCTComponentViewProtocol> RNMBXRasterParticleLayerCls(void)
|
|
115
106
|
{
|
|
116
107
|
return RNMBXRasterParticleLayerComponentView.class;
|
|
117
108
|
}
|
|
118
109
|
|
|
119
|
-
#endif // RNMBX_11
|
|
120
|
-
|
|
121
110
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -34,6 +34,8 @@ export { default as RasterParticleLayer } from "./components/RasterParticleLayer
|
|
|
34
34
|
export { default as BackgroundLayer } from "./components/BackgroundLayer.js";
|
|
35
35
|
export { default as CustomLocationProvider } from "./components/CustomLocationProvider.js";
|
|
36
36
|
export { Terrain } from "./components/Terrain.js";
|
|
37
|
+
export { default as CameraGestureObserver } from "./components/CameraGestureObserver.js";
|
|
38
|
+
export { OnMapSteadyEvent } from './specs/RNMBXCameraGestureObserverNativeComponent';
|
|
37
39
|
export { default as locationManager } from "./modules/location/locationManager.js";
|
|
38
40
|
export { default as offlineManager, OfflineCreatePackOptions } from "./modules/offline/offlineManager.js";
|
|
39
41
|
export { default as offlineManagerLegacy } from "./modules/offline/offlineManagerLegacy.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Camera","UserTrackingMode","Atmosphere","default","MapView","Light","PointAnnotation","Annotation","Callout","StyleImport","UserLocation","UserLocationRenderMode","LocationPuck","VectorSource","ShapeSource","RasterSource","RasterArraySource","RasterDemSource","ImageSource","Viewport","Models","Images","Image","FillLayer","FillExtrusionLayer","HeatmapLayer","LineLayer","CircleLayer","SkyLayer","ModelLayer","SymbolLayer","RasterLayer","RasterParticleLayer","BackgroundLayer","CustomLocationProvider","Terrain","locationManager","offlineManager","OfflineCreatePackOptions","offlineManagerLegacy","TileStore","snapshotManager","MarkerView","Animated","AnimatedCoordinatesArray","AnimatedExtractCoordinateFromArray","AnimatedPoint","AnimatedRouteCoordinatesArray","AnimatedShape","Style","Logger","requestAndroidLocationPermissions","getAnnotationsLayerID","deprecatedClass","MovePointShapeAnimator","ChangeLineOffsetsShapeAnimator","AnimatedMapPoint","NativeUserLocation","StyleURL","UserTrackingModes","__experimental"],"sourceRoot":"../../src","sources":["Mapbox.native.ts"],"mappings":";;AAAA,cAAc,kBAAe;AAE7B,SACEA,MAAM,EACNC,gBAAgB,QAKX,wBAAqB;AAC5B,SAASC,UAAU,QAAQ,4BAAyB;AACpD,SAASC,OAAO,IAAIC,OAAO,QAAuB,yBAAsB;AACxE,SAASD,OAAO,IAAIE,KAAK,QAAQ,uBAAoB;AACrD,SAASF,OAAO,IAAIG,eAAe,QAAQ,iCAA8B;AACzE,SAASH,OAAO,IAAII,UAAU,QAAQ,4BAAyB;AAC/D,SAASJ,OAAO,IAAIK,OAAO,QAAQ,yBAAsB;AACzD,SAASL,OAAO,IAAIM,WAAW,QAAQ,6BAA0B;AACjE,SACEN,OAAO,IAAIO,YAAY,EACvBC,sBAAsB,QACjB,8BAA2B;AAClC,SAASR,OAAO,IAAIS,YAAY,QAAQ,8BAA2B;AACnE,SAAST,OAAO,IAAIU,YAAY,QAAQ,8BAA2B;AACnE,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASX,OAAO,IAAIY,YAAY,QAAQ,8BAA2B;AACnE,SAASZ,OAAO,IAAIa,iBAAiB,QAAQ,mCAAgC;AAC7E,SAASb,OAAO,IAAIc,eAAe,QAAQ,iCAA8B;AACzE,SAASd,OAAO,IAAIe,WAAW,QAAQ,6BAA0B;AACjE,SAASC,QAAQ,QAAQ,0BAAuB;AAChD,SAAShB,OAAO,IAAIiB,MAAM,QAAQ,wBAAqB;AACvD,SAASjB,OAAO,IAAIkB,MAAM,QAAyB,wBAAqB;AACxE,SAASlB,OAAO,IAAImB,KAAK,QAAQ,uBAAoB;AACrD,SAASnB,OAAO,IAAIoB,SAAS,QAAQ,2BAAwB;AAC7D,SAASpB,OAAO,IAAIqB,kBAAkB,QAAQ,oCAAiC;AAC/E,SAASrB,OAAO,IAAIsB,YAAY,QAAQ,8BAA2B;AACnE,SAAStB,OAAO,IAAIuB,SAAS,QAAQ,2BAAwB;AAC7D,SAASvB,OAAO,IAAIwB,WAAW,QAAQ,6BAA0B;AACjE,SAASxB,OAAO,IAAIyB,QAAQ,QAAQ,0BAAuB;AAC3D,SAASzB,OAAO,IAAI0B,UAAU,QAAQ,4BAAyB;AAC/D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAAS3B,OAAO,IAAI4B,WAAW,QAAQ,6BAA0B;AACjE,SAAS5B,OAAO,IAAI6B,mBAAmB,QAAQ,qCAAkC;AACjF,SAAS7B,OAAO,IAAI8B,eAAe,QAAQ,iCAA8B;AACzE,SAAS9B,OAAO,IAAI+B,sBAAsB,QAAQ,wCAAqC;AACvF,SAASC,OAAO,QAAQ,yBAAsB;AAC9C,
|
|
1
|
+
{"version":3,"names":["Camera","UserTrackingMode","Atmosphere","default","MapView","Light","PointAnnotation","Annotation","Callout","StyleImport","UserLocation","UserLocationRenderMode","LocationPuck","VectorSource","ShapeSource","RasterSource","RasterArraySource","RasterDemSource","ImageSource","Viewport","Models","Images","Image","FillLayer","FillExtrusionLayer","HeatmapLayer","LineLayer","CircleLayer","SkyLayer","ModelLayer","SymbolLayer","RasterLayer","RasterParticleLayer","BackgroundLayer","CustomLocationProvider","Terrain","CameraGestureObserver","OnMapSteadyEvent","locationManager","offlineManager","OfflineCreatePackOptions","offlineManagerLegacy","TileStore","snapshotManager","MarkerView","Animated","AnimatedCoordinatesArray","AnimatedExtractCoordinateFromArray","AnimatedPoint","AnimatedRouteCoordinatesArray","AnimatedShape","Style","Logger","requestAndroidLocationPermissions","getAnnotationsLayerID","deprecatedClass","MovePointShapeAnimator","ChangeLineOffsetsShapeAnimator","AnimatedMapPoint","NativeUserLocation","StyleURL","UserTrackingModes","__experimental"],"sourceRoot":"../../src","sources":["Mapbox.native.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import RNMBXCameraGestureObserverNativeComponent from '../specs/RNMBXCameraGestureObserverNativeComponent';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/**
|
|
7
|
+
* CameraGestureObserver
|
|
8
|
+
*
|
|
9
|
+
* Unified native observer optimized for onMapSteady.
|
|
10
|
+
*/
|
|
11
|
+
export default /*#__PURE__*/memo(props => {
|
|
12
|
+
return /*#__PURE__*/_jsx(RNMBXCameraGestureObserverNativeComponent, {
|
|
13
|
+
...props,
|
|
14
|
+
hasOnMapSteady: props.onMapSteady ? true : false
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=CameraGestureObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","RNMBXCameraGestureObserverNativeComponent","jsx","_jsx","props","hasOnMapSteady","onMapSteady"],"sourceRoot":"../../../src","sources":["components/CameraGestureObserver.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAE5B,OAAOC,yCAAyC,MAEzC,oDAAoD;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAoB5D;AACA;AACA;AACA;AACA;AACA,4BAAeH,IAAI,CAAEI,KAAY,IAAK;EACpC,oBACED,IAAA,CAACF,yCAAyC;IAAA,GACpCG,KAAK;IACTC,cAAc,EAAED,KAAK,CAACE,WAAW,GAAG,IAAI,GAAG;EAAM,CAClD,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ViewProps } from 'react-native';
|
|
2
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
3
|
+
// @ts-ignore - CI environment type resolution issue for CodegenTypes
|
|
4
|
+
import { DirectEventHandler, Double, } from 'react-native/Libraries/Types/CodegenTypes';
|
|
5
|
+
|
|
6
|
+
import type { UnsafeMixed } from './codegenUtils';
|
|
7
|
+
|
|
8
|
+
export type OnMapSteadyEvent = {
|
|
9
|
+
reason: 'steady' | 'timeout';
|
|
10
|
+
// ms since last camera change when reason === 'steady'
|
|
11
|
+
idleDurationMs?: Double;
|
|
12
|
+
// e.g., 'pan' | 'pinch' | 'rotate' | 'pitch'
|
|
13
|
+
lastGestureType?: string | null | undefined;
|
|
14
|
+
// Unix epoch in milliseconds
|
|
15
|
+
timestamp: Double;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export interface NativeProps extends ViewProps {
|
|
19
|
+
quietPeriodMs?: UnsafeMixed<number>;
|
|
20
|
+
maxIntervalMs?: UnsafeMixed<number>;
|
|
21
|
+
|
|
22
|
+
hasOnMapSteady: UnsafeMixed<boolean>;
|
|
23
|
+
onMapSteady?: DirectEventHandler<OnMapSteadyEvent>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default codegenNativeComponent<NativeProps>(
|
|
27
|
+
'RNMBXCameraGestureObserver',
|
|
28
|
+
);
|
|
@@ -32,6 +32,8 @@ export { default as RasterParticleLayer } from './components/RasterParticleLayer
|
|
|
32
32
|
export { default as BackgroundLayer } from './components/BackgroundLayer';
|
|
33
33
|
export { default as CustomLocationProvider } from './components/CustomLocationProvider';
|
|
34
34
|
export { Terrain } from './components/Terrain';
|
|
35
|
+
export { default as CameraGestureObserver } from './components/CameraGestureObserver';
|
|
36
|
+
export { OnMapSteadyEvent } from './specs/RNMBXCameraGestureObserverNativeComponent';
|
|
35
37
|
export { default as locationManager, type Location, } from './modules/location/locationManager';
|
|
36
38
|
export { default as offlineManager, OfflineCreatePackOptions, } from './modules/offline/offlineManager';
|
|
37
39
|
export { default as offlineManagerLegacy } from './modules/offline/offlineManagerLegacy';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mapbox.native.d.ts","sourceRoot":"","sources":["../../../src/Mapbox.native.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Mapbox.native.d.ts","sourceRoot":"","sources":["../../../src/Mapbox.native.ts"],"names":[],"mappings":"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"}
|