@rnmapbox/maps 10.1.36 → 10.1.37-rc.0
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 +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXLocationModule.kt +20 -9
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXLocationModuleSpec.java +68 -0
- package/lib/commonjs/modules/location/locationManager.js +16 -3
- package/lib/commonjs/modules/location/locationManager.js.map +1 -1
- package/lib/commonjs/specs/NativeRNMBXLocationModule.js +9 -0
- package/lib/commonjs/specs/NativeRNMBXLocationModule.js.map +1 -0
- package/lib/module/modules/location/locationManager.js +16 -4
- package/lib/module/modules/location/locationManager.js.map +1 -1
- package/lib/module/specs/NativeRNMBXLocationModule.js +5 -0
- package/lib/module/specs/NativeRNMBXLocationModule.js.map +1 -0
- package/lib/typescript/src/modules/location/locationManager.d.ts +2 -2
- package/lib/typescript/src/modules/location/locationManager.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeRNMBXLocationModule.d.ts +29 -0
- package/lib/typescript/src/specs/NativeRNMBXLocationModule.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/modules/location/locationManager.ts +20 -9
- package/src/specs/NativeRNMBXLocationModule.ts +32 -0
|
@@ -184,7 +184,7 @@ class RNMBXPackage : TurboReactPackage() {
|
|
|
184
184
|
false, // needsEagerInit
|
|
185
185
|
true, // hasConstants
|
|
186
186
|
false, // isCxxModule
|
|
187
|
-
|
|
187
|
+
isTurboModule // isTurboModule
|
|
188
188
|
)
|
|
189
189
|
moduleInfos[RNMBXOfflineModule.REACT_CLASS] = ReactModuleInfo(
|
|
190
190
|
RNMBXOfflineModule.REACT_CLASS,
|
|
@@ -3,6 +3,7 @@ package com.rnmapbox.rnmbx.modules
|
|
|
3
3
|
import com.facebook.react.bridge.*
|
|
4
4
|
import com.rnmapbox.rnmbx.location.LocationManager
|
|
5
5
|
import com.facebook.react.module.annotations.ReactModule
|
|
6
|
+
import com.rnmapbox.rnmbx.NativeRNMBXLocationModuleSpec
|
|
6
7
|
import com.rnmapbox.rnmbx.location.LocationManager.OnUserLocationChange
|
|
7
8
|
import com.rnmapbox.rnmbx.events.LocationEvent
|
|
8
9
|
import com.rnmapbox.rnmbx.events.EventEmitter
|
|
@@ -16,7 +17,7 @@ data class LocationEventThrottle(var waitBetweenEvents: Double? = null, var last
|
|
|
16
17
|
|
|
17
18
|
@ReactModule(name = RNMBXLocationModule.REACT_CLASS)
|
|
18
19
|
class RNMBXLocationModule(reactContext: ReactApplicationContext) :
|
|
19
|
-
|
|
20
|
+
NativeRNMBXLocationModuleSpec(reactContext) {
|
|
20
21
|
private var isEnabled = false
|
|
21
22
|
private var mMinDisplacement = 0f
|
|
22
23
|
private val locationManager: LocationManager? = getInstance(reactContext)
|
|
@@ -57,8 +58,12 @@ class RNMBXLocationModule(reactContext: ReactApplicationContext) :
|
|
|
57
58
|
mLastLocation = location
|
|
58
59
|
if (changed && (location != null) && shouldSendLocationEvent()) {
|
|
59
60
|
val locationEvent = LocationEvent(location)
|
|
61
|
+
|
|
62
|
+
emitOnLocationUpdate(locationEvent.toJSON())
|
|
63
|
+
/*
|
|
60
64
|
val emitter = EventEmitter.getModuleEmitter(reactApplicationContext)
|
|
61
65
|
emitter?.emit(LOCATION_UPDATE, locationEvent.payload)
|
|
66
|
+
*/
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
69
|
}
|
|
@@ -72,15 +77,16 @@ class RNMBXLocationModule(reactContext: ReactApplicationContext) :
|
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
@ReactMethod
|
|
75
|
-
fun start(minDisplacement:
|
|
80
|
+
override fun start(minDisplacement: Double) {
|
|
76
81
|
isEnabled = true
|
|
77
|
-
mMinDisplacement = minDisplacement
|
|
82
|
+
mMinDisplacement = minDisplacement.toFloat()
|
|
78
83
|
locationManager?.startCounted()
|
|
79
84
|
startLocationManager()
|
|
80
85
|
}
|
|
81
86
|
|
|
82
87
|
@ReactMethod
|
|
83
|
-
fun setMinDisplacement(
|
|
88
|
+
override fun setMinDisplacement(value: Double) {
|
|
89
|
+
val minDisplacement = value.toFloat()
|
|
84
90
|
if (mMinDisplacement == minDisplacement) return
|
|
85
91
|
mMinDisplacement = minDisplacement
|
|
86
92
|
if (isEnabled) {
|
|
@@ -91,17 +97,17 @@ class RNMBXLocationModule(reactContext: ReactApplicationContext) :
|
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
@ReactMethod
|
|
94
|
-
fun setRequestsAlwaysUse(requestsAlwaysUse: Boolean) {
|
|
100
|
+
override fun setRequestsAlwaysUse(requestsAlwaysUse: Boolean) {
|
|
95
101
|
// IOS only. Ignored on Android.
|
|
96
102
|
}
|
|
97
103
|
|
|
98
104
|
@ReactMethod
|
|
99
|
-
fun stop() {
|
|
105
|
+
override fun stop() {
|
|
100
106
|
stopLocationManager()
|
|
101
107
|
}
|
|
102
108
|
|
|
103
109
|
@ReactMethod
|
|
104
|
-
fun getLastKnownLocation(promise: Promise) {
|
|
110
|
+
override fun getLastKnownLocation(promise: Promise) {
|
|
105
111
|
locationManager!!.getLastKnownLocation(
|
|
106
112
|
object : LocationEngineCallback {
|
|
107
113
|
override fun onSuccess(result: LocationEngineResult) {
|
|
@@ -121,6 +127,10 @@ class RNMBXLocationModule(reactContext: ReactApplicationContext) :
|
|
|
121
127
|
)
|
|
122
128
|
}
|
|
123
129
|
|
|
130
|
+
override fun simulateHeading(changesPerSecond: Double, increment: Double) {
|
|
131
|
+
// ios only
|
|
132
|
+
}
|
|
133
|
+
|
|
124
134
|
@ReactMethod
|
|
125
135
|
fun addListener(eventName: String?) {
|
|
126
136
|
// Required for rn built in EventEmitter Calls.
|
|
@@ -150,10 +160,11 @@ class RNMBXLocationModule(reactContext: ReactApplicationContext) :
|
|
|
150
160
|
|
|
151
161
|
// region Location event throttle
|
|
152
162
|
@ReactMethod
|
|
153
|
-
fun setLocationEventThrottle(throttleValue: Double) {
|
|
163
|
+
override fun setLocationEventThrottle(throttleValue: Double) {
|
|
154
164
|
if (throttleValue > 0) {
|
|
155
165
|
locationEventThrottle.waitBetweenEvents = throttleValue;
|
|
156
166
|
} else {
|
|
167
|
+
|
|
157
168
|
locationEventThrottle.waitBetweenEvents = null
|
|
158
169
|
}
|
|
159
170
|
}
|
|
@@ -183,4 +194,4 @@ class RNMBXLocationModule(reactContext: ReactApplicationContext) :
|
|
|
183
194
|
const val REACT_CLASS = "RNMBXLocationModule"
|
|
184
195
|
const val LOCATION_UPDATE = "MapboxUserLocationUpdate"
|
|
185
196
|
}
|
|
186
|
-
}
|
|
197
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJavaSpec.js
|
|
9
|
+
*
|
|
10
|
+
* @nolint
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
package com.rnmapbox.rnmbx;
|
|
14
|
+
|
|
15
|
+
import com.facebook.proguard.annotations.DoNotStrip;
|
|
16
|
+
import com.facebook.react.bridge.Promise;
|
|
17
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
18
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
19
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
20
|
+
import com.facebook.react.bridge.ReactModuleWithSpec;
|
|
21
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
22
|
+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
|
23
|
+
import javax.annotation.Nonnull;
|
|
24
|
+
|
|
25
|
+
public abstract class NativeRNMBXLocationModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
|
|
26
|
+
public static final String NAME = "RNMBXLocationModule";
|
|
27
|
+
|
|
28
|
+
public NativeRNMBXLocationModuleSpec(ReactApplicationContext reactContext) {
|
|
29
|
+
super(reactContext);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@Override
|
|
33
|
+
public @Nonnull String getName() {
|
|
34
|
+
return NAME;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
protected final void emitOnLocationUpdate(ReadableMap value) {
|
|
38
|
+
mEventEmitterCallback.invoke("onLocationUpdate", value);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@ReactMethod
|
|
42
|
+
@DoNotStrip
|
|
43
|
+
public abstract void start(double minDisplacement);
|
|
44
|
+
|
|
45
|
+
@ReactMethod
|
|
46
|
+
@DoNotStrip
|
|
47
|
+
public abstract void stop();
|
|
48
|
+
|
|
49
|
+
@ReactMethod
|
|
50
|
+
@DoNotStrip
|
|
51
|
+
public abstract void setRequestsAlwaysUse(boolean requestsAlwaysUse);
|
|
52
|
+
|
|
53
|
+
@ReactMethod
|
|
54
|
+
@DoNotStrip
|
|
55
|
+
public abstract void setMinDisplacement(double minDisplacement);
|
|
56
|
+
|
|
57
|
+
@ReactMethod
|
|
58
|
+
@DoNotStrip
|
|
59
|
+
public abstract void getLastKnownLocation(Promise promise);
|
|
60
|
+
|
|
61
|
+
@ReactMethod
|
|
62
|
+
@DoNotStrip
|
|
63
|
+
public abstract void simulateHeading(double changesPerSecond, double increment);
|
|
64
|
+
|
|
65
|
+
@ReactMethod
|
|
66
|
+
@DoNotStrip
|
|
67
|
+
public abstract void setLocationEventThrottle(double throttle);
|
|
68
|
+
}
|
|
@@ -5,9 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.LocationModuleEventEmitter = exports.LocationManager = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
+
var _NativeRNMBXLocationModule = _interopRequireDefault(require("../../specs/NativeRNMBXLocationModule"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
10
|
const MapboxGL = _reactNative.NativeModules.RNMBXModule;
|
|
9
|
-
const MapboxGLLocationManager = _reactNative.
|
|
10
|
-
|
|
11
|
+
const MapboxGLLocationManager = _reactNative.Platform.select({
|
|
12
|
+
ios: _reactNative.NativeModules.RNMBXLocationModule,
|
|
13
|
+
android: _NativeRNMBXLocationModule.default
|
|
14
|
+
});
|
|
15
|
+
const LocationModuleEventEmitter = exports.LocationModuleEventEmitter = new _reactNative.NativeEventEmitter(
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
+
MapboxGLLocationManager);
|
|
11
18
|
|
|
12
19
|
/**
|
|
13
20
|
* Location sent by locationManager
|
|
@@ -90,7 +97,13 @@ class LocationManager {
|
|
|
90
97
|
}
|
|
91
98
|
if (!this._isListening) {
|
|
92
99
|
MapboxGLLocationManager.start(validDisplacement);
|
|
93
|
-
|
|
100
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
101
|
+
this.subscription = LocationModuleEventEmitter.addListener(MapboxGL.LocationCallbackName.Update, this._onUpdate);
|
|
102
|
+
} else {
|
|
103
|
+
this.subscription = MapboxGLLocationManager.onLocationUpdate(location => {
|
|
104
|
+
this._onUpdate(location.payload);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
94
107
|
this._isListening = true;
|
|
95
108
|
}
|
|
96
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","MapboxGL","NativeModules","RNMBXModule","MapboxGLLocationManager","RNMBXLocationModule","LocationModuleEventEmitter","exports","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","validDisplacement","undefined","_minDisplacement","LocationCallbackName","Update","remove","setMinDisplacement","minDisplacement","setRequestsAlwaysUse","requestsAlwaysUse","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeRNMBXLocationModule","_interopRequireDefault","e","__esModule","default","MapboxGL","NativeModules","RNMBXModule","MapboxGLLocationManager","Platform","select","ios","RNMBXLocationModule","android","NativeRNMBXLocationModule","LocationModuleEventEmitter","exports","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","validDisplacement","undefined","_minDisplacement","OS","LocationCallbackName","Update","onLocationUpdate","location","payload","remove","setMinDisplacement","minDisplacement","setRequestsAlwaysUse","requestsAlwaysUse","forEach","_simulateHeading","changesPerSecond","increment","simulateHeading","setLocationEventThrottle","throttleValue","_default"],"sourceRoot":"../../../../src","sources":["modules/location/locationManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('RNMBXLocationModule');
|
|
9
|
+
//# sourceMappingURL=NativeRNMBXLocationModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeRNMBXLocationModule.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAA+D,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA8BhDC,gCAAmB,CAACC,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { NativeModules, NativeEventEmitter, AppState } from 'react-native';
|
|
3
|
+
import { NativeModules, NativeEventEmitter, AppState, Platform } from 'react-native';
|
|
4
|
+
import NativeRNMBXLocationModule from '../../specs/NativeRNMBXLocationModule';
|
|
4
5
|
const MapboxGL = NativeModules.RNMBXModule;
|
|
5
|
-
const MapboxGLLocationManager =
|
|
6
|
-
|
|
6
|
+
const MapboxGLLocationManager = Platform.select({
|
|
7
|
+
ios: NativeModules.RNMBXLocationModule,
|
|
8
|
+
android: NativeRNMBXLocationModule
|
|
9
|
+
});
|
|
10
|
+
export const LocationModuleEventEmitter = new NativeEventEmitter(
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
MapboxGLLocationManager);
|
|
7
13
|
|
|
8
14
|
/**
|
|
9
15
|
* Location sent by locationManager
|
|
@@ -86,7 +92,13 @@ export class LocationManager {
|
|
|
86
92
|
}
|
|
87
93
|
if (!this._isListening) {
|
|
88
94
|
MapboxGLLocationManager.start(validDisplacement);
|
|
89
|
-
|
|
95
|
+
if (Platform.OS === 'ios') {
|
|
96
|
+
this.subscription = LocationModuleEventEmitter.addListener(MapboxGL.LocationCallbackName.Update, this._onUpdate);
|
|
97
|
+
} else {
|
|
98
|
+
this.subscription = MapboxGLLocationManager.onLocationUpdate(location => {
|
|
99
|
+
this._onUpdate(location.payload);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
90
102
|
this._isListening = true;
|
|
91
103
|
}
|
|
92
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","AppState","MapboxGL","RNMBXModule","MapboxGLLocationManager","RNMBXLocationModule","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","validDisplacement","undefined","_minDisplacement","LocationCallbackName","Update","remove","setMinDisplacement","minDisplacement","setRequestsAlwaysUse","requestsAlwaysUse","
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","AppState","Platform","NativeRNMBXLocationModule","MapboxGL","RNMBXModule","MapboxGLLocationManager","select","ios","RNMBXLocationModule","android","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","validDisplacement","undefined","_minDisplacement","OS","LocationCallbackName","Update","onLocationUpdate","location","payload","remove","setMinDisplacement","minDisplacement","setRequestsAlwaysUse","requestsAlwaysUse","forEach","_simulateHeading","changesPerSecond","increment","simulateHeading","setLocationEventThrottle","throttleValue"],"sourceRoot":"../../../../src","sources":["modules/location/locationManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeRNMBXLocationModule.ts"],"mappings":";;AAAA,SAAsBA,mBAAmB,QAAO,cAAc;AA8B9D,eAAeA,mBAAmB,CAACC,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NativeEventEmitter, NativeEventSubscription, EmitterSubscription, type AppStateStatus } from 'react-native';
|
|
1
|
+
import { NativeEventEmitter, NativeEventSubscription, EmitterSubscription, type AppStateStatus, EventSubscription } from 'react-native';
|
|
2
2
|
export declare const LocationModuleEventEmitter: NativeEventEmitter;
|
|
3
3
|
/**
|
|
4
4
|
* Location sent by locationManager
|
|
@@ -52,7 +52,7 @@ export declare class LocationManager {
|
|
|
52
52
|
_lastKnownLocation: Location | null;
|
|
53
53
|
_isListening: boolean;
|
|
54
54
|
_requestsAlwaysUse: boolean;
|
|
55
|
-
subscription: EmitterSubscription | null;
|
|
55
|
+
subscription: EmitterSubscription | EventSubscription | null;
|
|
56
56
|
_appStateListener: NativeEventSubscription;
|
|
57
57
|
_minDisplacement?: number;
|
|
58
58
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locationManager.d.ts","sourceRoot":"","sources":["../../../../../src/modules/location/locationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAElB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"locationManager.d.ts","sourceRoot":"","sources":["../../../../../src/modules/location/locationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAElB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,cAAc,EAEnB,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAOrB,eAAO,MAAM,0BAA0B,oBAGtC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC;IAC7C,kBAAkB,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC7D,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;;IAgBpB,oBAAoB;IAuB1B,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI;IAalD,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI;IAOrD,kBAAkB;IAKlB,qBAAqB,CAAC,QAAQ,EAAE,cAAc;IAY9C,KAAK,CAAC,YAAY,SAAK;IA8BvB,IAAI;IAUJ,kBAAkB,CAAC,eAAe,EAAE,MAAM;IAK1C,oBAAoB,CAAC,iBAAiB,EAAE,OAAO;IAK/C,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAM5B;;OAEG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI5D;;;;;;;;;OASG;IACH,wBAAwB,CAAC,aAAa,EAAE,MAAM;CAG/C;;AAED,wBAAqC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TurboModule } from "react-native";
|
|
2
|
+
import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
|
+
type LocationEvent = {
|
|
4
|
+
type: string;
|
|
5
|
+
payload: {
|
|
6
|
+
coords: {
|
|
7
|
+
latitude: number;
|
|
8
|
+
longitude: number;
|
|
9
|
+
altitude: number;
|
|
10
|
+
accuracy: number;
|
|
11
|
+
speed: number;
|
|
12
|
+
heading: number;
|
|
13
|
+
};
|
|
14
|
+
timestamp: number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export interface Spec extends TurboModule {
|
|
18
|
+
start(minDisplacement: number): void;
|
|
19
|
+
stop(): void;
|
|
20
|
+
setRequestsAlwaysUse(requestsAlwaysUse: boolean): void;
|
|
21
|
+
setMinDisplacement(minDisplacement: number): void;
|
|
22
|
+
getLastKnownLocation(): Promise<LocationEvent['payload']>;
|
|
23
|
+
simulateHeading(changesPerSecond: number, increment: number): void;
|
|
24
|
+
setLocationEventThrottle(throttle: number): void;
|
|
25
|
+
readonly onLocationUpdate: EventEmitter<LocationEvent>;
|
|
26
|
+
}
|
|
27
|
+
declare const _default: Spec;
|
|
28
|
+
export default _default;
|
|
29
|
+
//# sourceMappingURL=NativeRNMBXLocationModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeRNMBXLocationModule.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeRNMBXLocationModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QACP,MAAM,EAAE;YACN,QAAQ,EAAE,MAAM,CAAA;YAChB,SAAS,EAAE,MAAM,CAAA;YACjB,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,KAAK,EAAE,MAAM,CAAA;YACb,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;QACD,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,KAAK,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,IAAI,IAAI,IAAI,CAAA;IACZ,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAA;IACtD,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IACjD,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;IACzD,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAClE,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAEhD,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;CACvD;;AAED,wBAA6E"}
|
package/package.json
CHANGED
|
@@ -5,13 +5,18 @@ import {
|
|
|
5
5
|
NativeEventSubscription,
|
|
6
6
|
EmitterSubscription,
|
|
7
7
|
type AppStateStatus,
|
|
8
|
-
|
|
8
|
+
Platform,
|
|
9
|
+
EventSubscription,
|
|
10
|
+
} from 'react-native'
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
import NativeRNMBXLocationModule from '../../specs/NativeRNMBXLocationModule'
|
|
13
|
+
|
|
14
|
+
const MapboxGL = NativeModules.RNMBXModule
|
|
15
|
+
const MapboxGLLocationManager: typeof NativeRNMBXLocationModule = Platform.select({ios: NativeModules.RNMBXLocationModule, android: NativeRNMBXLocationModule})
|
|
12
16
|
|
|
13
17
|
export const LocationModuleEventEmitter = new NativeEventEmitter(
|
|
14
|
-
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
+
MapboxGLLocationManager as any,
|
|
15
20
|
);
|
|
16
21
|
|
|
17
22
|
/**
|
|
@@ -74,7 +79,7 @@ export class LocationManager {
|
|
|
74
79
|
_lastKnownLocation: Location | null;
|
|
75
80
|
_isListening: boolean;
|
|
76
81
|
_requestsAlwaysUse: boolean;
|
|
77
|
-
subscription: EmitterSubscription | null;
|
|
82
|
+
subscription: EmitterSubscription | EventSubscription | null;
|
|
78
83
|
_appStateListener: NativeEventSubscription;
|
|
79
84
|
_minDisplacement?: number;
|
|
80
85
|
|
|
@@ -167,10 +172,16 @@ export class LocationManager {
|
|
|
167
172
|
if (!this._isListening) {
|
|
168
173
|
MapboxGLLocationManager.start(validDisplacement);
|
|
169
174
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
175
|
+
if (Platform.OS === 'ios') {
|
|
176
|
+
this.subscription = LocationModuleEventEmitter.addListener(
|
|
177
|
+
MapboxGL.LocationCallbackName.Update,
|
|
178
|
+
this._onUpdate,
|
|
179
|
+
);
|
|
180
|
+
} else {
|
|
181
|
+
this.subscription = MapboxGLLocationManager.onLocationUpdate((location) => {
|
|
182
|
+
this._onUpdate(location.payload);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
174
185
|
|
|
175
186
|
this._isListening = true;
|
|
176
187
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TurboModule, TurboModuleRegistry} from "react-native";
|
|
2
|
+
import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
|
+
|
|
4
|
+
type LocationEvent = {
|
|
5
|
+
type: string //"userlocationdupdated"
|
|
6
|
+
payload: {
|
|
7
|
+
coords: {
|
|
8
|
+
latitude: number
|
|
9
|
+
longitude: number
|
|
10
|
+
altitude: number
|
|
11
|
+
accuracy: number
|
|
12
|
+
speed: number
|
|
13
|
+
heading: number
|
|
14
|
+
}
|
|
15
|
+
timestamp: number
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface Spec extends TurboModule {
|
|
20
|
+
start(minDisplacement: number): void
|
|
21
|
+
stop(): void
|
|
22
|
+
setRequestsAlwaysUse(requestsAlwaysUse: boolean): void
|
|
23
|
+
setMinDisplacement(minDisplacement: number): void
|
|
24
|
+
getLastKnownLocation(): Promise<LocationEvent['payload']>
|
|
25
|
+
simulateHeading(changesPerSecond: number, increment: number): void
|
|
26
|
+
setLocationEventThrottle(throttle: number): void
|
|
27
|
+
|
|
28
|
+
readonly onLocationUpdate: EventEmitter<LocationEvent>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('RNMBXLocationModule');
|
|
32
|
+
|