summaryrefslogtreecommitdiff
path: root/lib/control/flutter_blue_plus_scanner_controller.dart
diff options
context:
space:
mode:
authoruvok2025-08-02 11:46:51 +0200
committeruvok2025-08-02 11:46:51 +0200
commit829c0d31e46e874f11ebd7a90b3b91d197df37df (patch)
treeb00520555ea5889b7b6a4b08464d4992c23ebec6 /lib/control/flutter_blue_plus_scanner_controller.dart
parente82083b9e2166b4e427ae23630871914dc72f276 (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.dart13
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();
}
}