in src/Covi/Features/BluetoothTracing/DeviceManager/Internal/DefaultDeviceManager.cs [203:231]
public void HandleDeviceFailedToConnect(DeviceDescriptor descriptor, Action<DeviceDescriptor> onNext = null)
{
if (_discoveredDevices.TryGetValue(descriptor.Identifier, out var deviceDescriptor))
{
try
{
Monitor.Enter(deviceDescriptor.ProcessingLock);
try
{
_logger.LogDebug(
$"DeviceManager - Device connection failed. id: {deviceDescriptor.Identifier}.");
deviceDescriptor.Processing = false;
// Clean up context as it may reference some native objects
deviceDescriptor.Context = null;
HandleIncorrectDevice(descriptor);
}
finally
{
Monitor.Exit(deviceDescriptor.ProcessingLock);
}
onNext?.Invoke(descriptor);
}
catch (Exception ex)
{
_logger.LogError(ex, $"DeviceManager - Device connection failed - failed. id: {deviceDescriptor.Identifier}.");
}
}
}