diff --git a/usbserial/src/main/java/com/felhr/usbserial/SerialPortBuilder.java b/usbserial/src/main/java/com/felhr/usbserial/SerialPortBuilder.java index 70374bd..295172d 100644 --- a/usbserial/src/main/java/com/felhr/usbserial/SerialPortBuilder.java +++ b/usbserial/src/main/java/com/felhr/usbserial/SerialPortBuilder.java @@ -130,17 +130,18 @@ public class SerialPortBuilder { } public boolean disconnectDevice(UsbDevice usbDevice){ - Optional optionalDevice = Stream.of(serialDevices) + List devices = Stream.of(serialDevices) .filter(p -> usbDevice.getDeviceId() == p.getDeviceId()) - .findSingle(); + .toList(); - if(optionalDevice.isPresent()){ - UsbSerialDevice disconnectedDevice = optionalDevice.get(); - disconnectedDevice.syncClose(); + int removedDevices = 0; + for(UsbSerialDevice device : devices){ + device.syncClose(); serialDevices = Utils.removeIf(serialDevices, p -> usbDevice.getDeviceId() == p.getDeviceId()); - return true; + removedDevices ++; } - return false; + + return removedDevices == devices.size(); } public void unregisterListeners(Context context){