kopia lustrzana https://github.com/felHR85/UsbSerial
solving issue disconnecting one device with multiple serial ports
rodzic
dc94ea5879
commit
04db5825c0
|
@ -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){
|
||||||
|
|
Ładowanie…
Reference in New Issue