requestLocationAcknowledgment method
Future<bool>
requestLocationAcknowledgment(
- LocationNotificationModel originalLocationNotificationModel,
- bool isAccepted, {
- int? minutes,
- bool? isSharing,
Sends a 'requestlocationacknowledged' key to originalLocationNotificationModel.receiver with isAccepted as isAccepted
and duration of minutes minute
Implementation
Future<bool> requestLocationAcknowledgment(
LocationNotificationModel originalLocationNotificationModel,
bool isAccepted,
{int? minutes,
bool? isSharing}) async {
try {
var locationNotificationModel = LocationNotificationModel.fromJson(
jsonDecode(
LocationNotificationModel.convertLocationNotificationToJson(
originalLocationNotificationModel)));
var atkeyMicrosecondId = locationNotificationModel.key!
.split('requestlocation-')[1]
.split('@')[0];
AtKey atKey;
atKey = newAtKey(
60000,
'requestlocationacknowledged-$atkeyMicrosecondId',
locationNotificationModel.receiver,
);
locationNotificationModel
..isAccepted = isAccepted
..isExited = !isAccepted
..lat = isAccepted ? 12 : 0
..long = isAccepted ? 12 : 0;
if (isSharing != null) locationNotificationModel.isSharing = isSharing;
if (isAccepted && (minutes != null)) {
locationNotificationModel.from = DateTime.now();
locationNotificationModel.to =
DateTime.now().add(Duration(minutes: minutes));
}
var result = await AtLocationNotificationListener().atClientInstance!.put(
atKey,
LocationNotificationModel.convertLocationNotificationToJson(
locationNotificationModel),
isDedicated: MixedConstants.isDedicated,
);
print('requestLocationAcknowledgment $result');
if (result) {
if (MixedConstants.isDedicated) {
await SyncSecondary().callSyncSecondary(SyncOperation.syncSecondary);
}
KeyStreamService().updatePendingStatus(locationNotificationModel);
}
if ((result) && (!isSharing!)) {
KeyStreamService().removeData(atKey.key);
}
return result;
} catch (e) {
return false;
}
}