collectLocationAudit static method
Implementation
static Future<void> collectLocationAudit(
{required ACLDatabase db, Position? position}) async {
try {
if (position == null) {
final permission = await Geolocator.checkPermission();
if (permission != LocationPermission.always) {
return;
}
position = await Geolocator.getCurrentPosition(
locationSettings: LocationAuditHelper.generateLocationSettings());
}
final latestRecord = await db.locationAuditDao.findLatest();
double distance = 0;
if (latestRecord != null) {
distance = latestRecord.distance;
final moveDistance = Geolocator.distanceBetween(latestRecord.lat,
latestRecord.long, position.latitude, position.longitude);
if (moveDistance > 5 || position.speed > 0.1) {
distance += moveDistance;
}
}
await db.locationAuditDao.create(LocationAuditCompanion(
accuracy: Value(position.accuracy),
altitude: Value(position.altitude),
lat: Value(position.latitude),
long: Value(position.longitude),
speed: Value(position.speed),
distance: Value(distance),
createdAt: Value(DateTime.now()),
));
} catch (e) {
print('Error: LocationAuditHelper.collectLocationAudit');
print(e);
}
}