Skip to content

Commit 00f2e24

Browse files
fix: logic of connect and scan
1 parent 5dbdbc0 commit 00f2e24

File tree

2 files changed

+12
-26
lines changed

2 files changed

+12
-26
lines changed

lib/bademagic_module/bluetooth/connect_state.dart

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
import 'package:badgemagic/bademagic_module/bluetooth/datagenerator.dart';
22
import 'package:badgemagic/bademagic_module/bluetooth/write_state.dart';
33
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
4-
import 'package:badgemagic/providers/BadgeAliasProvider.dart';
5-
import 'package:get_it/get_it.dart';
64
import 'base_ble_state.dart';
75

86
class ConnectState extends RetryBleState {
97
final ScanResult scanResult;
108
final DataTransferManager manager;
11-
final String displayName;
129

13-
ConnectState({
14-
required this.manager,
15-
required this.scanResult,
16-
required this.displayName,
17-
});
10+
ConnectState({required this.manager, required this.scanResult});
1811

1912
@override
2013
Future<BleState?> processState() async {
@@ -28,20 +21,12 @@ class ConnectState extends RetryBleState {
2821
if (connectionState == BluetoothConnectionState.connected) {
2922
connected = true;
3023

31-
String alias = displayName;
32-
final aliasProvider = GetIt.I<BadgeAliasProvider>();
33-
final maybeAlias = aliasProvider.getAlias(displayName);
34-
if (maybeAlias != null && maybeAlias.trim().isNotEmpty) {
35-
alias = maybeAlias;
36-
}
37-
38-
logger.d("Device '$displayName' connected");
39-
toast.showToast('Connected successfully to "$alias".');
24+
logger.d("Device connected");
25+
toast.showToast('Device connected successfully.');
4026

4127
final writeState =
4228
WriteState(device: scanResult.device, manager: manager);
4329
final result = await writeState.process();
44-
4530
try {
4631
await scanResult.device.disconnect();
4732
logger.d("Device disconnected after transfer");
@@ -50,17 +35,23 @@ class ConnectState extends RetryBleState {
5035
} catch (e) {
5136
logger.e("Error during disconnect after transfer: $e");
5237
}
53-
5438
return result;
5539
} else {
5640
throw Exception("Failed to connect to the device");
5741
}
5842
} catch (e) {
59-
toast.showErrorToast('Failed to connect to "$displayName", retrying...');
43+
toast.showErrorToast('Failed to connect retrying...');
6044
rethrow;
6145
} finally {
6246
if (!connected) {
63-
await scanResult.device.disconnect();
47+
try {
48+
await scanResult.device.disconnect();
49+
logger.d("Device disconnected in finally block");
50+
await Future.delayed(const Duration(seconds: 1));
51+
logger.d("Waited 1s after disconnect (finally)");
52+
} catch (e) {
53+
logger.e("Error during disconnect in finally: $e");
54+
}
6455
}
6556
}
6657
}

lib/bademagic_module/bluetooth/scan_state.dart

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,23 +73,18 @@ class ScanState extends NormalBleState {
7373
toast.showToast('Device found. Connecting...');
7474

7575
final foundName = foundDevice.device.name.trim();
76-
String? resolvedAlias;
7776

7877
for (final real in allowedNames) {
7978
final alias = aliasProvider.getAlias(real)?.trim();
8079
if (alias != null &&
8180
alias.toLowerCase() == foundName.toLowerCase()) {
82-
resolvedAlias = alias;
8381
break;
8482
}
8583
}
8684

87-
final displayName = resolvedAlias ?? foundName;
88-
8985
nextStateCompleter.complete(ConnectState(
9086
scanResult: foundDevice,
9187
manager: manager,
92-
displayName: displayName,
9388
));
9489
} catch (e) {
9590
logger.w("No matching device found in this batch: $e");

0 commit comments

Comments
 (0)