hypertrack_plugin 3.0.3
hypertrack_plugin: ^3.0.3 copied to clipboard
Flutter plugin for HyperTrack, a cross-platform location tracking solution for Android and iOS
Changelog #
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
3.0.2 - 2025-03-06 #
3.0.1 - 2025-03-04 #
3.0.0 - 2025-02-06 #
Changed #
Order.isInsideGeofenceis now an async fuction that returns the value at the moment when it called (instead of the constant value at the time ofgetOrdersbeing called)- Updated HyperTrack SDK iOS to 5.11.0
- Updated HyperTrack SDK Android to 7.11.0
Fixed #
- Wrong order of Orders in
HyperTrack.getOrders()on iOS - Error on
HyperTrack.getOrders()/HyperTrack.subscribeToOrders()on Android when assigning multiple orders to the worker
2.7.0 - 2025-01-21 #
Added #
- New
HyperTrack.allowMockLocationandHyperTrack.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
HyperTrackAllowMockLocationAndroidManifest.xml/Info.plist value is insufficient for your needs.- Example: if for some reason you aren't able to recompile with
HyperTrackAllowMockLocationset toYES/truefor 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
- Note: To avoid issues related to race conditions in your code use this API only if modifying the compiled
- Check the Test with mock locations guide for more information.
- Gradle 8 support
Changed #
2.6.1 - 2024-12-05 #
2.6.0 - 2024-11-22 #
2.5.2 - 2024-11-13 #
2.5.0 - 2024-09-04 #
2.4.0 - 2024-08-27 #
Added #
- Support for on-device geofencing via new
HyperTrack.orders["my_order"].isInsideGeofenceproperty- To learn more about how to best use this new feature see our guide here: Verify shift presence before starting work
// check worker presence synchronously
var activeOrders = await HyperTrack.orders;
Order? currentOrder = activeOrders["current_order"];
if (currentOrder != null) {
handlePresence(currentOrder.isInsideGeofence);
} else {
print("'current_order' not found");
}
// or subscribe to the changes in orders to get the status updates
HyperTrack.ordersSubscription.listen((orders) {
Order? currentOrder = orders["current_order"];
if (currentOrder != null) {
handlePresence(currentOrder.isInsideGeofence);
} else {
print("'current_order' not found");
}
});
// handle worker presence inside the order destination geofence
void handlePresence(Result<bool, LocationError> isInsideGeofence) {
switch (isInsideGeofence.runtimeType) {
case Success:
if ((isInsideGeofence as Success).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;
}
}
Changed #
2.3.0 - 2024-06-22 #
Added #
- New
setWorkerHandleandgetWorkerHandlecan be used to identify workers- We observed our customers identify worker devices via
HyperTrack.metadata, so we decided to make it a first class citizen in our API. - If you previously used
metadatato identify workers, we suggest usingworkerHandlefor this purpose instead.
- We observed our customers identify worker devices via
Changed #
2.2.2 - 2024-05-14 #
2.2.0 - 2024-04-24 #
Changed #
- New
addGeotagandaddGeotagWithExpectedLocationmethods signature that haveorderHandleandorderStatusparameters. You can use this API when users need to clock in/out of work in your app to honor their work time ( see Clock in/out Tagging guide for more info) - Updated HyperTrack SDK iOS to 5.5.2
- Updated HyperTrack SDK Android to 7.5.3
2.1.1 - 2024-02-14 #
2.1.0 - 2024-01-29 #
2.0.4 - 2023-12-01 #
2.0.3 - 2023-11-20 #
2.0.2 - 2023-11-10 #
2.0.1 - 2023-10-16 #
2.0.0 - 2023-10-02 #
Added #
locate()to ask for one-time user locationlocationSubcriptionto subscribe to user location updateserrorsgetternamegettermetadatagetter- HyperTrackError types:
noExemptionFromBackgroundStartRestrictionspermissionsNotificationsDenied
Changed #
- Updated HyperTrack Android SDK to 7.0.3
- Add Android SDK plugins (
location-services-googleandpush-service-firebase) - Updated HyperTrack iOS SDK to 5.0.2
- The whole HyperTrack API is now static
- Changed the way to provide publishableKey (
- You need to add
HyperTrackPublishableKeymeta-dataitem to yourAndroidManifest.xmland the same entry toInfo.plist)
- You need to add
- Renamed HyperTrackError types:
gpsSignalLosttolocationSignalLostlocationPermissionsDeniedtopermissionsLocationDeniedlocationPermissionsInsufficientForBackgroundtopermissionsLocationInsufficientForBackgroundlocationPermissionsNotDeterminedtopermissionsLocationNotDeterminedlocationPermissionsProvisionaltolocationPermissionsProvisionallocationPermissionsReducedAccuracytopermissionsLocationReducedAccuracylocationPermissionsRestrictedtopermissionsLocationRestricted
- Renamed
setAvailability()tosetIsAvailable(boolean) - Changed
startTracking()andstopTracking()tosetIsTracking(boolean) - Renamed
onTrackingChangedtoisTrackingSubscription - Renamed
onAvailabilityChangedtoisAvailableSubscription - Renamed
onErrortoerrorsSubscription - Renamed
JSONValuetoJSON
Removed #
initialize()method (the API is now static)- Motion Activity permissions are not required for tracking anymore
- HyperTrackError types:
motionActivityPermissionsDeniedmotionActivityServicesDisabledmotionActivityServicesUnavailablemotionActivityPermissionsRestrictednetworkConnectionUnavailable
sync()method
1.1.0 - 2023-05-18 #
1.0.0 - 2023-02-17 #
Changed #
- Updated HyperTrack iOS SDK to 4.14.0
- Updated HyperTrack Android SDK to 6.4.0
syncDeviceSettings()renamed tosync()setDeviceName()renamed tosetName()setDeviceMetadata()renamed tosetMetadata()start()renamed tostartTracking()stop()renamed tostopTracking()
Added #
initialize()configuration params for- Debug logging
- Background location permissions request for Android
- Mock locations
onAvailabilityChangedstreamonErrorstream- Location result for
addGeotag
Removed #
getLatestLocation()allowMockLocations()(useinitialize()paramallowMockLocationsinstead)enableDebugLogging()(useinitialize()paramloggingEnabledinstead)getRunnigStatus()- 'expectedLocation' param from 'addGeotag()'
0.4.3 - 2022-09-16 #
Changed
- Android SDK updated to 6.3.0
0.4.2 - 2022-08-30 #
Changed
- Android SDK updated to 6.2.2
0.4.1 - 2022-07-19 #
Changed
- Android SDK updated to 6.2.0
- iOS SDK updated to 4.12.3
0.4.0 - 2022-07-07 #
Changed
- Android SDK updated to 6.1.4
0.3.1 - 2022-07-05 #
Fixed
- Android null type safety plugin fixes
0.3.0 - 2021-11-17 #
Changed
- Android SDK updated to 5.4.5
0.2.1 - 2021-07-07 #
Changed
- No code changes. Package metadata was updated to improve scoring.
0.2.0 - 2021-07-07 #
Added
- Dart nullability support added to comply with Flutter 2 requirements
Changed
- Android SDK updated to 5.2.5
0.1.9 - 2021-05-07 #
Changed
- Android SDK updated to 4.12.0
0.1.8 - 2021-04-07 #
Changed
- Android SDK updated to 4.11.0
0.1.7 - 2020-12-24 #
Changed
- Android SDK updated to 4.9.0
- Firebase conflicts were fixed.
0.1.6 - 2020-12-23 #
Fixed
- iOS plugin runtime error notification.
Changed
- iOS SDK version updated to 4.7.0
0.1.5 - 2020-12-16 #
Fixed
- iOS plugin, incorrect
permissions_errornotification.
0.1.4 - 2020-11-20 #
Fixed
- Firebase tokens and messages forwarding.
Changed
- iOS SDK version updated to 4.6.0
0.1.3 - 2020-11-02 #
Changed
- Android SDK version updated to 4.8.0
0.1.2 - 2020-09-28 #
Changed
- Android SDK version updated to 4.6.0
0.1.1 - 2020-06-18 #
Changed
- Android SDK version updated to 4.4.1
- setTripMarker
replaced withaddGeotag`
0.1.0 - 2020-03-24 #
Added
- Initial release.