@rnmapbox/maps 10.0.0-beta.64 → 10.0.0-beta.65
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/rctmgl/.settings/org.eclipse.buildship.core.prefs +12 -1
- package/android/rctmgl/src/main/java-mapboxgl/common/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +5 -0
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +3 -6
- package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLLocationModule.kt +5 -0
- package/index.d.ts +1 -0
- package/ios/RCTMGL-v10/RCTMGLCamera.swift +113 -0
- package/ios/RCTMGL-v10/RCTMGLLocationModule.m +1 -0
- package/ios/RCTMGL-v10/RCTMGLLocationModule.swift +12 -3
- package/ios/RCTMGL-v10/RCTMGLMarkerView.swift +1 -0
- package/ios/RCTMGL-v10/RCTMGLOfflineModule.swift +46 -11
- package/ios/RCTMGL-v10/RCTMGLStyleValue.swift +8 -1
- package/javascript/components/UserLocation.js +11 -0
- package/javascript/modules/location/locationManager.js +23 -2
- package/javascript/modules/offline/offlineManager.js +1 -1
- package/lib/commonjs/components/UserLocation.js +10 -0
- package/lib/commonjs/components/UserLocation.js.map +1 -1
- package/lib/commonjs/modules/location/locationManager.js +16 -1
- package/lib/commonjs/modules/location/locationManager.js.map +1 -1
- package/lib/commonjs/modules/offline/offlineManager.js +1 -1
- package/lib/module/components/UserLocation.js +10 -0
- package/lib/module/components/UserLocation.js.map +1 -1
- package/lib/module/modules/location/locationManager.js +17 -2
- package/lib/module/modules/location/locationManager.js.map +1 -1
- package/lib/module/modules/offline/offlineManager.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
arguments=--init-script /var/folders/nf/xt27lc4j4sv73tqskhkd_8xc0000gn/T/d146c9752a26f79b52047fb6dc6ed385d064e120494f96f08ca63a317c41f94c.gradle --init-script /var/folders/nf/xt27lc4j4sv73tqskhkd_8xc0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
|
|
2
|
+
auto.sync=false
|
|
3
|
+
build.scans.enabled=false
|
|
4
|
+
connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.4.2))
|
|
5
|
+
connection.project.dir=
|
|
2
6
|
eclipse.preferences.version=1
|
|
7
|
+
gradle.user.home=
|
|
8
|
+
java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home
|
|
9
|
+
jvm.arguments=
|
|
10
|
+
offline.mode=false
|
|
11
|
+
override.workspace.settings=true
|
|
12
|
+
show.console.view=true
|
|
13
|
+
show.executions.view=true
|
|
@@ -94,6 +94,11 @@ public class RCTMGLLocationModule extends ReactContextBaseJavaModule {
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
@ReactMethod
|
|
98
|
+
public void setRequestsAlwaysUse(boolean requestsAlwaysUse) {
|
|
99
|
+
// IOS only. Ignored on Android.
|
|
100
|
+
}
|
|
101
|
+
|
|
97
102
|
@ReactMethod
|
|
98
103
|
public void stop() {
|
|
99
104
|
stopLocationManager();
|
|
@@ -73,9 +73,6 @@ public class RCTMGLVectorSource extends RCTMGLTileSource<VectorSource> {
|
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
WritableMap payload = new WritableNativeMap();
|
|
78
|
-
|
|
79
76
|
mMap.querySourceFeatures(
|
|
80
77
|
getID(),
|
|
81
78
|
new SourceQueryOptions(layerIDs, filter),
|
|
@@ -83,6 +80,7 @@ public class RCTMGLVectorSource extends RCTMGLTileSource<VectorSource> {
|
|
|
83
80
|
new QueryFeaturesCallback() {
|
|
84
81
|
@Override
|
|
85
82
|
public void run(@NonNull Expected<String, List<QueriedFeature>> queriedFeatures) {
|
|
83
|
+
WritableMap payload = new WritableNativeMap();
|
|
86
84
|
if (queriedFeatures.isError()) {
|
|
87
85
|
//V10todo
|
|
88
86
|
payload.putString("error", queriedFeatures.getError());
|
|
@@ -93,11 +91,10 @@ public class RCTMGLVectorSource extends RCTMGLTileSource<VectorSource> {
|
|
|
93
91
|
}
|
|
94
92
|
payload.putString("data", FeatureCollection.fromFeatures(features).toJson());
|
|
95
93
|
}
|
|
94
|
+
AndroidCallbackEvent event = new AndroidCallbackEvent(RCTMGLVectorSource.this, callbackID, payload);
|
|
95
|
+
mManager.handleEvent(event);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
);
|
|
99
|
-
|
|
100
|
-
AndroidCallbackEvent event = new AndroidCallbackEvent(this, callbackID, payload);
|
|
101
|
-
mManager.handleEvent(event);
|
|
102
99
|
}
|
|
103
100
|
}
|
|
@@ -87,6 +87,11 @@ class RCTMGLLocationModule(reactContext: ReactApplicationContext) :
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
@ReactMethod
|
|
91
|
+
fun setRequestsAlwaysUse(requestsAlwaysUse: Boolean) {
|
|
92
|
+
// IOS only. Ignored on Android.
|
|
93
|
+
}
|
|
94
|
+
|
|
90
95
|
@ReactMethod
|
|
91
96
|
fun stop() {
|
|
92
97
|
stopLocationManager()
|
package/index.d.ts
CHANGED
|
@@ -612,6 +612,7 @@ export interface UserLocationProps {
|
|
|
612
612
|
animated?: boolean;
|
|
613
613
|
children?: ReactNode;
|
|
614
614
|
minDisplacement?: number;
|
|
615
|
+
requestsAlwaysUse?: boolean;
|
|
615
616
|
onPress?: () => void;
|
|
616
617
|
onUpdate?: (location: MapboxGL.Location) => void;
|
|
617
618
|
renderMode?: 'normal' | 'native';
|
|
@@ -123,28 +123,35 @@ class RCTMGLCamera : RCTMGLMapComponentBase, LocationConsumer {
|
|
|
123
123
|
_updateCameraFromTrackingMode()
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
+
|
|
126
127
|
@objc var followUserMode: String? {
|
|
127
128
|
didSet {
|
|
128
129
|
_updateCameraFromTrackingMode()
|
|
129
130
|
}
|
|
130
131
|
}
|
|
132
|
+
|
|
131
133
|
@objc var followUserLocation : Bool = false {
|
|
132
134
|
didSet {
|
|
133
135
|
_updateCameraFromTrackingMode()
|
|
134
136
|
}
|
|
135
137
|
}
|
|
138
|
+
|
|
136
139
|
@objc var followZoomLevel: NSNumber? {
|
|
137
140
|
didSet {
|
|
138
141
|
_updateCameraFromTrackingMode()
|
|
139
142
|
}
|
|
140
143
|
}
|
|
144
|
+
|
|
141
145
|
@objc var maxZoomLevel: NSNumber? {
|
|
142
146
|
didSet { _updateMaxBounds() }
|
|
143
147
|
}
|
|
148
|
+
|
|
144
149
|
@objc var minZoomLevel: NSNumber? {
|
|
145
150
|
didSet { _updateMaxBounds() }
|
|
146
151
|
}
|
|
152
|
+
|
|
147
153
|
@objc var onUserTrackingModeChange: RCTBubblingEventBlock? = nil
|
|
154
|
+
|
|
148
155
|
@objc var stop: [String: Any]? {
|
|
149
156
|
didSet {
|
|
150
157
|
_updateCamera()
|
|
@@ -319,6 +326,7 @@ class RCTMGLCamera : RCTMGLMapComponentBase, LocationConsumer {
|
|
|
319
326
|
}
|
|
320
327
|
let followState = map.viewport.makeFollowPuckViewportState(options: followOptions)
|
|
321
328
|
map.viewport.transition(to: followState)
|
|
329
|
+
map.viewport.addStatusObserver(self)
|
|
322
330
|
map.mapboxMap.setCamera(to: _camera)
|
|
323
331
|
}
|
|
324
332
|
}
|
|
@@ -468,6 +476,11 @@ class RCTMGLCamera : RCTMGLMapComponentBase, LocationConsumer {
|
|
|
468
476
|
map.reactCamera = self
|
|
469
477
|
}
|
|
470
478
|
|
|
479
|
+
override func removeFromMap(_ map: RCTMGLMapView) {
|
|
480
|
+
map.viewport.removeStatusObserver(self)
|
|
481
|
+
super.removeFromMap(map)
|
|
482
|
+
}
|
|
483
|
+
|
|
471
484
|
// MARK: - LocationConsumer
|
|
472
485
|
|
|
473
486
|
func locationUpdate(newLocation: Location) {
|
|
@@ -495,6 +508,106 @@ class RCTMGLCamera : RCTMGLMapComponentBase, LocationConsumer {
|
|
|
495
508
|
}
|
|
496
509
|
}
|
|
497
510
|
|
|
511
|
+
// MARK: - ViewportStatusObserver
|
|
512
|
+
|
|
513
|
+
extension RCTMGLCamera : ViewportStatusObserver {
|
|
514
|
+
func toDict(_ status: ViewportStatus) -> [String: Any] {
|
|
515
|
+
switch (status) {
|
|
516
|
+
case .idle:
|
|
517
|
+
return ["state":"idle"]
|
|
518
|
+
case .state(let state):
|
|
519
|
+
return ["state":String(describing: type(of: state))]
|
|
520
|
+
case .transition(let transition, toState: let toState):
|
|
521
|
+
return [
|
|
522
|
+
"transition": String(describing: type(of: transition)),
|
|
523
|
+
"state":String(describing: type(of: toState))
|
|
524
|
+
]
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
func toFollowUserLocation(_ status: ViewportStatus) -> Bool {
|
|
529
|
+
switch status {
|
|
530
|
+
case .idle:
|
|
531
|
+
return false
|
|
532
|
+
case .state(_):
|
|
533
|
+
return true
|
|
534
|
+
case .transition(_, toState: _):
|
|
535
|
+
return true
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
func toFollowUserMode(_ state: ViewportState) -> String? {
|
|
540
|
+
if let state = state as? FollowPuckViewportState {
|
|
541
|
+
switch state.options.bearing {
|
|
542
|
+
case .heading:
|
|
543
|
+
return "compass"
|
|
544
|
+
case .course:
|
|
545
|
+
return "course"
|
|
546
|
+
case .some(let bearing):
|
|
547
|
+
return "constant"
|
|
548
|
+
case .none:
|
|
549
|
+
return "normal"
|
|
550
|
+
}
|
|
551
|
+
} else if let state = state as? OverviewViewportState {
|
|
552
|
+
return "overview"
|
|
553
|
+
} else {
|
|
554
|
+
return "custom"
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
func toFollowUserMode(_ status: ViewportStatus) -> String? {
|
|
559
|
+
switch status {
|
|
560
|
+
case .idle:
|
|
561
|
+
return nil
|
|
562
|
+
case .state(let state):
|
|
563
|
+
return toFollowUserMode(state)
|
|
564
|
+
case .transition(_, toState: let state):
|
|
565
|
+
return toFollowUserMode(state)
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
func toString(_ reason: ViewportStatusChangeReason) -> String {
|
|
570
|
+
if reason == .idleRequested {
|
|
571
|
+
return "idleRequested"
|
|
572
|
+
} else if reason == .transitionFailed {
|
|
573
|
+
return "transitionFailied"
|
|
574
|
+
} else if reason == .transitionStarted {
|
|
575
|
+
return "transitionStarted"
|
|
576
|
+
} else if reason == .transitionSucceeded {
|
|
577
|
+
return "transitionSucceeded"
|
|
578
|
+
} else if reason == .userInteraction {
|
|
579
|
+
return "userInteraction"
|
|
580
|
+
} else {
|
|
581
|
+
return "unkown \(reason)"
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
func viewportStatusDidChange(from fromStatus: ViewportStatus,
|
|
586
|
+
to toStatus: ViewportStatus,
|
|
587
|
+
reason: ViewportStatusChangeReason)
|
|
588
|
+
{
|
|
589
|
+
if (reason == .userInteraction) {
|
|
590
|
+
followUserLocation = toFollowUserLocation(toStatus)
|
|
591
|
+
|
|
592
|
+
if let onUserTrackingModeChange = onUserTrackingModeChange {
|
|
593
|
+
let event = RCTMGLEvent(
|
|
594
|
+
type: .onUserTrackingModeChange,
|
|
595
|
+
payload: [
|
|
596
|
+
"followUserMode": toFollowUserMode(toStatus) as Any,
|
|
597
|
+
"followUserLocation": followUserLocation,
|
|
598
|
+
"fromViewportStatus": toDict(fromStatus),
|
|
599
|
+
"toViewportState": toDict(toStatus),
|
|
600
|
+
"reason": toString(reason)
|
|
601
|
+
]
|
|
602
|
+
)
|
|
603
|
+
|
|
604
|
+
onUserTrackingModeChange(event.toJSON())
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
|
|
498
610
|
private func toSeconds(_ ms: Double) -> TimeInterval {
|
|
499
611
|
return ms * 0.001
|
|
500
612
|
}
|
|
613
|
+
|
|
@@ -52,6 +52,7 @@ class RCTMGLLocationManager : LocationProviderDelegate {
|
|
|
52
52
|
|
|
53
53
|
var lastKnownLocation : CLLocation?
|
|
54
54
|
var lastKnownHeading : CLHeading?
|
|
55
|
+
var shouldRequestAlwaysAuthorization: Bool?
|
|
55
56
|
|
|
56
57
|
weak var delegate: RCTMGLLocationManagerDelegate?
|
|
57
58
|
weak var locationProviderDelage: LocationProviderDelegate?
|
|
@@ -67,8 +68,14 @@ class RCTMGLLocationManager : LocationProviderDelegate {
|
|
|
67
68
|
provider.locationProviderOptions = options
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
func setRequestsAlwaysUse(_ requestsAlwaysUse: Bool) {
|
|
72
|
+
shouldRequestAlwaysAuthorization = requestsAlwaysUse;
|
|
73
|
+
}
|
|
74
|
+
|
|
70
75
|
func start() {
|
|
71
|
-
|
|
76
|
+
if shouldRequestAlwaysAuthorization == true {
|
|
77
|
+
provider.requestAlwaysAuthorization()
|
|
78
|
+
}
|
|
72
79
|
provider.requestWhenInUseAuthorization()
|
|
73
80
|
provider.setDelegate(self)
|
|
74
81
|
provider.startUpdatingHeading()
|
|
@@ -266,6 +273,10 @@ class RCTMGLLocationModule: RCTEventEmitter, RCTMGLLocationManagerDelegate {
|
|
|
266
273
|
locationManager.setDistanceFilter(minDisplacement)
|
|
267
274
|
}
|
|
268
275
|
|
|
276
|
+
@objc func setRequestsAlwaysUse(_ requestsAlwaysUse: Bool) {
|
|
277
|
+
locationManager.setRequestsAlwaysUse(requestsAlwaysUse);
|
|
278
|
+
}
|
|
279
|
+
|
|
269
280
|
@objc
|
|
270
281
|
override func startObserving() {
|
|
271
282
|
super.startObserving()
|
|
@@ -278,7 +289,6 @@ class RCTMGLLocationModule: RCTEventEmitter, RCTMGLLocationManagerDelegate {
|
|
|
278
289
|
hasListener = false
|
|
279
290
|
}
|
|
280
291
|
|
|
281
|
-
|
|
282
292
|
func locationManager(_ locationManager: RCTMGLLocationManager, didUpdateLocation location: RCTMGLLocation) {
|
|
283
293
|
guard hasListener else {
|
|
284
294
|
return
|
|
@@ -290,5 +300,4 @@ class RCTMGLLocationModule: RCTEventEmitter, RCTMGLLocationManagerDelegate {
|
|
|
290
300
|
|
|
291
301
|
self.sendEvent(withName: RCT_MAPBOX_USER_LOCATION_UPDATE, body: location.toJSON())
|
|
292
302
|
}
|
|
293
|
-
|
|
294
303
|
}
|
|
@@ -46,6 +46,15 @@ class RCTMGLOfflineModule: RCTEventEmitter {
|
|
|
46
46
|
|
|
47
47
|
lazy var tileRegionPacks : [String: TileRegionPack] = [:]
|
|
48
48
|
|
|
49
|
+
var progressEventThrottle : (
|
|
50
|
+
waitBetweenEvents: Double?,
|
|
51
|
+
lastSentTimestamp: Double?,
|
|
52
|
+
lastSentState: State?
|
|
53
|
+
) = (
|
|
54
|
+
300,
|
|
55
|
+
nil,
|
|
56
|
+
nil
|
|
57
|
+
)
|
|
49
58
|
|
|
50
59
|
@objc override
|
|
51
60
|
func startObserving() {
|
|
@@ -301,12 +310,8 @@ class RCTMGLOfflineModule: RCTEventEmitter {
|
|
|
301
310
|
RCTMGLEvent(type: .offlineProgress, payload: self._makeRegionStatusPayload(name, progress: progress, state: state, metadata: nil))
|
|
302
311
|
}
|
|
303
312
|
|
|
304
|
-
func shouldSendProgressEvent() -> Bool {
|
|
305
|
-
return true
|
|
306
|
-
}
|
|
307
|
-
|
|
308
313
|
func offlinePackProgressDidChange(progress: TileRegionLoadProgress, metadata: [String:Any], state: State) {
|
|
309
|
-
if self.shouldSendProgressEvent() {
|
|
314
|
+
if self.shouldSendProgressEvent(progress: progress, state: state) {
|
|
310
315
|
let event = makeProgressEvent(metadata["name"] as! String, progress: progress, state: state)
|
|
311
316
|
self._sendEvent(Callbacks.progress.rawValue, event: event)
|
|
312
317
|
}
|
|
@@ -440,12 +445,7 @@ class RCTMGLOfflineModule: RCTEventEmitter {
|
|
|
440
445
|
|
|
441
446
|
@objc
|
|
442
447
|
func setTileCountLimit(_ limit: NSNumber) {
|
|
443
|
-
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
@objc
|
|
447
|
-
func setProgressEventThrottle(_ throttleValue: NSNumber) {
|
|
448
|
-
// v10todo improve progress event listener
|
|
448
|
+
RCTMGLLogWarn("setTileCountLimit is not yet implemented on v10")
|
|
449
449
|
}
|
|
450
450
|
|
|
451
451
|
|
|
@@ -486,3 +486,38 @@ class RCTMGLOfflineModule: RCTEventEmitter {
|
|
|
486
486
|
}
|
|
487
487
|
}
|
|
488
488
|
}
|
|
489
|
+
|
|
490
|
+
// MARK: progress throttle
|
|
491
|
+
|
|
492
|
+
extension RCTMGLOfflineModule {
|
|
493
|
+
@objc
|
|
494
|
+
func setProgressEventThrottle(_ throttleValue: NSNumber) {
|
|
495
|
+
progressEventThrottle.waitBetweenEvents = throttleValue.doubleValue
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
func shouldSendProgressEvent(progress: TileRegionLoadProgress, state: State) -> Bool
|
|
500
|
+
{
|
|
501
|
+
let currentTimestamp: Double = CACurrentMediaTime() * 1000.0
|
|
502
|
+
|
|
503
|
+
guard let lastSentState = progressEventThrottle.lastSentState, lastSentState == state else {
|
|
504
|
+
progressEventThrottle.lastSentState = state
|
|
505
|
+
progressEventThrottle.lastSentTimestamp = currentTimestamp
|
|
506
|
+
return true
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
guard let waitBetweenEvents = progressEventThrottle.waitBetweenEvents,
|
|
510
|
+
let lastSentTimestamp = progressEventThrottle.lastSentTimestamp else {
|
|
511
|
+
progressEventThrottle.lastSentTimestamp = currentTimestamp
|
|
512
|
+
return true;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
if (currentTimestamp - lastSentTimestamp > waitBetweenEvents) {
|
|
516
|
+
progressEventThrottle.lastSentTimestamp = currentTimestamp
|
|
517
|
+
return true;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
return false;
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
|
|
@@ -5,6 +5,10 @@ func deg2rad(_ number: Double) -> Double {
|
|
|
5
5
|
return number * .pi / 180
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
enum StyleConversionError: Error {
|
|
9
|
+
case unexpectedType(message: String)
|
|
10
|
+
}
|
|
11
|
+
|
|
8
12
|
class RCTMGLStyleValue {
|
|
9
13
|
var value: Any
|
|
10
14
|
var styleType: String? = nil
|
|
@@ -325,11 +329,14 @@ class RCTMGLStyleValue {
|
|
|
325
329
|
return .constant(valueObj)
|
|
326
330
|
} else {
|
|
327
331
|
do {
|
|
332
|
+
if valueObj is String {
|
|
333
|
+
throw StyleConversionError.unexpectedType(message: "should be array constant or expression")
|
|
334
|
+
}
|
|
328
335
|
let data = try JSONSerialization.data(withJSONObject: valueObj, options: .prettyPrinted)
|
|
329
336
|
let decodedExpression = try JSONDecoder().decode(Expression.self, from: data)
|
|
330
337
|
return .expression(decodedExpression)
|
|
331
338
|
} catch {
|
|
332
|
-
Logger.log(level: .error, message: "Invalid value for array
|
|
339
|
+
Logger.log(level: .error, message: "Invalid value for array => value: \(value) error: \(error) setting dummy value")
|
|
333
340
|
return .constant([""])
|
|
334
341
|
}
|
|
335
342
|
}
|
|
@@ -97,6 +97,13 @@ class UserLocation extends React.Component {
|
|
|
97
97
|
*/
|
|
98
98
|
showsUserHeadingIndicator: PropTypes.bool,
|
|
99
99
|
|
|
100
|
+
/**
|
|
101
|
+
* Request the always location permission, and listen to the location even when the app is in background
|
|
102
|
+
*
|
|
103
|
+
* @platform ios
|
|
104
|
+
*/
|
|
105
|
+
requestsAlwaysUse: PropTypes.bool,
|
|
106
|
+
|
|
100
107
|
/**
|
|
101
108
|
* Minimum amount of movement before GPS location is updated in meters
|
|
102
109
|
*/
|
|
@@ -112,6 +119,7 @@ class UserLocation extends React.Component {
|
|
|
112
119
|
animated: true,
|
|
113
120
|
visible: true,
|
|
114
121
|
showsUserHeadingIndicator: false,
|
|
122
|
+
requestsAlwaysUse: false,
|
|
115
123
|
minDisplacement: 0,
|
|
116
124
|
renderMode: 'normal',
|
|
117
125
|
};
|
|
@@ -161,6 +169,9 @@ class UserLocation extends React.Component {
|
|
|
161
169
|
if (this.props.minDisplacement !== prevProps.minDisplacement) {
|
|
162
170
|
locationManager.setMinDisplacement(this.props.minDisplacement);
|
|
163
171
|
}
|
|
172
|
+
if (this.props.requestsAlwaysUse !== prevProps.requestsAlwaysUse) {
|
|
173
|
+
locationManager.setRequestsAlwaysUse(this.props.requestsAlwaysUse);
|
|
174
|
+
}
|
|
164
175
|
}
|
|
165
176
|
|
|
166
177
|
async componentWillUnmount() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
1
|
+
import { NativeModules, NativeEventEmitter, AppState } from 'react-native';
|
|
2
2
|
|
|
3
3
|
const MapboxGL = NativeModules.MGLModule;
|
|
4
4
|
const MapboxGLLocationManager = NativeModules.MGLLocationModule;
|
|
@@ -12,8 +12,14 @@ class LocationManager {
|
|
|
12
12
|
this._listeners = [];
|
|
13
13
|
this._lastKnownLocation = null;
|
|
14
14
|
this._isListening = false;
|
|
15
|
+
this._requestsAlwaysUse = false;
|
|
15
16
|
this.onUpdate = this.onUpdate.bind(this);
|
|
16
17
|
this.subscription = null;
|
|
18
|
+
|
|
19
|
+
this._appStateListener = AppState.addEventListener(
|
|
20
|
+
'change',
|
|
21
|
+
this._handleAppStateChange.bind(this),
|
|
22
|
+
);
|
|
17
23
|
}
|
|
18
24
|
|
|
19
25
|
async getLastKnownLocation() {
|
|
@@ -28,7 +34,7 @@ class LocationManager {
|
|
|
28
34
|
lastKnownLocation =
|
|
29
35
|
await MapboxGLLocationManager.getLastKnownLocation();
|
|
30
36
|
} catch (error) {
|
|
31
|
-
console.
|
|
37
|
+
console.warn('locationManager Error: ', error);
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
if (!this._lastKnownLocation && lastKnownLocation) {
|
|
@@ -64,6 +70,16 @@ class LocationManager {
|
|
|
64
70
|
this.stop();
|
|
65
71
|
}
|
|
66
72
|
|
|
73
|
+
_handleAppStateChange(appState) {
|
|
74
|
+
if (!this._requestsAlwaysUse) {
|
|
75
|
+
if (appState === 'background') {
|
|
76
|
+
this.stop();
|
|
77
|
+
} else if (appState === 'active') {
|
|
78
|
+
this.start();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
67
83
|
start(displacement = -1) {
|
|
68
84
|
if (
|
|
69
85
|
displacement === -1 ||
|
|
@@ -103,6 +119,11 @@ class LocationManager {
|
|
|
103
119
|
MapboxGLLocationManager.setMinDisplacement(minDisplacement);
|
|
104
120
|
}
|
|
105
121
|
|
|
122
|
+
setRequestsAlwaysUse(requestsAlwaysUse) {
|
|
123
|
+
MapboxGLLocationManager.setRequestsAlwaysUse(requestsAlwaysUse);
|
|
124
|
+
this._requestsAlwaysUse = requestsAlwaysUse;
|
|
125
|
+
}
|
|
126
|
+
|
|
106
127
|
onUpdate(location) {
|
|
107
128
|
this._lastKnownLocation = location;
|
|
108
129
|
|
|
@@ -247,7 +247,7 @@ class OfflineManager {
|
|
|
247
247
|
|
|
248
248
|
/**
|
|
249
249
|
* Sets the period at which download status events will be sent over the React Native bridge.
|
|
250
|
-
* The default is
|
|
250
|
+
* The default is 300ms.
|
|
251
251
|
*
|
|
252
252
|
* @example
|
|
253
253
|
* MapboxGL.offlineManager.setProgressEventThrottle(500);
|
|
@@ -86,6 +86,9 @@ class UserLocation extends _react.default.Component {
|
|
|
86
86
|
if (this.props.minDisplacement !== prevProps.minDisplacement) {
|
|
87
87
|
_locationManager.default.setMinDisplacement(this.props.minDisplacement);
|
|
88
88
|
}
|
|
89
|
+
if (this.props.requestsAlwaysUse !== prevProps.requestsAlwaysUse) {
|
|
90
|
+
_locationManager.default.setRequestsAlwaysUse(this.props.requestsAlwaysUse);
|
|
91
|
+
}
|
|
89
92
|
}
|
|
90
93
|
async componentWillUnmount() {
|
|
91
94
|
this._isMounted = false;
|
|
@@ -232,6 +235,12 @@ _defineProperty(UserLocation, "propTypes", {
|
|
|
232
235
|
* Show or hide small arrow which indicates direction the device is pointing relative to north.
|
|
233
236
|
*/
|
|
234
237
|
showsUserHeadingIndicator: _propTypes.default.bool,
|
|
238
|
+
/**
|
|
239
|
+
* Request the always location permission, and listen to the location even when the app is in background
|
|
240
|
+
*
|
|
241
|
+
* @platform ios
|
|
242
|
+
*/
|
|
243
|
+
requestsAlwaysUse: _propTypes.default.bool,
|
|
235
244
|
/**
|
|
236
245
|
* Minimum amount of movement before GPS location is updated in meters
|
|
237
246
|
*/
|
|
@@ -245,6 +254,7 @@ _defineProperty(UserLocation, "defaultProps", {
|
|
|
245
254
|
animated: true,
|
|
246
255
|
visible: true,
|
|
247
256
|
showsUserHeadingIndicator: false,
|
|
257
|
+
requestsAlwaysUse: false,
|
|
248
258
|
minDisplacement: 0,
|
|
249
259
|
renderMode: 'normal'
|
|
250
260
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapboxBlue","layerStyles","normal","pluse","circleRadius","circleColor","circleOpacity","circlePitchAlignment","background","foreground","normalIcon","showsUserHeadingIndicator","heading","HeadingIndicator","UserLocation","React","Component","constructor","props","state","shouldShowUserLocation","coordinates","_onLocationUpdate","bind","componentDidMount","_isMounted","locationManager","setMinDisplacement","minDisplacement","setLocationManager","running","needsLocationManagerRunning","renderMode","RenderMode","Native","componentDidUpdate","prevProps","componentWillUnmount","locationManagerRunning","addListener","location","getLastKnownLocation","removeListener","onUpdate","Normal","visible","coords","longitude","latitude","setState","_renderNative","androidRenderMode","iosShowsUserHeadingIndicator","render","children","onPress","animated","iconRotate","PropTypes","bool","oneOf","func","number","any"],"sourceRoot":"../../javascript","sources":["UserLocation.js"],"mappings":";;;;;;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAAsD;AAAA;AAAA;AAAA;AAEtD,MAAMA,UAAU,GAAG,yBAAyB;AAE5C,MAAMC,WAAW,GAAG;EAClBC,MAAM,EAAE;IACNC,KAAK,EAAE;MACLC,YAAY,EAAE,EAAE;MAChBC,WAAW,EAAEL,UAAU;MACvBM,aAAa,EAAE,GAAG;MAClBC,oBAAoB,EAAE;IACxB,CAAC;IACDC,UAAU,EAAE;MACVJ,YAAY,EAAE,CAAC;MACfC,WAAW,EAAE,MAAM;MACnBE,oBAAoB,EAAE;IACxB,CAAC;IACDE,UAAU,EAAE;MACVL,YAAY,EAAE,CAAC;MACfC,WAAW,EAAEL,UAAU;MACvBO,oBAAoB,EAAE;IACxB;EACF;AACF,CAAC;AAEM,MAAMG,UAAU,GAAG,CAACC,yBAAyB,EAAEC,OAAO,KAAK,cAChE,6BAAC,oBAAW;EACV,GAAG,EAAC,+BAA+B;EACnC,EAAE,EAAC,+BAA+B;EAClC,KAAK,EAAEX,WAAW,CAACC,MAAM,CAACC;AAAM,EAChC,eACF,6BAAC,oBAAW;EACV,GAAG,EAAC,+BAA+B;EACnC,EAAE,EAAC,+BAA+B;EAClC,KAAK,EAAEF,WAAW,CAACC,MAAM,CAACM;AAAW,EACrC,eACF,6BAAC,oBAAW;EACV,GAAG,EAAC,6BAA6B;EACjC,EAAE,EAAC,6BAA6B;EAChC,YAAY,EAAC,+BAA+B;EAC5C,KAAK,EAAEP,WAAW,CAACC,MAAM,CAACO;AAAW,EACrC,EACF,IAAIE,yBAAyB,IAAIC,OAAO,KAAK,IAAI,GAC7C,CAAC,IAAAC,yBAAgB,EAAC;EAAED;AAAQ,CAAC,CAAC,CAAC,GAC/B,EAAE,CAAC,CACR;AAAC;AAEF,MAAME,YAAY,SAASC,cAAK,CAACC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"names":["mapboxBlue","layerStyles","normal","pluse","circleRadius","circleColor","circleOpacity","circlePitchAlignment","background","foreground","normalIcon","showsUserHeadingIndicator","heading","HeadingIndicator","UserLocation","React","Component","constructor","props","state","shouldShowUserLocation","coordinates","_onLocationUpdate","bind","componentDidMount","_isMounted","locationManager","setMinDisplacement","minDisplacement","setLocationManager","running","needsLocationManagerRunning","renderMode","RenderMode","Native","componentDidUpdate","prevProps","requestsAlwaysUse","setRequestsAlwaysUse","componentWillUnmount","locationManagerRunning","addListener","location","getLastKnownLocation","removeListener","onUpdate","Normal","visible","coords","longitude","latitude","setState","_renderNative","androidRenderMode","iosShowsUserHeadingIndicator","render","children","onPress","animated","iconRotate","PropTypes","bool","oneOf","func","number","any"],"sourceRoot":"../../javascript","sources":["UserLocation.js"],"mappings":"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"}
|
|
@@ -14,8 +14,10 @@ class LocationManager {
|
|
|
14
14
|
this._listeners = [];
|
|
15
15
|
this._lastKnownLocation = null;
|
|
16
16
|
this._isListening = false;
|
|
17
|
+
this._requestsAlwaysUse = false;
|
|
17
18
|
this.onUpdate = this.onUpdate.bind(this);
|
|
18
19
|
this.subscription = null;
|
|
20
|
+
this._appStateListener = _reactNative.AppState.addEventListener('change', this._handleAppStateChange.bind(this));
|
|
19
21
|
}
|
|
20
22
|
async getLastKnownLocation() {
|
|
21
23
|
if (!this._lastKnownLocation) {
|
|
@@ -28,7 +30,7 @@ class LocationManager {
|
|
|
28
30
|
try {
|
|
29
31
|
lastKnownLocation = await MapboxGLLocationManager.getLastKnownLocation();
|
|
30
32
|
} catch (error) {
|
|
31
|
-
console.
|
|
33
|
+
console.warn('locationManager Error: ', error);
|
|
32
34
|
}
|
|
33
35
|
if (!this._lastKnownLocation && lastKnownLocation) {
|
|
34
36
|
this._lastKnownLocation = lastKnownLocation;
|
|
@@ -57,6 +59,15 @@ class LocationManager {
|
|
|
57
59
|
this._listeners = [];
|
|
58
60
|
this.stop();
|
|
59
61
|
}
|
|
62
|
+
_handleAppStateChange(appState) {
|
|
63
|
+
if (!this._requestsAlwaysUse) {
|
|
64
|
+
if (appState === 'background') {
|
|
65
|
+
this.stop();
|
|
66
|
+
} else if (appState === 'active') {
|
|
67
|
+
this.start();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
60
71
|
start() {
|
|
61
72
|
let displacement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
|
|
62
73
|
if (displacement === -1 || displacement === null || displacement === undefined) {
|
|
@@ -82,6 +93,10 @@ class LocationManager {
|
|
|
82
93
|
this._minDisplacement = minDisplacement;
|
|
83
94
|
MapboxGLLocationManager.setMinDisplacement(minDisplacement);
|
|
84
95
|
}
|
|
96
|
+
setRequestsAlwaysUse(requestsAlwaysUse) {
|
|
97
|
+
MapboxGLLocationManager.setRequestsAlwaysUse(requestsAlwaysUse);
|
|
98
|
+
this._requestsAlwaysUse = requestsAlwaysUse;
|
|
99
|
+
}
|
|
85
100
|
onUpdate(location) {
|
|
86
101
|
this._lastKnownLocation = location;
|
|
87
102
|
this._listeners.forEach(l => l(location));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MapboxGL","NativeModules","MGLModule","MapboxGLLocationManager","MGLLocationModule","LocationModuleEventEmitter","NativeEventEmitter","LocationManager","constructor","_listeners","_lastKnownLocation","_isListening","onUpdate","bind","subscription","getLastKnownLocation","lastKnownLocation","error","console","
|
|
1
|
+
{"version":3,"names":["MapboxGL","NativeModules","MGLModule","MapboxGLLocationManager","MGLLocationModule","LocationModuleEventEmitter","NativeEventEmitter","LocationManager","constructor","_listeners","_lastKnownLocation","_isListening","_requestsAlwaysUse","onUpdate","bind","subscription","_appStateListener","AppState","addEventListener","_handleAppStateChange","getLastKnownLocation","lastKnownLocation","error","console","warn","addListener","listener","start","includes","push","removeListener","filter","l","length","stop","removeAllListeners","appState","displacement","undefined","_minDisplacement","LocationCallbackName","Update","remove","setMinDisplacement","minDisplacement","setRequestsAlwaysUse","requestsAlwaysUse","location","forEach"],"sourceRoot":"../../javascript","sources":["locationManager.js"],"mappings":"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"}
|
|
@@ -234,7 +234,7 @@ class OfflineManager {
|
|
|
234
234
|
|
|
235
235
|
/**
|
|
236
236
|
* Sets the period at which download status events will be sent over the React Native bridge.
|
|
237
|
-
* The default is
|
|
237
|
+
* The default is 300ms.
|
|
238
238
|
*
|
|
239
239
|
* @example
|
|
240
240
|
* MapboxGL.offlineManager.setProgressEventThrottle(500);
|
|
@@ -78,6 +78,9 @@ class UserLocation extends React.Component {
|
|
|
78
78
|
if (this.props.minDisplacement !== prevProps.minDisplacement) {
|
|
79
79
|
locationManager.setMinDisplacement(this.props.minDisplacement);
|
|
80
80
|
}
|
|
81
|
+
if (this.props.requestsAlwaysUse !== prevProps.requestsAlwaysUse) {
|
|
82
|
+
locationManager.setRequestsAlwaysUse(this.props.requestsAlwaysUse);
|
|
83
|
+
}
|
|
81
84
|
}
|
|
82
85
|
async componentWillUnmount() {
|
|
83
86
|
this._isMounted = false;
|
|
@@ -224,6 +227,12 @@ _defineProperty(UserLocation, "propTypes", {
|
|
|
224
227
|
* Show or hide small arrow which indicates direction the device is pointing relative to north.
|
|
225
228
|
*/
|
|
226
229
|
showsUserHeadingIndicator: PropTypes.bool,
|
|
230
|
+
/**
|
|
231
|
+
* Request the always location permission, and listen to the location even when the app is in background
|
|
232
|
+
*
|
|
233
|
+
* @platform ios
|
|
234
|
+
*/
|
|
235
|
+
requestsAlwaysUse: PropTypes.bool,
|
|
227
236
|
/**
|
|
228
237
|
* Minimum amount of movement before GPS location is updated in meters
|
|
229
238
|
*/
|
|
@@ -237,6 +246,7 @@ _defineProperty(UserLocation, "defaultProps", {
|
|
|
237
246
|
animated: true,
|
|
238
247
|
visible: true,
|
|
239
248
|
showsUserHeadingIndicator: false,
|
|
249
|
+
requestsAlwaysUse: false,
|
|
240
250
|
minDisplacement: 0,
|
|
241
251
|
renderMode: 'normal'
|
|
242
252
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PropTypes","locationManager","Annotation","CircleLayer","HeadingIndicator","NativeUserLocation","mapboxBlue","layerStyles","normal","pluse","circleRadius","circleColor","circleOpacity","circlePitchAlignment","background","foreground","normalIcon","showsUserHeadingIndicator","heading","UserLocation","Component","constructor","props","state","shouldShowUserLocation","coordinates","_onLocationUpdate","bind","componentDidMount","_isMounted","setMinDisplacement","minDisplacement","setLocationManager","running","needsLocationManagerRunning","renderMode","RenderMode","Native","componentDidUpdate","prevProps","componentWillUnmount","locationManagerRunning","addListener","location","getLastKnownLocation","removeListener","onUpdate","Normal","visible","coords","longitude","latitude","setState","_renderNative","androidRenderMode","iosShowsUserHeadingIndicator","render","children","onPress","animated","iconRotate","bool","oneOf","func","number","any"],"sourceRoot":"../../javascript","sources":["UserLocation.js"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,OAAOC,eAAe,MAAM,qCAAqC;AAEjE,OAAOC,UAAU,MAAM,0BAA0B;AACjD,OAAOC,WAAW,MAAM,eAAe;AACvC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,kBAAkB,MAAM,sBAAsB;AAErD,MAAMC,UAAU,GAAG,yBAAyB;AAE5C,MAAMC,WAAW,GAAG;EAClBC,MAAM,EAAE;IACNC,KAAK,EAAE;MACLC,YAAY,EAAE,EAAE;MAChBC,WAAW,EAAEL,UAAU;MACvBM,aAAa,EAAE,GAAG;MAClBC,oBAAoB,EAAE;IACxB,CAAC;IACDC,UAAU,EAAE;MACVJ,YAAY,EAAE,CAAC;MACfC,WAAW,EAAE,MAAM;MACnBE,oBAAoB,EAAE;IACxB,CAAC;IACDE,UAAU,EAAE;MACVL,YAAY,EAAE,CAAC;MACfC,WAAW,EAAEL,UAAU;MACvBO,oBAAoB,EAAE;IACxB;EACF;AACF,CAAC;AAED,OAAO,MAAMG,UAAU,GAAG,CAACC,yBAAyB,EAAEC,OAAO,KAAK,cAChE,oBAAC,WAAW;EACV,GAAG,EAAC,+BAA+B;EACnC,EAAE,EAAC,+BAA+B;EAClC,KAAK,EAAEX,WAAW,CAACC,MAAM,CAACC;AAAM,EAChC,eACF,oBAAC,WAAW;EACV,GAAG,EAAC,+BAA+B;EACnC,EAAE,EAAC,+BAA+B;EAClC,KAAK,EAAEF,WAAW,CAACC,MAAM,CAACM;AAAW,EACrC,eACF,oBAAC,WAAW;EACV,GAAG,EAAC,6BAA6B;EACjC,EAAE,EAAC,6BAA6B;EAChC,YAAY,EAAC,+BAA+B;EAC5C,KAAK,EAAEP,WAAW,CAACC,MAAM,CAACO;AAAW,EACrC,EACF,IAAIE,yBAAyB,IAAIC,OAAO,KAAK,IAAI,GAC7C,CAACd,gBAAgB,CAAC;EAAEc;AAAQ,CAAC,CAAC,CAAC,GAC/B,EAAE,CAAC,CACR;AAED,MAAMC,YAAY,SAASpB,KAAK,CAACqB,SAAS,CAAC;
|
|
1
|
+
{"version":3,"names":["React","PropTypes","locationManager","Annotation","CircleLayer","HeadingIndicator","NativeUserLocation","mapboxBlue","layerStyles","normal","pluse","circleRadius","circleColor","circleOpacity","circlePitchAlignment","background","foreground","normalIcon","showsUserHeadingIndicator","heading","UserLocation","Component","constructor","props","state","shouldShowUserLocation","coordinates","_onLocationUpdate","bind","componentDidMount","_isMounted","setMinDisplacement","minDisplacement","setLocationManager","running","needsLocationManagerRunning","renderMode","RenderMode","Native","componentDidUpdate","prevProps","requestsAlwaysUse","setRequestsAlwaysUse","componentWillUnmount","locationManagerRunning","addListener","location","getLastKnownLocation","removeListener","onUpdate","Normal","visible","coords","longitude","latitude","setState","_renderNative","androidRenderMode","iosShowsUserHeadingIndicator","render","children","onPress","animated","iconRotate","bool","oneOf","func","number","any"],"sourceRoot":"../../javascript","sources":["UserLocation.js"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
1
|
+
import { NativeModules, NativeEventEmitter, AppState } from 'react-native';
|
|
2
2
|
const MapboxGL = NativeModules.MGLModule;
|
|
3
3
|
const MapboxGLLocationManager = NativeModules.MGLLocationModule;
|
|
4
4
|
export const LocationModuleEventEmitter = new NativeEventEmitter(MapboxGLLocationManager);
|
|
@@ -7,8 +7,10 @@ class LocationManager {
|
|
|
7
7
|
this._listeners = [];
|
|
8
8
|
this._lastKnownLocation = null;
|
|
9
9
|
this._isListening = false;
|
|
10
|
+
this._requestsAlwaysUse = false;
|
|
10
11
|
this.onUpdate = this.onUpdate.bind(this);
|
|
11
12
|
this.subscription = null;
|
|
13
|
+
this._appStateListener = AppState.addEventListener('change', this._handleAppStateChange.bind(this));
|
|
12
14
|
}
|
|
13
15
|
async getLastKnownLocation() {
|
|
14
16
|
if (!this._lastKnownLocation) {
|
|
@@ -21,7 +23,7 @@ class LocationManager {
|
|
|
21
23
|
try {
|
|
22
24
|
lastKnownLocation = await MapboxGLLocationManager.getLastKnownLocation();
|
|
23
25
|
} catch (error) {
|
|
24
|
-
console.
|
|
26
|
+
console.warn('locationManager Error: ', error);
|
|
25
27
|
}
|
|
26
28
|
if (!this._lastKnownLocation && lastKnownLocation) {
|
|
27
29
|
this._lastKnownLocation = lastKnownLocation;
|
|
@@ -50,6 +52,15 @@ class LocationManager {
|
|
|
50
52
|
this._listeners = [];
|
|
51
53
|
this.stop();
|
|
52
54
|
}
|
|
55
|
+
_handleAppStateChange(appState) {
|
|
56
|
+
if (!this._requestsAlwaysUse) {
|
|
57
|
+
if (appState === 'background') {
|
|
58
|
+
this.stop();
|
|
59
|
+
} else if (appState === 'active') {
|
|
60
|
+
this.start();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
53
64
|
start() {
|
|
54
65
|
let displacement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
|
|
55
66
|
if (displacement === -1 || displacement === null || displacement === undefined) {
|
|
@@ -75,6 +86,10 @@ class LocationManager {
|
|
|
75
86
|
this._minDisplacement = minDisplacement;
|
|
76
87
|
MapboxGLLocationManager.setMinDisplacement(minDisplacement);
|
|
77
88
|
}
|
|
89
|
+
setRequestsAlwaysUse(requestsAlwaysUse) {
|
|
90
|
+
MapboxGLLocationManager.setRequestsAlwaysUse(requestsAlwaysUse);
|
|
91
|
+
this._requestsAlwaysUse = requestsAlwaysUse;
|
|
92
|
+
}
|
|
78
93
|
onUpdate(location) {
|
|
79
94
|
this._lastKnownLocation = location;
|
|
80
95
|
this._listeners.forEach(l => l(location));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","MapboxGL","MGLModule","MapboxGLLocationManager","MGLLocationModule","LocationModuleEventEmitter","LocationManager","constructor","_listeners","_lastKnownLocation","_isListening","onUpdate","bind","subscription","getLastKnownLocation","lastKnownLocation","error","console","
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","AppState","MapboxGL","MGLModule","MapboxGLLocationManager","MGLLocationModule","LocationModuleEventEmitter","LocationManager","constructor","_listeners","_lastKnownLocation","_isListening","_requestsAlwaysUse","onUpdate","bind","subscription","_appStateListener","addEventListener","_handleAppStateChange","getLastKnownLocation","lastKnownLocation","error","console","warn","addListener","listener","start","includes","push","removeListener","filter","l","length","stop","removeAllListeners","appState","displacement","undefined","_minDisplacement","LocationCallbackName","Update","remove","setMinDisplacement","minDisplacement","setRequestsAlwaysUse","requestsAlwaysUse","location","forEach"],"sourceRoot":"../../javascript","sources":["locationManager.js"],"mappings":"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"}
|
|
@@ -226,7 +226,7 @@ class OfflineManager {
|
|
|
226
226
|
|
|
227
227
|
/**
|
|
228
228
|
* Sets the period at which download status events will be sent over the React Native bridge.
|
|
229
|
-
* The default is
|
|
229
|
+
* The default is 300ms.
|
|
230
230
|
*
|
|
231
231
|
* @example
|
|
232
232
|
* MapboxGL.offlineManager.setProgressEventThrottle(500);
|