import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; class QrScannerDialog extends StatefulWidget { @override State createState() => _QrScannerDialogState(); } class _QrScannerDialogState extends State { final GlobalKey qrKey = GlobalKey(debugLabel: 'QR'); // Barcode? result; // QRViewController? controller; Barcode? _barcode; bool isPicked = false; @override Widget build(BuildContext context) { return Scaffold( body: Container( width: double.infinity, height: double.infinity, color: Colors.white, child: Column( children: [ Expanded( flex: 1, child: MobileScanner(key : qrKey,onDetect: _handleBarcode), ), // Expanded( // flex: 1, // child: Center( // child: (result != null) // ? Text( // 'Barcode Type: ${result!.format} Data: ${result!.code}') // : Text('Scan a code'), // ), // ), Padding( padding: const EdgeInsets.all(12.0), child: DefaultButton( LocaleKeys.cancel.tr(), () { Navigator.pop(context); }, ), ), ], ), ), ); } void _handleBarcode(BarcodeCapture barcodes) { // this.controller = controller; Barcode? data = barcodes.barcodes.firstOrNull; if(data == null || isPicked) { return; } // controller.scannedDataStream.listen((scanData) { setState(() { // result = scanData; isPicked = true; Navigator.pop(context, data.displayValue); }); // }); // controller.pauseCamera(); // controller.resumeCamera(); } @override void dispose() { super.dispose(); } }