diff options
author | uvok | 2025-08-02 11:46:51 +0200 |
---|---|---|
committer | uvok | 2025-08-02 11:46:51 +0200 |
commit | 829c0d31e46e874f11ebd7a90b3b91d197df37df (patch) | |
tree | b00520555ea5889b7b6a4b08464d4992c23ebec6 /lib/control/flutter_blue_plus_scanner_controller.dart | |
parent | e82083b9e2166b4e427ae23630871914dc72f276 (diff) |
fpb: Implement adapter availability
Diffstat (limited to 'lib/control/flutter_blue_plus_scanner_controller.dart')
-rw-r--r-- | lib/control/flutter_blue_plus_scanner_controller.dart | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/control/flutter_blue_plus_scanner_controller.dart b/lib/control/flutter_blue_plus_scanner_controller.dart index a7f34b6..1c93cf6 100644 --- a/lib/control/flutter_blue_plus_scanner_controller.dart +++ b/lib/control/flutter_blue_plus_scanner_controller.dart @@ -24,6 +24,18 @@ import 'package:logger/logger.dart'; var logger = Logger(); class FlutterBluePlusScannerController extends ScannerControllerImpl { + late final StreamSubscription<BluetoothAdapterState> _availSubs; + + FlutterBluePlusScannerController() { + _availSubs = FlutterBluePlus.adapterState.listen( + (d) => super.setAvailability( + d == BluetoothAdapterState.on + ? ScanAvailability.available + : ScanAvailability.unavailable, + ), + ); + } + @override Future<void> startScan({ Duration timeout = const Duration(seconds: 5), @@ -66,6 +78,7 @@ class FlutterBluePlusScannerController extends ScannerControllerImpl { @override void dispose() { stopScan().ignore(); + _availSubs.cancel().ignore(); super.dispose(); } } |