From 8ad6bbf12522c38499b9c0205d248aebfbb20b85 Mon Sep 17 00:00:00 2001 From: Foti Dim Date: Mon, 9 Feb 2026 12:49:09 +0100 Subject: [PATCH] Implement scan filter application logic in ScannerScreen - Added a new method `_onScanFilterApplied` to handle the application of scan filters, which updates the state and clears device lists. - Refactored the filter application logic in the bottom sheet to utilize the new method for better code organization. - Ensured that device lists are cleared when a new filter is applied and scanning is stopped if currently active. --- example/lib/home/scanner_screen.dart | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/example/lib/home/scanner_screen.dart b/example/lib/home/scanner_screen.dart index 8aeb358..25e1652 100644 --- a/example/lib/home/scanner_screen.dart +++ b/example/lib/home/scanner_screen.dart @@ -239,6 +239,22 @@ class _ScannerScreenState extends State { } } + Future _onScanFilterApplied(ScanFilter? filter) async { + setState(() { + scanFilter = filter; + _bleDevices.clear(); + _hiddenDevices.clear(); + _deviceAdFlashTrigger.clear(); + }); + await _saveScanFilters(); + if (_isScanning) { + await UniversalBle.stopScan(); + if (!mounted) return; + setState(() => _isScanning = false); + } + if (mounted) await _startScan(); + } + void _showScanFilterBottomSheet() { showModalBottomSheet( isScrollControlled: true, @@ -249,10 +265,7 @@ class _ScannerScreenState extends State { namePrefixController: namePrefixController, manufacturerDataController: manufacturerDataController, onScanFilter: (ScanFilter? filter) { - setState(() { - scanFilter = filter; - }); - _saveScanFilters(); + _onScanFilterApplied(filter); }, ); }, @@ -660,6 +673,8 @@ class _ScannerScreenState extends State { onPressed: () { setState(() { _bleDevices.clear(); + _hiddenDevices.clear(); + _deviceAdFlashTrigger.clear(); }); }, icon: Icon(