From 9332d8126f34abb128ea4059864ab33e5f23b475 Mon Sep 17 00:00:00 2001 From: Leah Date: Wed, 11 Feb 2026 22:58:15 +0100 Subject: [PATCH] linted and added greying out --- lib/screens/scanner_screen.dart | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/lib/screens/scanner_screen.dart b/lib/screens/scanner_screen.dart index 2049dab..e52afb3 100644 --- a/lib/screens/scanner_screen.dart +++ b/lib/screens/scanner_screen.dart @@ -44,12 +44,16 @@ class _ScannerScreenState extends State { connector.addListener(_connectionListener); - _bluetoothStateSubscription = - FlutterBluePlus.adapterState.listen((state) { + _bluetoothStateSubscription = FlutterBluePlus.adapterState.listen((state) { if (mounted) { setState(() { _bluetoothState = state; }); + // Cancel scan if Bluetooth turns off while scanning + if (state != BluetoothAdapterState.on && + connector.state == MeshCoreConnectionState.scanning) { + connector.stopScan(); + } } }); } @@ -94,15 +98,23 @@ class _ScannerScreenState extends State { builder: (context, connector, child) { final isScanning = connector.state == MeshCoreConnectionState.scanning; + final isBluetoothOn = _bluetoothState == BluetoothAdapterState.on; return FloatingActionButton.extended( - onPressed: () { - if (isScanning) { - connector.stopScan(); - } else { - connector.startScan(); - } - }, + onPressed: isBluetoothOn + ? () { + if (isScanning) { + connector.stopScan(); + } else { + connector.startScan(); + } + } + : null, + backgroundColor: isBluetoothOn ? null : Colors.grey, + foregroundColor: isBluetoothOn ? null : Colors.white, + mouseCursor: isBluetoothOn + ? SystemMouseCursors.click + : SystemMouseCursors.forbidden, icon: isScanning ? const SizedBox( width: 20,