solving issue disconnecting one device with multiple serial ports

pull/205/head
Felipe Herranz 2019-01-30 23:47:16 +01:00
rodzic dc94ea5879
commit 04db5825c0
1 zmienionych plików z 8 dodań i 7 usunięć

Wyświetl plik

@ -130,17 +130,18 @@ public class SerialPortBuilder {
} }
public boolean disconnectDevice(UsbDevice usbDevice){ public boolean disconnectDevice(UsbDevice usbDevice){
Optional<UsbSerialDevice> optionalDevice = Stream.of(serialDevices) List<UsbSerialDevice> devices = Stream.of(serialDevices)
.filter(p -> usbDevice.getDeviceId() == p.getDeviceId()) .filter(p -> usbDevice.getDeviceId() == p.getDeviceId())
.findSingle(); .toList();
if(optionalDevice.isPresent()){ int removedDevices = 0;
UsbSerialDevice disconnectedDevice = optionalDevice.get(); for(UsbSerialDevice device : devices){
disconnectedDevice.syncClose(); device.syncClose();
serialDevices = Utils.removeIf(serialDevices, p -> usbDevice.getDeviceId() == p.getDeviceId()); serialDevices = Utils.removeIf(serialDevices, p -> usbDevice.getDeviceId() == p.getDeviceId());
return true; removedDevices ++;
} }
return false;
return removedDevices == devices.size();
} }
public void unregisterListeners(Context context){ public void unregisterListeners(Context context){