Skip to content

Commit 2f0f26f

Browse files
committed
🔧 data decoding issue
1 parent dfc3082 commit 2f0f26f

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

lib/screens/qr_scanner_screen.dart

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,15 @@ class _QRScannerScreenState extends State<QRScannerScreen> {
3737

3838
try {
3939
final qrJson = jsonDecode(qrData);
40-
final deviceUid = qrJson['device_uid'];
41-
final secret = qrJson['secret'];
42-
final userAccessToken = qrJson['user_access_token'];
40+
final deviceUid = qrJson['device_uid'] as String?;
41+
final secret = qrJson['secret'] as String?;
42+
final userAccessToken = qrJson['user_access_token'] as String?;
43+
if (deviceUid == null || secret == null || userAccessToken == null) {
44+
ScaffoldMessenger.of(context).showSnackBar(
45+
const SnackBar(content: Text('Invalid QR Code: Missing required data')),
46+
);
47+
return;
48+
}
4349

4450
final storedToken = TokenStorage.getAccessToken();
4551

@@ -60,18 +66,20 @@ class _QRScannerScreenState extends State<QRScannerScreen> {
6066
);
6167
return;
6268
}
63-
64-
// Debug logging
65-
print('Stored token data: $storedTokenData');
66-
print('QR token data: $qrTokenData');
67-
6869
// Compare decoded token data
6970
if (_compareTokenData(storedTokenData, qrTokenData)) {
7071
final response = await registerDevice(deviceUid, qrTokenData['uid']);
71-
final responseData = jsonDecode(response.body);
7272

73+
if (response.statusCode != 200) {
74+
ScaffoldMessenger.of(context).showSnackBar(
75+
SnackBar(content: Text('Server error: ${response.statusCode}')),
76+
);
77+
return;
78+
}
79+
80+
final responseData = jsonDecode(response.body);
7381
final stats = responseData['stats'];
74-
final msg = responseData['message'];
82+
final msg = responseData['message'] ?? responseData['msg'];
7583
final deviceStatus = responseData['device_status'];
7684

7785
if (stats != 200) {

0 commit comments

Comments
 (0)