From 32f6e089c79ba1c3a9d5ee438999dc4b8f784871 Mon Sep 17 00:00:00 2001 From: uvok Date: Thu, 31 Jul 2025 16:29:28 +0200 Subject: Add RSSI scan limit --- lib/control/universal_ble_scanner_controller.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/control/universal_ble_scanner_controller.dart b/lib/control/universal_ble_scanner_controller.dart index e111f3b..7785088 100644 --- a/lib/control/universal_ble_scanner_controller.dart +++ b/lib/control/universal_ble_scanner_controller.dart @@ -27,11 +27,14 @@ class UniversalBleScannerController extends ScannerControllerImpl { StreamSubscription? _subScan; StreamSubscription? _subAvail; final List _devices = []; + final int? rssiLimit; - UniversalBleScannerController() { + UniversalBleScannerController({this.rssiLimit}) { // fuck this limitation, I want an instance method to be called, which doesn't // work in an initializer. - _subScan = UniversalBle.scanStream.listen(_newDeviceAction); + _subScan = UniversalBle.scanStream + .where((d) => rssiLimit == null || (d.rssi ?? 0) > (rssiLimit!)) + .listen(_newDeviceAction); _subAvail = UniversalBle.availabilityStream.listen(_newAvailabilityAction); } -- cgit v1.2.3