Releases: hypertrack/sdk-react-native
Releases · hypertrack/sdk-react-native
13.8.0
Added
- New
HyperTrack.getAllowMockLocation()
andHyperTrack.setAllowMockLocation()
methods which can be used to allow mocking location data.- Check the Test with mock locations guide for more information.
- Note: To avoid issues related to race conditions in your code use this API only if modifying the compiled
HyperTrackAllowMockLocation
AndroidManifest.xml/Info.plist value is insufficient for your needs.- Example: if for some reason you aren't able to recompile with
HyperTrackAllowMockLocation
set toYES
/true
for your prod app QA mock location tests and need to set up the value in runtime.
- Example: if for some reason you aren't able to recompile with
Changed
13.7.1
13.7.0
13.6.4
Fixed
- Dependency conflict for
RCT-Folly
library when New Architecture is enabled (removed the fixed folly version)
13.6.3
13.6.2
13.6.1
13.6.0
Added
- Support for Motion & Activity detection
- If your app asks for the Motion & Activity permission (for iOS) or the Activity Recognition permission (for Android) and the user grants it, you will have better activity detection in polylines
- Use new Activity service plugin
hypertrack-sdk-react-native-plugin-android-activity-service-google
(See Plugins)
Changed
13.5.1
Fixed
- Serialization issue with
Order.isInsideGeofence
13.5.0
Added
- Support for on-device geofencing via new
HyperTrack.orders.get("my_order_handle").isInsideGeofence
property- To learn more about how to best use this new feature see our guide here: Verify shift presence before starting work
Example use for worker clock in:
// check worker presence synchronously
let activeOrders = await HyperTrack.getOrders()
let currentOrder = activeOrders.get("current_order")
if (currentOrder !== undefined) { handlePresence(currentOrder) }
else { console.log("'current_order' not found") }
// or subscribe to the changes in orders to get the status updates
HyperTrack.subscribeToOrders(orders => {
let let currentOrder = activeOrders.get("current_order")
if (currentOrder !== undefined) { handlePresence(currentOrder) }
else { console.log("'current_order' not found") }
})
// handle worker presence inside the order destination geofence
function handlePresence(isInsideGeofence: Result<boolean, LocationError>) {
switch (isInsideGeofence.type) {
case 'success':
if (isInsideGeofence.value) {
// allow worker to clock in for the shift
} else {
// "to clock in you must be at order destination"
}
break;
case 'failure':
// resolve errors to check for presence
break;
}
}