@@ -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