public async Task RecoverIfNeededAsync()

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.");
            }
        }