react-native-nitro-geolocation 0.1.2 → 0.2.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/margelo/nitro/nitrogeolocation/GetCurrentPosition.kt +4 -4
- package/android/src/main/java/com/margelo/nitro/nitrogeolocation/NitroGeolocation.kt +642 -50
- package/android/src/main/java/com/margelo/nitro/nitrogeolocation/NitroGeolocationCompat.kt +81 -0
- package/android/src/main/java/com/margelo/nitro/nitrogeolocation/WatchPosition.kt +4 -4
- package/ios/LocationManager.swift +4 -4
- package/ios/NitroGeolocation.swift +543 -68
- package/ios/NitroGeolocationCompat.swift +109 -0
- package/nitrogen/generated/android/c++/JAuthorizationLevel.hpp +61 -0
- package/nitrogen/generated/android/c++/JAuthorizationLevelInternal.hpp +3 -4
- package/nitrogen/generated/android/c++/JFunc_void.hpp +2 -1
- package/nitrogen/generated/android/c++/JFunc_void_GeolocationError.hpp +2 -1
- package/nitrogen/generated/android/c++/JFunc_void_GeolocationResponse.hpp +6 -1
- package/nitrogen/generated/android/c++/JFunc_void_LocationError.hpp +78 -0
- package/nitrogen/generated/android/c++/JGeolocationCoordinates.hpp +25 -17
- package/nitrogen/generated/android/c++/JGeolocationError.hpp +5 -1
- package/nitrogen/generated/android/c++/JGeolocationOptions.hpp +5 -1
- package/nitrogen/generated/android/c++/JGeolocationResponse.hpp +9 -1
- package/nitrogen/generated/android/c++/JHybridNitroGeolocationCompatSpec.cpp +109 -0
- package/nitrogen/generated/android/c++/JHybridNitroGeolocationCompatSpec.hpp +70 -0
- package/nitrogen/generated/android/c++/JHybridNitroGeolocationSpec.cpp +98 -42
- package/nitrogen/generated/android/c++/JHybridNitroGeolocationSpec.hpp +7 -5
- package/nitrogen/generated/android/c++/JLocationError.hpp +61 -0
- package/nitrogen/generated/android/c++/JLocationProvider.hpp +61 -0
- package/nitrogen/generated/android/c++/JLocationProviderInternal.hpp +3 -4
- package/nitrogen/generated/android/c++/JLocationRequestOptions.hpp +81 -0
- package/nitrogen/generated/android/c++/JModernGeolocationConfiguration.hpp +73 -0
- package/nitrogen/generated/android/c++/JNullableDouble.cpp +26 -0
- package/nitrogen/generated/android/c++/JNullableDouble.hpp +69 -0
- package/nitrogen/generated/android/c++/JPermissionStatus.hpp +64 -0
- package/nitrogen/generated/android/c++/JRNConfigurationInternal.hpp +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AuthorizationLevel.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AuthorizationLevelInternal.kt +2 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void.kt +0 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_GeolocationError.kt +0 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_GeolocationResponse.kt +0 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_LocationError.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationCoordinates.kt +34 -25
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationError.kt +27 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationOptions.kt +33 -24
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationResponse.kt +18 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HybridNitroGeolocationCompatSpec.kt +92 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HybridNitroGeolocationSpec.kt +17 -17
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationError.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationProvider.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationProviderInternal.kt +2 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationRequestOptions.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/ModernGeolocationConfiguration.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/NullableDouble.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/PermissionStatus.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/RNConfigurationInternal.kt +24 -15
- package/nitrogen/generated/android/nitrogeolocation+autolinking.cmake +3 -0
- package/nitrogen/generated/android/nitrogeolocationOnLoad.cpp +14 -2
- package/nitrogen/generated/ios/NitroGeolocation+autolinking.rb +1 -1
- package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.cpp +55 -13
- package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.hpp +325 -68
- package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Umbrella.hpp +26 -0
- package/nitrogen/generated/ios/NitroGeolocationAutolinking.mm +8 -0
- package/nitrogen/generated/ios/NitroGeolocationAutolinking.swift +15 -0
- package/nitrogen/generated/ios/c++/HybridNitroGeolocationCompatSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroGeolocationCompatSpecSwift.hpp +130 -0
- package/nitrogen/generated/ios/c++/HybridNitroGeolocationSpecSwift.hpp +47 -26
- package/nitrogen/generated/ios/swift/AuthorizationLevel.swift +44 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_GeolocationError.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_GeolocationResponse.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_LocationError.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_PermissionStatus.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/GeolocationCoordinates.swift +132 -93
- package/nitrogen/generated/ios/swift/GeolocationError.swift +11 -40
- package/nitrogen/generated/ios/swift/GeolocationOptions.swift +29 -98
- package/nitrogen/generated/ios/swift/GeolocationResponse.swift +5 -16
- package/nitrogen/generated/ios/swift/HybridNitroGeolocationCompatSpec.swift +61 -0
- package/nitrogen/generated/ios/swift/HybridNitroGeolocationCompatSpec_cxx.swift +244 -0
- package/nitrogen/generated/ios/swift/HybridNitroGeolocationSpec.swift +13 -5
- package/nitrogen/generated/ios/swift/HybridNitroGeolocationSpec_cxx.swift +66 -64
- package/nitrogen/generated/ios/swift/LocationError.swift +35 -0
- package/nitrogen/generated/ios/swift/LocationProvider.swift +44 -0
- package/nitrogen/generated/ios/swift/LocationRequestOptions.swift +116 -0
- package/nitrogen/generated/ios/swift/ModernGeolocationConfiguration.swift +83 -0
- package/nitrogen/generated/ios/swift/NullableDouble.swift +18 -0
- package/nitrogen/generated/ios/swift/PermissionStatus.swift +48 -0
- package/nitrogen/generated/ios/swift/RNConfigurationInternal.swift +16 -50
- package/nitrogen/generated/shared/c++/AuthorizationLevel.hpp +80 -0
- package/nitrogen/generated/shared/c++/GeolocationCoordinates.hpp +45 -27
- package/nitrogen/generated/shared/c++/GeolocationError.hpp +32 -16
- package/nitrogen/generated/shared/c++/GeolocationOptions.hpp +38 -22
- package/nitrogen/generated/shared/c++/GeolocationResponse.hpp +23 -7
- package/nitrogen/generated/shared/c++/HybridNitroGeolocationCompatSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridNitroGeolocationCompatSpec.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridNitroGeolocationSpec.cpp +4 -3
- package/nitrogen/generated/shared/c++/HybridNitroGeolocationSpec.hpp +22 -16
- package/nitrogen/generated/shared/c++/LocationError.hpp +87 -0
- package/nitrogen/generated/shared/c++/LocationProvider.hpp +80 -0
- package/nitrogen/generated/shared/c++/LocationRequestOptions.hpp +107 -0
- package/nitrogen/generated/shared/c++/ModernGeolocationConfiguration.hpp +100 -0
- package/nitrogen/generated/shared/c++/PermissionStatus.hpp +84 -0
- package/nitrogen/generated/shared/c++/RNConfigurationInternal.hpp +29 -13
- package/package.json +16 -7
- package/src/GeolocationClient.ts +116 -0
- package/src/NitroGeolocation.nitro.ts +177 -30
- package/src/NitroGeolocationCompat.nitro.ts +41 -0
- package/src/NitroGeolocationModule.ts +6 -0
- package/src/compat/clearWatch.ts +9 -0
- package/src/{getCurrentPosition.ts → compat/getCurrentPosition.ts} +7 -3
- package/src/compat/index.tsx +34 -0
- package/src/compat/requestAuthorization.ts +9 -0
- package/src/{setRNConfiguration.ts → compat/setRNConfiguration.ts} +6 -4
- package/src/{stopObserving.ts → compat/stopObserving.ts} +4 -2
- package/src/{watchPosition.ts → compat/watchPosition.ts} +7 -6
- package/src/components/GeolocationProvider.tsx +91 -0
- package/src/components/index.ts +13 -0
- package/src/hooks/index.ts +9 -0
- package/src/hooks/useCheckPermission.ts +46 -0
- package/src/hooks/useGetCurrentPosition.ts +44 -0
- package/src/hooks/useRequestPermission.ts +38 -0
- package/src/hooks/useWatchPosition.ts +127 -0
- package/src/index.tsx +72 -27
- package/src/types.ts +32 -4
- package/src/utils/cache.ts +25 -0
- package/src/utils/config.ts +93 -0
- package/src/utils/errors.ts +82 -0
- package/src/utils/index.ts +27 -0
- package/src/utils/provider.ts +61 -0
- package/src/utils/quality.ts +98 -0
- package/src/clearWatch.ts +0 -13
- package/src/requestAuthorization.ts +0 -9
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
package com.margelo.nitro.nitrogeolocation
|
|
2
|
+
|
|
3
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
4
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
+
import com.margelo.nitro.NitroModules
|
|
6
|
+
|
|
7
|
+
@DoNotStrip
|
|
8
|
+
class NitroGeolocationCompat(
|
|
9
|
+
private val reactContext: ReactApplicationContext = NitroModules.applicationContext!!
|
|
10
|
+
) : HybridNitroGeolocationCompatSpec() {
|
|
11
|
+
private var configuration: RNConfigurationInternal =
|
|
12
|
+
RNConfigurationInternal(
|
|
13
|
+
skipPermissionRequests = false,
|
|
14
|
+
authorizationLevel = null,
|
|
15
|
+
enableBackgroundLocationUpdates = null,
|
|
16
|
+
locationProvider = null
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
private val requestAuthorizationHandler by lazy {
|
|
20
|
+
RequestAuthorization(
|
|
21
|
+
reactContext = reactContext,
|
|
22
|
+
onPermissionResult = { result, success, error ->
|
|
23
|
+
when (result) {
|
|
24
|
+
is PermissionResult.Granted -> success?.invoke()
|
|
25
|
+
is PermissionResult.Denied ->
|
|
26
|
+
error?.invoke(
|
|
27
|
+
createPermissionError(
|
|
28
|
+
"Location permission was not granted."
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
private val watchPositionHandler by lazy { WatchPosition(reactContext) }
|
|
37
|
+
|
|
38
|
+
override fun setRNConfiguration(config: RNConfigurationInternal) {
|
|
39
|
+
configuration = config
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
override fun requestAuthorization(
|
|
43
|
+
success: (() -> Unit)?,
|
|
44
|
+
error: ((error: GeolocationError) -> Unit)?
|
|
45
|
+
) {
|
|
46
|
+
requestAuthorizationHandler.execute(success, error)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
override fun getCurrentPosition(
|
|
50
|
+
success: (position: GeolocationResponse) -> Unit,
|
|
51
|
+
error: ((error: GeolocationError) -> Unit)?,
|
|
52
|
+
options: GeolocationOptions?
|
|
53
|
+
) {
|
|
54
|
+
GetCurrentPosition(reactContext).execute(success, error, options)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
override fun watchPosition(
|
|
58
|
+
success: (position: GeolocationResponse) -> Unit,
|
|
59
|
+
error: ((error: GeolocationError) -> Unit)?,
|
|
60
|
+
options: GeolocationOptions?
|
|
61
|
+
): Double {
|
|
62
|
+
return watchPositionHandler.watch(success, error, options).toDouble()
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
override fun clearWatch(watchId: Double) {
|
|
66
|
+
watchPositionHandler.clearWatch(watchId.toInt())
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
override fun stopObserving() {
|
|
70
|
+
watchPositionHandler.stopObserving()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
private fun createPermissionError(message: String) =
|
|
74
|
+
GeolocationError(
|
|
75
|
+
code = RequestAuthorization.PERMISSION_DENIED.toDouble(),
|
|
76
|
+
message = message,
|
|
77
|
+
PERMISSION_DENIED = RequestAuthorization.PERMISSION_DENIED.toDouble(),
|
|
78
|
+
POSITION_UNAVAILABLE = RequestAuthorization.POSITION_UNAVAILABLE.toDouble(),
|
|
79
|
+
TIMEOUT = RequestAuthorization.TIMEOUT.toDouble()
|
|
80
|
+
)
|
|
81
|
+
}
|
|
@@ -186,19 +186,19 @@ class WatchPosition(private val reactContext: ReactApplicationContext) {
|
|
|
186
186
|
GeolocationCoordinates(
|
|
187
187
|
latitude = location.latitude,
|
|
188
188
|
longitude = location.longitude,
|
|
189
|
-
altitude = if (location.hasAltitude()) location.altitude else null,
|
|
189
|
+
altitude = if (location.hasAltitude()) NullableDouble.create(location.altitude) else null,
|
|
190
190
|
accuracy = location.accuracy.toDouble(),
|
|
191
191
|
altitudeAccuracy =
|
|
192
192
|
if (android.os.Build.VERSION.SDK_INT >=
|
|
193
193
|
android.os.Build.VERSION_CODES.O &&
|
|
194
194
|
location.hasVerticalAccuracy()
|
|
195
195
|
)
|
|
196
|
-
location.verticalAccuracyMeters.toDouble()
|
|
196
|
+
NullableDouble.create(location.verticalAccuracyMeters.toDouble())
|
|
197
197
|
else null,
|
|
198
198
|
heading =
|
|
199
|
-
if (location.hasBearing()) location.bearing.toDouble()
|
|
199
|
+
if (location.hasBearing()) NullableDouble.create(location.bearing.toDouble())
|
|
200
200
|
else null,
|
|
201
|
-
speed = if (location.hasSpeed()) location.speed.toDouble() else null
|
|
201
|
+
speed = if (location.hasSpeed()) NullableDouble.create(location.speed.toDouble()) else null
|
|
202
202
|
),
|
|
203
203
|
timestamp = location.time.toDouble()
|
|
204
204
|
)
|
|
@@ -487,11 +487,11 @@ class LocationManager: NSObject, CLLocationManagerDelegate {
|
|
|
487
487
|
let coordsObj = GeolocationCoordinates(
|
|
488
488
|
latitude: location.coordinate.latitude,
|
|
489
489
|
longitude: location.coordinate.longitude,
|
|
490
|
-
altitude: altitude,
|
|
490
|
+
altitude: .second(altitude),
|
|
491
491
|
accuracy: location.horizontalAccuracy,
|
|
492
|
-
altitudeAccuracy: altitudeAccuracy,
|
|
493
|
-
heading: heading,
|
|
494
|
-
speed: speed
|
|
492
|
+
altitudeAccuracy: .second(altitudeAccuracy),
|
|
493
|
+
heading: .second(heading),
|
|
494
|
+
speed: .second(speed)
|
|
495
495
|
)
|
|
496
496
|
|
|
497
497
|
let position = GeolocationResponse(
|