summaryrefslogtreecommitdiff
path: root/lib/control
diff options
context:
space:
mode:
authoruvok2025-07-31 16:29:28 +0200
committeruvok2025-07-31 16:29:28 +0200
commit32f6e089c79ba1c3a9d5ee438999dc4b8f784871 (patch)
treeef7392e1ff8ecbcf52143bb16f2a078a125886c4 /lib/control
parentf356d40ee8a67de32a1c6fc26431e455f4e3f417 (diff)
Add RSSI scan limit
Diffstat (limited to 'lib/control')
-rw-r--r--lib/control/universal_ble_scanner_controller.dart7
1 files 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<BleDevice>? _subScan;
StreamSubscription<AvailabilityState>? _subAvail;
final List<BleDevice> _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);
}