@maplibre/maplibre-react-native 11.0.0-alpha.12 → 11.0.0-alpha.14
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/org/maplibre/reactnative/MLRNPackage.kt +5 -5
- package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCamera.kt +27 -39
- package/android/src/main/java/org/maplibre/reactnative/events/constants/EventKeys.java +0 -4
- package/android/src/main/java/org/maplibre/reactnative/events/constants/EventTypes.java +0 -1
- package/android/src/main/java/org/maplibre/reactnative/location/LocationManager.kt +165 -0
- package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationMode.kt +0 -1
- package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationState.kt +15 -0
- package/android/src/main/java/org/maplibre/reactnative/location/UserLocation.kt +40 -0
- package/android/src/main/java/org/maplibre/reactnative/location/engine/DefaultLocationEngineProvider.kt +18 -0
- package/android/src/main/java/org/maplibre/reactnative/location/engine/LocationEngineProvidable.kt +8 -0
- package/android/src/main/java/org/maplibre/reactnative/modules/MLRNLocationModule.kt +153 -0
- package/android/src/main/java/org/maplibre/reactnative/modules/MLRNModule.java +0 -5
- package/android/src/main/location-engine-default/org/maplibre/reactnative/location/engine/LocationEngineProvider.kt +10 -0
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineImpl.kt +131 -0
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineProvider.kt +28 -0
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/LocationEngineProvider.kt +10 -0
- package/ios/components/camera/MLRNCameraComponentView.mm +5 -1
- package/ios/modules/location/MLRNLocation.h +0 -1
- package/ios/modules/location/MLRNLocation.m +3 -3
- package/ios/modules/location/MLRNLocationManager.h +1 -3
- package/ios/modules/location/MLRNLocationManager.m +1 -4
- package/ios/modules/location/MLRNLocationManagerDelegate.h +0 -2
- package/ios/modules/location/MLRNLocationModule.h +4 -4
- package/ios/modules/location/MLRNLocationModule.mm +56 -0
- package/ios/modules/mlrn/MLRNModule.m +0 -5
- package/ios/utils/MLRNEventTypes.h +0 -2
- package/ios/utils/MLRNEventTypes.m +0 -2
- package/lib/commonjs/components/camera/Camera.js.map +1 -1
- package/lib/commonjs/components/camera/CameraNativeComponent.ts +6 -1
- package/lib/commonjs/components/user-location/UserLocation.js +3 -3
- package/lib/commonjs/components/user-location/UserLocation.js.map +1 -1
- package/lib/commonjs/index.js +2 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/modules/location/LocationManager.js +46 -57
- package/lib/commonjs/modules/location/LocationManager.js.map +1 -1
- package/lib/commonjs/modules/location/NativeLocationModule.js +9 -0
- package/lib/commonjs/modules/location/NativeLocationModule.js.map +1 -0
- package/lib/commonjs/modules/location/requestAndroidLocationPermissions.js +14 -0
- package/lib/commonjs/modules/location/requestAndroidLocationPermissions.js.map +1 -0
- package/lib/module/components/camera/Camera.js.map +1 -1
- package/lib/module/components/camera/CameraNativeComponent.ts +6 -1
- package/lib/module/components/user-location/UserLocation.js +3 -3
- package/lib/module/components/user-location/UserLocation.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/location/LocationManager.js +45 -57
- package/lib/module/modules/location/LocationManager.js.map +1 -1
- package/lib/module/modules/location/NativeLocationModule.js +5 -0
- package/lib/module/modules/location/NativeLocationModule.js.map +1 -0
- package/lib/module/modules/location/requestAndroidLocationPermissions.js +11 -0
- package/lib/module/modules/location/requestAndroidLocationPermissions.js.map +1 -0
- package/lib/typescript/commonjs/src/components/camera/Camera.d.ts +1 -1
- package/lib/typescript/commonjs/src/components/camera/Camera.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/camera/CameraNativeComponent.d.ts +2 -1
- package/lib/typescript/commonjs/src/components/camera/CameraNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/components/user-location/UserLocation.d.ts +3 -3
- package/lib/typescript/commonjs/src/components/user-location/UserLocation.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +2 -2
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/location/LocationManager.d.ts +42 -22
- package/lib/typescript/commonjs/src/modules/location/LocationManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/location/NativeLocationModule.d.ts +24 -0
- package/lib/typescript/commonjs/src/modules/location/NativeLocationModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/location/requestAndroidLocationPermissions.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/location/requestAndroidLocationPermissions.d.ts.map +1 -0
- package/lib/typescript/module/src/components/camera/Camera.d.ts +1 -1
- package/lib/typescript/module/src/components/camera/Camera.d.ts.map +1 -1
- package/lib/typescript/module/src/components/camera/CameraNativeComponent.d.ts +2 -1
- package/lib/typescript/module/src/components/camera/CameraNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/components/user-location/UserLocation.d.ts +3 -3
- package/lib/typescript/module/src/components/user-location/UserLocation.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +2 -2
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/location/LocationManager.d.ts +42 -22
- package/lib/typescript/module/src/modules/location/LocationManager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/location/NativeLocationModule.d.ts +24 -0
- package/lib/typescript/module/src/modules/location/NativeLocationModule.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/location/requestAndroidLocationPermissions.d.ts +5 -0
- package/lib/typescript/module/src/modules/location/requestAndroidLocationPermissions.d.ts.map +1 -0
- package/package.json +5 -3
- package/src/components/camera/Camera.tsx +2 -6
- package/src/components/camera/CameraNativeComponent.ts +6 -1
- package/src/components/user-location/UserLocation.tsx +9 -7
- package/src/index.ts +3 -2
- package/src/modules/location/LocationManager.ts +90 -97
- package/src/modules/location/NativeLocationModule.ts +31 -0
- package/src/modules/location/requestAndroidLocationPermissions.ts +8 -0
- package/android/src/main/java/org/maplibre/reactnative/events/LocationEvent.java +0 -100
- package/android/src/main/java/org/maplibre/reactnative/events/TrackUserLocationChangeEvent.kt +0 -24
- package/android/src/main/java/org/maplibre/reactnative/location/LocationManager.java +0 -160
- package/android/src/main/java/org/maplibre/reactnative/location/TrackUserLocationState.java +0 -15
- package/android/src/main/java/org/maplibre/reactnative/location/UserLocation.java +0 -59
- package/android/src/main/java/org/maplibre/reactnative/location/engine/DefaultLocationEngineProvider.java +0 -18
- package/android/src/main/java/org/maplibre/reactnative/location/engine/LocationEngineProvidable.java +0 -9
- package/android/src/main/java/org/maplibre/reactnative/modules/MLRNLocationModule.java +0 -158
- package/android/src/main/location-engine-default/org/maplibre/reactnative/location/engine/LocationEngineProvider.java +0 -12
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineImpl.java +0 -151
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/GoogleLocationEngineProvider.java +0 -24
- package/android/src/main/location-engine-google/org/maplibre/reactnative/location/engine/LocationEngineProvider.java +0 -12
- package/ios/modules/location/MLRNLocationModule.m +0 -76
- package/lib/commonjs/requestAndroidLocationPermissions.js +0 -25
- package/lib/commonjs/requestAndroidLocationPermissions.js.map +0 -1
- package/lib/module/requestAndroidLocationPermissions.js +0 -21
- package/lib/module/requestAndroidLocationPermissions.js.map +0 -1
- package/lib/typescript/commonjs/src/requestAndroidLocationPermissions.d.ts +0 -2
- package/lib/typescript/commonjs/src/requestAndroidLocationPermissions.d.ts.map +0 -1
- package/lib/typescript/module/src/requestAndroidLocationPermissions.d.ts +0 -2
- package/lib/typescript/module/src/requestAndroidLocationPermissions.d.ts.map +0 -1
- package/src/requestAndroidLocationPermissions.ts +0 -29
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
package org.maplibre.reactnative.location.engine
|
|
2
|
+
|
|
3
|
+
import android.annotation.SuppressLint
|
|
4
|
+
import android.app.PendingIntent
|
|
5
|
+
import android.content.Context
|
|
6
|
+
import android.location.Location
|
|
7
|
+
import android.os.Looper
|
|
8
|
+
import androidx.annotation.VisibleForTesting
|
|
9
|
+
import com.google.android.gms.location.FusedLocationProviderClient
|
|
10
|
+
import com.google.android.gms.location.LocationCallback
|
|
11
|
+
import com.google.android.gms.location.LocationRequest
|
|
12
|
+
import com.google.android.gms.location.LocationResult
|
|
13
|
+
import com.google.android.gms.location.LocationServices
|
|
14
|
+
import com.google.android.gms.location.Priority
|
|
15
|
+
import com.google.android.gms.tasks.OnFailureListener
|
|
16
|
+
import com.google.android.gms.tasks.OnSuccessListener
|
|
17
|
+
import org.maplibre.android.location.engine.LocationEngineCallback
|
|
18
|
+
import org.maplibre.android.location.engine.LocationEngineImpl
|
|
19
|
+
import org.maplibre.android.location.engine.LocationEngineRequest
|
|
20
|
+
import org.maplibre.android.location.engine.LocationEngineResult
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Wraps implementation of Fused Location Provider
|
|
24
|
+
*/
|
|
25
|
+
class GoogleLocationEngineImpl : LocationEngineImpl<LocationCallback?> {
|
|
26
|
+
private val fusedLocationProviderClient: FusedLocationProviderClient
|
|
27
|
+
|
|
28
|
+
@VisibleForTesting
|
|
29
|
+
internal constructor(fusedLocationProviderClient: FusedLocationProviderClient) {
|
|
30
|
+
this.fusedLocationProviderClient = fusedLocationProviderClient
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
constructor(context: Context) {
|
|
34
|
+
this.fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(context)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun createListener(callback: LocationEngineCallback<LocationEngineResult?>): LocationCallback {
|
|
38
|
+
return GoogleLocationEngineCallbackTransport(callback)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@SuppressLint("MissingPermission")
|
|
42
|
+
@Throws(SecurityException::class)
|
|
43
|
+
override fun getLastLocation(callback: LocationEngineCallback<LocationEngineResult?>) {
|
|
44
|
+
val transport = GoogleLastLocationEngineCallbackTransport(callback)
|
|
45
|
+
fusedLocationProviderClient.lastLocation.addOnSuccessListener(transport)
|
|
46
|
+
.addOnFailureListener(transport)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@SuppressLint("MissingPermission")
|
|
50
|
+
@Throws(SecurityException::class)
|
|
51
|
+
override fun requestLocationUpdates(
|
|
52
|
+
request: LocationEngineRequest, listener: LocationCallback, looper: Looper?
|
|
53
|
+
) {
|
|
54
|
+
fusedLocationProviderClient.requestLocationUpdates(
|
|
55
|
+
toGMSLocationRequest(request), listener, looper
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@SuppressLint("MissingPermission")
|
|
60
|
+
@Throws(SecurityException::class)
|
|
61
|
+
override fun requestLocationUpdates(
|
|
62
|
+
request: LocationEngineRequest, pendingIntent: PendingIntent
|
|
63
|
+
) {
|
|
64
|
+
fusedLocationProviderClient.requestLocationUpdates(
|
|
65
|
+
toGMSLocationRequest(request), pendingIntent
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
override fun removeLocationUpdates(listener: LocationCallback?) {
|
|
70
|
+
if (listener != null) {
|
|
71
|
+
fusedLocationProviderClient.removeLocationUpdates(listener)
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
override fun removeLocationUpdates(pendingIntent: PendingIntent?) {
|
|
76
|
+
if (pendingIntent != null) {
|
|
77
|
+
fusedLocationProviderClient.removeLocationUpdates(pendingIntent)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private class GoogleLocationEngineCallbackTransport(private val callback: LocationEngineCallback<LocationEngineResult?>) :
|
|
82
|
+
LocationCallback() {
|
|
83
|
+
override fun onLocationResult(locationResult: LocationResult) {
|
|
84
|
+
super.onLocationResult(locationResult)
|
|
85
|
+
val locations = locationResult.locations
|
|
86
|
+
if (!locations.isEmpty()) {
|
|
87
|
+
callback.onSuccess(LocationEngineResult.create(locations))
|
|
88
|
+
} else {
|
|
89
|
+
callback.onFailure(Exception("Unavailable location"))
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@VisibleForTesting
|
|
95
|
+
internal class GoogleLastLocationEngineCallbackTransport
|
|
96
|
+
(private val callback: LocationEngineCallback<LocationEngineResult?>) :
|
|
97
|
+
OnSuccessListener<Location?>, OnFailureListener {
|
|
98
|
+
override fun onSuccess(location: Location?) {
|
|
99
|
+
callback.onSuccess(
|
|
100
|
+
if (location != null) LocationEngineResult.create(location) else LocationEngineResult.create(
|
|
101
|
+
mutableListOf<Location?>()
|
|
102
|
+
)
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
override fun onFailure(e: Exception) {
|
|
107
|
+
callback.onFailure(e)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
companion object {
|
|
112
|
+
private fun toGMSLocationRequest(request: LocationEngineRequest): LocationRequest {
|
|
113
|
+
val builder = LocationRequest.Builder(request.interval)
|
|
114
|
+
builder.setMinUpdateIntervalMillis(request.fastestInterval)
|
|
115
|
+
builder.setMinUpdateDistanceMeters(request.displacement)
|
|
116
|
+
builder.setMaxUpdateDelayMillis(request.maxWaitTime)
|
|
117
|
+
builder.setPriority(toGMSLocationPriority(request.priority))
|
|
118
|
+
return builder.build()
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private fun toGMSLocationPriority(enginePriority: Int): Int {
|
|
122
|
+
return when (enginePriority) {
|
|
123
|
+
LocationEngineRequest.PRIORITY_HIGH_ACCURACY -> Priority.PRIORITY_HIGH_ACCURACY
|
|
124
|
+
LocationEngineRequest.PRIORITY_BALANCED_POWER_ACCURACY -> Priority.PRIORITY_BALANCED_POWER_ACCURACY
|
|
125
|
+
LocationEngineRequest.PRIORITY_LOW_POWER -> Priority.PRIORITY_LOW_POWER
|
|
126
|
+
LocationEngineRequest.PRIORITY_NO_POWER -> Priority.PRIORITY_PASSIVE
|
|
127
|
+
else -> Priority.PRIORITY_PASSIVE
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
package org.maplibre.reactnative.location.engine
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.util.Log
|
|
5
|
+
import com.google.android.gms.common.ConnectionResult
|
|
6
|
+
import com.google.android.gms.common.GoogleApiAvailability
|
|
7
|
+
import com.google.android.gms.location.LocationCallback
|
|
8
|
+
import org.maplibre.android.location.engine.LocationEngine
|
|
9
|
+
import org.maplibre.android.location.engine.LocationEngineProxy
|
|
10
|
+
|
|
11
|
+
class GoogleLocationEngineProvider : LocationEngineProvidable {
|
|
12
|
+
override fun getLocationEngine(context: Context): LocationEngine {
|
|
13
|
+
if (GoogleApiAvailability.getInstance()
|
|
14
|
+
.isGooglePlayServicesAvailable(context) == ConnectionResult.SUCCESS
|
|
15
|
+
) {
|
|
16
|
+
val locationEngine: LocationEngine =
|
|
17
|
+
LocationEngineProxy<LocationCallback?>(GoogleLocationEngineImpl(context.applicationContext))
|
|
18
|
+
Log.d(LOG_TAG, "GoogleLocationEngine will be used.")
|
|
19
|
+
return locationEngine
|
|
20
|
+
} else {
|
|
21
|
+
return DefaultLocationEngineProvider().getLocationEngine(context)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
companion object {
|
|
26
|
+
private const val LOG_TAG = "GoogleLocationEngineProvider"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
package org.maplibre.reactnative.location.engine
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import org.maplibre.android.location.engine.LocationEngine
|
|
5
|
+
|
|
6
|
+
class LocationEngineProvider : LocationEngineProvidable {
|
|
7
|
+
override fun getLocationEngine(context: Context): LocationEngine {
|
|
8
|
+
return GoogleLocationEngineProvider().getLocationEngine(context)
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -42,8 +42,12 @@ using namespace facebook::react;
|
|
|
42
42
|
__typeof__(self) strongSelf = weakSelf;
|
|
43
43
|
|
|
44
44
|
if (strongSelf != nullptr && strongSelf->_eventEmitter != nullptr) {
|
|
45
|
+
NSString *trackUserLocation = event[@"trackUserLocation"];
|
|
46
|
+
|
|
45
47
|
facebook::react::MLRNCameraEventEmitter::OnTrackUserLocationChange eventStruct{
|
|
46
|
-
[
|
|
48
|
+
[trackUserLocation isKindOfClass:[NSString class]]
|
|
49
|
+
? folly::dynamic([trackUserLocation UTF8String])
|
|
50
|
+
: folly::dynamic(nullptr),
|
|
47
51
|
};
|
|
48
52
|
std::dynamic_pointer_cast<const facebook::react::MLRNCameraEventEmitter>(
|
|
49
53
|
strongSelf->_eventEmitter)
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
NSMutableDictionary<NSString *, NSNumber *> *coords = [[NSMutableDictionary alloc] init];
|
|
9
9
|
coords[@"longitude"] = @(_location.coordinate.longitude);
|
|
10
10
|
coords[@"latitude"] = @(_location.coordinate.latitude);
|
|
11
|
-
coords[@"altitude"] = @(_location.altitude);
|
|
12
11
|
coords[@"accuracy"] = @(_location.horizontalAccuracy);
|
|
13
|
-
coords[@"
|
|
14
|
-
coords[@"
|
|
12
|
+
coords[@"altitude"] = @(_location.altitude);
|
|
13
|
+
coords[@"altitudeAccuracy"] = @(_location.verticalAccuracy);
|
|
14
|
+
coords[@"heading"] = @(_location.course);
|
|
15
15
|
coords[@"speed"] = @(_location.speed);
|
|
16
16
|
|
|
17
17
|
json[@"coords"] = coords;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
#import <Foundation/Foundation.h>
|
|
2
|
-
|
|
3
1
|
#import "MLRNLocation.h"
|
|
4
2
|
#import "MLRNLocationManagerDelegate.h"
|
|
5
3
|
|
|
@@ -11,7 +9,7 @@ typedef void (^MLRNLocationBlock)(MLRNLocation *location);
|
|
|
11
9
|
|
|
12
10
|
+ (id)sharedInstance;
|
|
13
11
|
|
|
14
|
-
- (void)start
|
|
12
|
+
- (void)start;
|
|
15
13
|
- (void)stop;
|
|
16
14
|
- (void)setMinDisplacement:(CLLocationDistance)minDisplacement;
|
|
17
15
|
- (BOOL)isEnabled;
|
|
@@ -36,9 +36,7 @@
|
|
|
36
36
|
[self stop];
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
- (void)start
|
|
40
|
-
displacement = minDisplacement;
|
|
41
|
-
|
|
39
|
+
- (void)start {
|
|
42
40
|
if ([self isEnabled]) {
|
|
43
41
|
return;
|
|
44
42
|
}
|
|
@@ -47,7 +45,6 @@
|
|
|
47
45
|
[self->locationManager requestWhenInUseAuthorization];
|
|
48
46
|
[self->locationManager startUpdatingLocation];
|
|
49
47
|
[self->locationManager startUpdatingHeading];
|
|
50
|
-
[self->locationManager setDistanceFilter:(minDisplacement)];
|
|
51
48
|
self->isListening = YES;
|
|
52
49
|
});
|
|
53
50
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#import <
|
|
2
|
-
#import <React/RCTBridgeModule.h>
|
|
3
|
-
#import <React/RCTEventEmitter.h>
|
|
1
|
+
#import <MapLibreReactNativeSpec/MapLibreReactNativeSpec.h>
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+
#import "MLRNLocationManagerDelegate.h"
|
|
6
4
|
|
|
5
|
+
@interface MLRNLocationModule
|
|
6
|
+
: NativeLocationModuleSpecBase <NativeLocationModuleSpec, MLRNLocationManagerDelegate>
|
|
7
7
|
@end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#import "MLRNLocationModule.h"
|
|
2
|
+
#import "MLRNEventTypes.h"
|
|
3
|
+
#import "MLRNLocation.h"
|
|
4
|
+
#import "MLRNLocationManager.h"
|
|
5
|
+
#import "MLRNLocationManagerDelegate.h"
|
|
6
|
+
|
|
7
|
+
@implementation MLRNLocationModule {
|
|
8
|
+
MLRNLocationManager *locationManager;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
+ (NSString *)moduleName {
|
|
12
|
+
return @"MLRNLocationModule";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
16
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
17
|
+
return std::make_shared<facebook::react::NativeLocationModuleSpecJSI>(params);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
- (instancetype)init {
|
|
21
|
+
if (self = [super init]) {
|
|
22
|
+
locationManager = [[MLRNLocationManager alloc] init];
|
|
23
|
+
locationManager.delegate = self;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return self;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (void)start {
|
|
30
|
+
[locationManager start];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- (void)pause {
|
|
34
|
+
[locationManager stop];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
- (void)stop {
|
|
38
|
+
[locationManager stop];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
- (void)setMinDisplacement:(CLLocationDistance)minDisplacement {
|
|
42
|
+
[locationManager setMinDisplacement:minDisplacement];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
- (void)getCurrentPosition:(nonnull RCTPromiseResolveBlock)resolve
|
|
46
|
+
reject:(nonnull RCTPromiseRejectBlock)reject {
|
|
47
|
+
MLRNLocation *lastKnownLocation = [locationManager getLastKnownLocation];
|
|
48
|
+
resolve(lastKnownLocation);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
- (void)locationManager:(MLRNLocationManager *)locationManager
|
|
52
|
+
didUpdateLocation:(MLRNLocation *)location {
|
|
53
|
+
[self emitOnUpdate:[location toJSON]];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@end
|
|
@@ -23,10 +23,6 @@ RCT_EXPORT_MODULE();
|
|
|
23
23
|
[eventTypes setObject:RCT_MLRN_PRESS forKey:@"Press"];
|
|
24
24
|
[eventTypes setObject:RCT_MLRN_LONG_PRESS forKey:@"LongPress"];
|
|
25
25
|
|
|
26
|
-
// location module events
|
|
27
|
-
NSMutableDictionary *locationModuleEvents = [[NSMutableDictionary alloc] init];
|
|
28
|
-
[locationModuleEvents setObject:RCT_MLRN_USER_LOCATION_UPDATE forKey:@"Update"];
|
|
29
|
-
|
|
30
26
|
// style sources
|
|
31
27
|
NSMutableDictionary *styleSourceConsts = [[NSMutableDictionary alloc] init];
|
|
32
28
|
[styleSourceConsts setObject:DEFAULT_SOURCE_ID forKey:@"DefaultSourceID"];
|
|
@@ -47,7 +43,6 @@ RCT_EXPORT_MODULE();
|
|
|
47
43
|
@"StyleSource" : styleSourceConsts,
|
|
48
44
|
@"OfflineCallbackName" : offlineModuleCallbackNames,
|
|
49
45
|
@"OfflinePackDownloadState" : offlinePackDownloadState,
|
|
50
|
-
@"LocationCallbackName" : locationModuleEvents
|
|
51
46
|
};
|
|
52
47
|
}
|
|
53
48
|
|
|
@@ -14,8 +14,6 @@ extern NSString *const RCT_MLRN_OFFLINE_TILE_LIMIT;
|
|
|
14
14
|
extern NSString *const RCT_MLRN_SHAPE_SOURCE_LAYER_PRESS;
|
|
15
15
|
extern NSString *const RCT_MLRN_VECTOR_SOURCE_LAYER_PRESS;
|
|
16
16
|
|
|
17
|
-
extern NSString *const RCT_MLRN_USER_LOCATION_UPDATE;
|
|
18
|
-
|
|
19
17
|
extern NSString *const RCT_MLRN_MISSING_IMAGE;
|
|
20
18
|
|
|
21
19
|
@end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_CameraNativeComponent","_interopRequireDefault","_NativeCameraModule","_jsxRuntime","e","__esModule","default","Camera","exports","memo","forwardRef","testID","initialViewState","minZoom","maxZoom","maxBounds","trackUserLocation","onTrackUserLocationChange","stop","ref","nativeRef","useRef","setStop","nodeHandle","findNodeHandle","current","Error","NativeCameraModule","useImperativeHandle","jumpTo","center","options","duration","easing","undefined","easeTo","flyTo","fitBounds","bounds","zoomTo","zoom","jsx"],"sourceRoot":"../../../../src","sources":["components/camera/Camera.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQA,IAAAC,YAAA,GAAAD,OAAA;AAMA,IAAAE,sBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAD,sBAAA,CAAAH,OAAA;AAAsD,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA+N/C,MAAMG,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAG,IAAAE,WAAI,eACxB,IAAAC,iBAAU,EACR,CACE;EACEC,MAAM;EACNC,gBAAgB;EAChBC,OAAO;EACPC,OAAO;EACPC,SAAS;EACTC,iBAAiB;EACjBC,yBAAyB;EACzB,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMC,SAAS,GAAG,IAAAC,aAAM,EAGtB,IAAI,CAAC;EAEP,MAAMC,OAA6B,GAAIJ,IAAI,IAAK;IAC9C,MAAMK,UAAU,GAAG,IAAAC,2BAAc,EAACJ,SAAS,CAACK,OAAO,CAAC;IAEpD,IAAI,CAACF,UAAU,EAAE;MACf,MAAM,IAAIG,KAAK,CACb,uEACF,CAAC;IACH;IAEA,OAAOC,2BAAkB,CAACL,OAAO,CAACC,UAAU,EAAEL,IAAI,CAAC;EACrD,CAAC;EAED,IAAAU,0BAAmB,EAACT,GAAG,EAAE,OAAO;IAC9BG,OAAO;IAEPO,MAAM,EAAEA,CAAC;MAAEC,MAAM;MAAE,GAAGC;IAAQ,CAAC,KAC7BT,OAAO,CAAC;MAAE,GAAGS,OAAO;MAAE,GAAGD,MAAM;MAAEE,QAAQ,EAAE,CAAC;MAAEC,MAAM,EAAEC;IAAU,CAAC,CAAC;IAEpEC,MAAM,EAAEA,CAAC;MAAEL,MAAM;MAAEG,MAAM,GAAG,MAAM;MAAED,QAAQ,GAAG,GAAG;MAAE,GAAGD;IAAQ,CAAC,KAC9DT,OAAO,CAAC;MAAE,GAAGS,OAAO;MAAE,GAAGD,MAAM;MAAEG,MAAM;MAAED;IAAS,CAAC,CAAC;IAEtDI,KAAK,EAAEA,CAAC;MAAEN,MAAM;MAAEG,MAAM,GAAG,KAAK;MAAED,QAAQ,GAAG,IAAI;MAAE,GAAGD;IAAQ,CAAC,KAC7DT,OAAO,CAAC;MAAE,GAAGS,OAAO;MAAE,GAAGD,MAAM;MAAEG,MAAM;MAAED;IAAS,CAAC,CAAC;IAEtDK,SAAS,EAAEA,CACTC,MAAM,EACN;MAAEL,MAAM,GAAG,KAAK;MAAED,QAAQ,GAAG,IAAI;MAAE,GAAGD;IAAQ,CAAC,GAAG,CAAC,CAAC,KACjDT,OAAO,CAAC;MAAE,GAAGS,OAAO;MAAEO,MAAM;MAAEL,MAAM;MAAED;IAAS,CAAC,CAAC;IAEtDO,MAAM,EAAEA,CAACC,IAAI,EAAE;MAAEP,MAAM,GAAG,MAAM;MAAED,QAAQ,GAAG,GAAG;MAAE,GAAGD;IAAQ,CAAC,GAAG,CAAC,CAAC,KACjET,OAAO,CAAC;MAAE,GAAGS,OAAO;MAAES,IAAI;MAAEP,MAAM;MAAED;IAAS,CAAC;EAClD,CAAC,CAAC,CAAC;EAEH,oBACE,IAAA7B,WAAA,CAAAsC,GAAA,EAACzC,sBAAA,CAAAM,OAAqB;IACpBa,GAAG,EAAEC,SAAU;IACfT,MAAM,EAAEA,MAAO;IACfO,IAAI,EAAEA,IAAK;IACXN,gBAAgB,EAAEA,gBAAiB;IACnCC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBC,SAAS,EAAEA,SAAU;IACrBC,iBAAiB,EAAEA,iBAAkB;IACrCC,yBAAyB,
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_CameraNativeComponent","_interopRequireDefault","_NativeCameraModule","_jsxRuntime","e","__esModule","default","Camera","exports","memo","forwardRef","testID","initialViewState","minZoom","maxZoom","maxBounds","trackUserLocation","onTrackUserLocationChange","stop","ref","nativeRef","useRef","setStop","nodeHandle","findNodeHandle","current","Error","NativeCameraModule","useImperativeHandle","jumpTo","center","options","duration","easing","undefined","easeTo","flyTo","fitBounds","bounds","zoomTo","zoom","jsx"],"sourceRoot":"../../../../src","sources":["components/camera/Camera.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
type ViewProps,
|
|
6
6
|
} from "react-native";
|
|
7
7
|
|
|
8
|
+
import type { UnsafeMixed } from "../../types/codegen/UnsafeMixed";
|
|
9
|
+
|
|
8
10
|
// START: NativeCameraStop
|
|
9
11
|
type NativeViewPadding = {
|
|
10
12
|
top?: CodegenTypes.WithDefault<CodegenTypes.Int32, 0>;
|
|
@@ -36,7 +38,10 @@ type NativeCameraStop = NativeViewState & {
|
|
|
36
38
|
type NativeTrackUserLocationMode = "none" | "default" | "heading" | "course";
|
|
37
39
|
|
|
38
40
|
type TrackUserLocationChangeEvent = {
|
|
39
|
-
trackUserLocation
|
|
41
|
+
trackUserLocation: UnsafeMixed<Exclude<
|
|
42
|
+
NativeTrackUserLocationMode,
|
|
43
|
+
"none"
|
|
44
|
+
> | null>;
|
|
40
45
|
};
|
|
41
46
|
|
|
42
47
|
export interface NativeProps extends ViewProps {
|
|
@@ -62,7 +62,7 @@ const UserLocation = exports.UserLocation = /*#__PURE__*/(0, _react.memo)(/*#__P
|
|
|
62
62
|
if (renderMode === UserLocationRenderMode.Native) {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
_LocationManager.LocationManager.setMinDisplacement(minDisplacement
|
|
65
|
+
_LocationManager.LocationManager.setMinDisplacement(minDisplacement);
|
|
66
66
|
});
|
|
67
67
|
return () => {
|
|
68
68
|
_isMounted.current = false;
|
|
@@ -73,7 +73,7 @@ const UserLocation = exports.UserLocation = /*#__PURE__*/(0, _react.memo)(/*#__P
|
|
|
73
73
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
74
|
}, []);
|
|
75
75
|
(0, _react.useEffect)(() => {
|
|
76
|
-
_LocationManager.LocationManager.setMinDisplacement(minDisplacement
|
|
76
|
+
_LocationManager.LocationManager.setMinDisplacement(minDisplacement);
|
|
77
77
|
}, [minDisplacement]);
|
|
78
78
|
(0, _react.useEffect)(() => {
|
|
79
79
|
if (!_isMounted.current) {
|
|
@@ -90,7 +90,7 @@ const UserLocation = exports.UserLocation = /*#__PURE__*/(0, _react.memo)(/*#__P
|
|
|
90
90
|
locationManagerRunning.current = running;
|
|
91
91
|
if (running) {
|
|
92
92
|
_LocationManager.LocationManager.addListener(_onLocationUpdate);
|
|
93
|
-
const location = await _LocationManager.LocationManager.
|
|
93
|
+
const location = await _LocationManager.LocationManager.getCurrentPosition();
|
|
94
94
|
_onLocationUpdate(location);
|
|
95
95
|
} else {
|
|
96
96
|
_LocationManager.LocationManager.removeListener(_onLocationUpdate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_NativeUserLocation","_UserLocationPuck","_LocationManager","_Annotation","_jsxRuntime","USER_LOCATION_SOURCE_ID","UserLocationRenderMode","exports","UserLocation","memo","forwardRef","animated","visible","showsUserHeadingIndicator","minDisplacement","renderMode","androidRenderMode","androidPreferredFramesPerSecond","children","onUpdate","onPress","ref","_isMounted","useRef","locationManagerRunning","userLocationState","setUserLocationState","useState","shouldShowUserLocation","useImperativeHandle","setLocationManager","needsLocationManagerRunning","_onLocationUpdate","useEffect","current","running","then","Native","LocationManager","setMinDisplacement","addListener","location","
|
|
1
|
+
{"version":3,"names":["_react","require","_NativeUserLocation","_UserLocationPuck","_LocationManager","_Annotation","_jsxRuntime","USER_LOCATION_SOURCE_ID","UserLocationRenderMode","exports","UserLocation","memo","forwardRef","animated","visible","showsUserHeadingIndicator","minDisplacement","renderMode","androidRenderMode","androidPreferredFramesPerSecond","children","onUpdate","onPress","ref","_isMounted","useRef","locationManagerRunning","userLocationState","setUserLocationState","useState","shouldShowUserLocation","useImperativeHandle","setLocationManager","needsLocationManagerRunning","_onLocationUpdate","useEffect","current","running","then","Native","LocationManager","setMinDisplacement","addListener","location","getCurrentPosition","removeListener","Normal","coordinates","heading","coords","longitude","latitude","props","iosShowsUserHeadingIndicator","jsx","NativeUserLocation","Annotation","id","style","iconRotate","UserLocationPuck","sourceID","undefined"],"sourceRoot":"../../../../src","sources":["components/user-location/UserLocation.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -9,7 +9,6 @@ var _exportNames = {
|
|
|
9
9
|
PointAnnotation: true,
|
|
10
10
|
Annotation: true,
|
|
11
11
|
Callout: true,
|
|
12
|
-
requestAndroidLocationPermissions: true,
|
|
13
12
|
UserLocation: true,
|
|
14
13
|
UserLocationRenderMode: true,
|
|
15
14
|
VectorSource: true,
|
|
@@ -27,6 +26,7 @@ var _exportNames = {
|
|
|
27
26
|
BackgroundLayer: true,
|
|
28
27
|
MarkerView: true,
|
|
29
28
|
LocationManager: true,
|
|
29
|
+
requestAndroidLocationPermissions: true,
|
|
30
30
|
OfflineManager: true,
|
|
31
31
|
OfflinePack: true,
|
|
32
32
|
OfflineCreatePackOptions: true,
|
|
@@ -225,7 +225,6 @@ var _MapView = require("./components/map-view/MapView.js");
|
|
|
225
225
|
var _PointAnnotation = require("./components/annotations/PointAnnotation.js");
|
|
226
226
|
var _Annotation = require("./components/annotations/Annotation.js");
|
|
227
227
|
var _Callout = require("./components/annotations/Callout.js");
|
|
228
|
-
var _requestAndroidLocationPermissions = require("./requestAndroidLocationPermissions.js");
|
|
229
228
|
var _UserLocation = require("./components/user-location/UserLocation.js");
|
|
230
229
|
var _VectorSource = require("./components/sources/VectorSource.js");
|
|
231
230
|
var _ShapeSource = require("./components/sources/ShapeSource.js");
|
|
@@ -242,6 +241,7 @@ var _RasterLayer = require("./components/layers/RasterLayer.js");
|
|
|
242
241
|
var _BackgroundLayer = require("./components/layers/BackgroundLayer.js");
|
|
243
242
|
var _MarkerView = require("./components/annotations/MarkerView.js");
|
|
244
243
|
var _LocationManager = require("./modules/location/LocationManager.js");
|
|
244
|
+
var _requestAndroidLocationPermissions = require("./modules/location/requestAndroidLocationPermissions.js");
|
|
245
245
|
var _OfflineManager = require("./modules/offline/OfflineManager.js");
|
|
246
246
|
var _OfflinePack = require("./modules/offline/OfflinePack.js");
|
|
247
247
|
var _OfflineCreatePackOptions = require("./modules/offline/OfflineCreatePackOptions.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_MLRNModule","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Camera","_MapView","_PointAnnotation","_Annotation","_Callout","
|
|
1
|
+
{"version":3,"names":["_MLRNModule","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Camera","_MapView","_PointAnnotation","_Annotation","_Callout","_UserLocation","_VectorSource","_ShapeSource","_RasterSource","_ImageSource","_Images","_FillLayer","_FillExtrusionLayer","_HeatmapLayer","_LineLayer","_CircleLayer","_SymbolLayer","_RasterLayer","_BackgroundLayer","_MarkerView","_LocationManager","_requestAndroidLocationPermissions","_OfflineManager","_OfflinePack","_OfflineCreatePackOptions","_SnapshotManager","_Animated","_Logger"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAS,OAAA,GAAAb,OAAA;AAiBA,IAAAc,QAAA,GAAAd,OAAA;AAOA,IAAAe,gBAAA,GAAAf,OAAA;AAEA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,QAAA,GAAAjB,OAAA;AACA,IAAAkB,aAAA,GAAAlB,OAAA;AAKA,IAAAmB,aAAA,GAAAnB,OAAA;AACA,IAAAoB,YAAA,GAAApB,OAAA;AAEA,IAAAqB,aAAA,GAAArB,OAAA;AACA,IAAAsB,YAAA,GAAAtB,OAAA;AACA,IAAAuB,OAAA,GAAAvB,OAAA;AACA,IAAAwB,UAAA,GAAAxB,OAAA;AACA,IAAAyB,mBAAA,GAAAzB,OAAA;AACA,IAAA0B,aAAA,GAAA1B,OAAA;AACA,IAAA2B,UAAA,GAAA3B,OAAA;AACA,IAAA4B,YAAA,GAAA5B,OAAA;AACA,IAAA6B,YAAA,GAAA7B,OAAA;AACA,IAAA8B,YAAA,GAAA9B,OAAA;AACA,IAAA+B,gBAAA,GAAA/B,OAAA;AACA,IAAAgC,WAAA,GAAAhC,OAAA;AAEA,IAAAiC,gBAAA,GAAAjC,OAAA;AAIA,IAAAkC,kCAAA,GAAAlC,OAAA;AAEA,IAAAmC,eAAA,GAAAnC,OAAA;AAGA,IAAAoC,YAAA,GAAApC,OAAA;AACA,IAAAqC,yBAAA,GAAArC,OAAA;AACA,IAAAsC,gBAAA,GAAAtC,OAAA;AAoBA,IAAAuC,SAAA,GAAAvC,OAAA;AACA,IAAAwC,OAAA,GAAAxC,OAAA","ignoreList":[]}
|
|
@@ -3,88 +3,77 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.LocationManager = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/*
|
|
13
|
-
* Location sent by LocationManager
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/*
|
|
17
|
-
* Coordinates sent by LocationManager
|
|
18
|
-
*/
|
|
19
|
-
|
|
8
|
+
var _NativeLocationModule = _interopRequireDefault(require("./NativeLocationModule.js"));
|
|
9
|
+
var _index = require("../../utils/index.js");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
11
|
class LocationManager {
|
|
12
|
+
listeners = [];
|
|
13
|
+
currentPosition = undefined;
|
|
14
|
+
isListening = false;
|
|
15
|
+
subscription = undefined;
|
|
21
16
|
constructor() {
|
|
22
|
-
this.
|
|
23
|
-
this._lastKnownLocation = null;
|
|
24
|
-
this._isListening = false;
|
|
25
|
-
this.onUpdate = this.onUpdate.bind(this);
|
|
26
|
-
this.subscription = null;
|
|
17
|
+
this.handleUpdate = this.handleUpdate.bind(this);
|
|
27
18
|
}
|
|
28
|
-
async
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// let's silently catch it and simply log out
|
|
35
|
-
// instead of throwing an exception
|
|
36
|
-
try {
|
|
37
|
-
lastKnownLocation = await MLRNLocationModule.getLastKnownLocation();
|
|
38
|
-
} catch (error) {
|
|
39
|
-
console.log("LocationManager Error: ", error);
|
|
40
|
-
}
|
|
41
|
-
if (!this._lastKnownLocation && lastKnownLocation) {
|
|
42
|
-
this._lastKnownLocation = lastKnownLocation;
|
|
43
|
-
}
|
|
19
|
+
async getCurrentPosition() {
|
|
20
|
+
let currentPosition;
|
|
21
|
+
try {
|
|
22
|
+
currentPosition = await _NativeLocationModule.default.getCurrentPosition();
|
|
23
|
+
} catch (error) {
|
|
24
|
+
console.log("LocationManager [error]: ", error);
|
|
44
25
|
}
|
|
45
|
-
|
|
26
|
+
this.currentPosition = currentPosition;
|
|
27
|
+
return this.currentPosition;
|
|
46
28
|
}
|
|
47
|
-
addListener(
|
|
48
|
-
if (!this.
|
|
29
|
+
addListener(newListener) {
|
|
30
|
+
if (!this.isListening) {
|
|
49
31
|
this.start();
|
|
50
32
|
}
|
|
51
|
-
if (!this.
|
|
52
|
-
this.
|
|
53
|
-
if (this.
|
|
54
|
-
|
|
33
|
+
if (!this.listeners.includes(newListener)) {
|
|
34
|
+
this.listeners.push(newListener);
|
|
35
|
+
if (this.currentPosition) {
|
|
36
|
+
newListener(this.currentPosition);
|
|
55
37
|
}
|
|
56
38
|
}
|
|
57
39
|
}
|
|
58
|
-
removeListener(
|
|
59
|
-
this.
|
|
60
|
-
if (this.
|
|
40
|
+
removeListener(oldListener) {
|
|
41
|
+
this.listeners = this.listeners.filter(listener => listener !== oldListener);
|
|
42
|
+
if (this.listeners.length === 0) {
|
|
61
43
|
this.stop();
|
|
62
44
|
}
|
|
63
45
|
}
|
|
64
46
|
removeAllListeners() {
|
|
65
|
-
this.
|
|
47
|
+
this.listeners = [];
|
|
66
48
|
this.stop();
|
|
67
49
|
}
|
|
68
|
-
start(
|
|
69
|
-
if (!this.
|
|
70
|
-
|
|
71
|
-
this.subscription =
|
|
72
|
-
this.
|
|
50
|
+
start() {
|
|
51
|
+
if (!this.isListening) {
|
|
52
|
+
_NativeLocationModule.default.start();
|
|
53
|
+
this.subscription = _NativeLocationModule.default.onUpdate(this.handleUpdate);
|
|
54
|
+
this.isListening = true;
|
|
73
55
|
}
|
|
74
56
|
}
|
|
75
57
|
stop() {
|
|
76
|
-
|
|
77
|
-
if (this.
|
|
58
|
+
_NativeLocationModule.default.stop();
|
|
59
|
+
if (this.isListening) {
|
|
78
60
|
this.subscription?.remove();
|
|
79
61
|
}
|
|
80
|
-
this.
|
|
62
|
+
this.isListening = false;
|
|
81
63
|
}
|
|
82
64
|
setMinDisplacement(minDisplacement) {
|
|
83
|
-
|
|
65
|
+
_NativeLocationModule.default.setMinDisplacement(minDisplacement);
|
|
84
66
|
}
|
|
85
|
-
|
|
86
|
-
this.
|
|
87
|
-
this.
|
|
67
|
+
handleUpdate(location) {
|
|
68
|
+
this.currentPosition = location;
|
|
69
|
+
this.listeners.forEach(listener => listener(location));
|
|
70
|
+
}
|
|
71
|
+
async requestAndroidPermissions() {
|
|
72
|
+
if ((0, _index.isAndroid)()) {
|
|
73
|
+
const res = await _reactNative.PermissionsAndroid.requestMultiple([_reactNative.PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, _reactNative.PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION]);
|
|
74
|
+
return Object.values(res).every(permission => permission === _reactNative.PermissionsAndroid.RESULTS.GRANTED);
|
|
75
|
+
}
|
|
76
|
+
throw new Error("This method should only be called on Android");
|
|
88
77
|
}
|
|
89
78
|
}
|
|
90
79
|
const locationManager = exports.LocationManager = new LocationManager();
|