sortDevices method
void
sortDevices()
Sort and filter devices
Implementation
void sortDevices() {
_devices.removeWhere(
(element) => element.name == null || element.name == '',
);
// remove items having same vendorId
final seen = <String>{};
_devices.retainWhere((element) {
final uniqueKey = '${element.vendorId}_${element.address}';
if (seen.contains(uniqueKey)) {
return false; // Remove duplicate
} else {
seen.add(uniqueKey); // Mark as seen
return true; // Keep
}
});
_devicesStream.add(
_devices.where((printer) {
final type = printer.connectionType;
if (type != null) {
return _scanConnectionTypes.contains(type);
}
// Unknown system queues appear only when both queue transports are
// requested; a USB-only or network-only scan never guesses their type.
return printer.isSystemPrinter &&
_scanConnectionTypes.contains(ConnectionType.USB) &&
_scanConnectionTypes.contains(ConnectionType.NETWORK);
}).toList(),
);
}