Releases: hypertrack/sdk-android
Releases · hypertrack/sdk-android
7.11.0
7.10.0
Added
- New
HyperTrack.allowMockLocation
getter/setter which can be used to allow mock location(s).- Use this API only if modifying the compiled
HyperTrackAllowMockLocation
AndroidManifest.xml value is insufficient for your needs.- example: if for some reason you aren't able to recompile with
HyperTrackAllowMockLocation
set totrue
for your prod app QA mock location tests.
- example: if for some reason you aren't able to recompile with
- Use this API only if modifying the compiled
Changed
- Fixes and improvements to SDK runtime efficiency
Fixed
- A rare crash related to Foreground Service lifecycle misbehavior (OS API induced)
7.9.1
Changed
- Fixes and improvements to SDK runtime efficiency
7.9.0
Changed
HyperTrack.location
returns the latest location (previously distance filtered)
7.8.4
Changed
- Data batching configuration changes now take effect immediately
Permissions.Notification.Denied
Error is deprecated, the Notifications permission is not required for tracking anymore
Fixed
- A rare issue that could cause location events to be dropped under certain conditions
7.8.3
Fixed
- Fixed the issue with starting foreground service from background in some cases
7.8.2
Fixed
- Fixed issue that prevented device registration if the Activity Service plugin wasn't provided
7.8.1
Fixed
- Fixed issue preventing the SDK to work when the app is installed in Work profile
7.8.0
Added
- Support for Motion & Activity detection
- If your app asks for permission and the user grants it, you will have better activity detection in polylines
7.7.0
Added
- Support for on-device geofencing via new
HyperTrack.orders["my_order"].isInsideGeofence
property- To learn more about how to best use this new feature see our guide here: https://developer.hypertrack.com/docs/clock-in-out-tagging#verify-shift-presence-before-starting-work
Example use for worker clock in:
fun handlePresence(isInsideResult: Result<Boolean, HyperTrackLocationError>) {
when (isInsideResult) {
is Result.Success -> {
val isInside = isInsideResult.getOrNull() ?: false
if (isInside) {
// allow worker to clock in for the shift
} else {
// "to clock in you must be at order destination"
}
}
is Result.Failure -> {
// resolve any tracking errors to obtain geofence presence
}
}
}
// Check if a worker is inside an order's geofence
handlePresence(HyperTrack.orders["my_order"]?.isInsideGeofence)
// Or, listen to order.isInsideGeofence changes
HyperTrack.subscribeToOrders { orders ->
handlePresence(orders["my_order"]?.isInsideGeofence)
}