in src/Covi.iOS/Features/Bluetooth/TracingEngine.cs [81:102]
public async Task RecoverIfNeededAsync()
{
try
{
var isAdvertising = Covi.Features.BluetoothTracing.TracingState.Instance.IsAdvertising;
var isScanning = Covi.Features.BluetoothTracing.TracingState.Instance.IsScanning;
var isScanningHeartbeatOutdated =
Covi.Features.BluetoothTracing.TracingState.Instance.StateUpdateTimestamp <=
DateTime.UtcNow.AddMinutes(5);
if (!isAdvertising ||
!isScanning ||
isScanningHeartbeatOutdated)
{
await RestartAsync().ConfigureAwait(false);
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to restart tracing engine.");
}
}