-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathuser_screen.dart
68 lines (59 loc) · 1.49 KB
/
user_screen.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import 'package:flutter/material.dart';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:qr_code_scanner/qr_code_scanner.dart';
class UserScreen extends StatelessWidget {
final String userId;
UserScreen({required this.userId});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Userid $userId'),
),
body: Center(
child: QrImage(
data: userId,
version: QrVersions.auto,
size: 200.0,
),
),
);
}
}
class ScannerScreen extends StatefulWidget {
const ScannerScreen({super.key});
@override
_ScannerScreenState createState() => _ScannerScreenState();
}
class _ScannerScreenState extends State<ScannerScreen> {
final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
late QRViewController controller;
String? userId;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Scan QR Code'),
),
body: QRView(
key: qrKey,
onQRViewCreated: _onQRViewCreated,
),
);
}
void _onQRViewCreated(QRViewController controller) {
this.controller = controller;
controller.scannedDataStream.listen((scanData) {
setState(() {
userId = scanData.code;
});
controller.pauseCamera();
// Use the userId to establish a connection with the other user
});
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
}