From fb828872732a1f8a9d5e5abc2d19616a864fc384 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Thu, 17 Dec 2020 09:23:53 +0100 Subject: [PATCH] Updated barcode check to inline check. Updated README.md. --- README.md | 14 ++++++++++++-- example/README.md | 18 +++++++++++++++--- example/lib/main.dart | 12 ++++-------- lib/src/qr_code_scanner.dart | 2 ++ 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 6050aed..973c25c 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,17 @@ When a QR code is recognized, the text identified will be set in 'qrText'. ```dart class _QRViewExampleState extends State { final GlobalKey qrKey = GlobalKey(debugLabel: 'QR'); - var qrText = ""; + Barcode result; QRViewController controller; + /// Overriding reassemble and pausing the camera + /// ensures us that hot reload won't give a black screen + @override + void reassemble() { + super.reassemble(); + controller.pauseCamera(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -82,7 +90,9 @@ class _QRViewExampleState extends State { Expanded( flex: 1, child: Center( - child: Text('Scan result: $qrText'), + child: (result != null) ? + Text('Barcode Type: ${describeEnum(result.format)} Data: ${result.code}') + : Text('Scan a code'), ), ) ], diff --git a/example/README.md b/example/README.md index 4fc9d62..866b9a4 100644 --- a/example/README.md +++ b/example/README.md @@ -41,12 +41,20 @@ class QRViewExample extends StatefulWidget { } class _QRViewExampleState extends State { - var qrText = ''; + Barcode result; var flashState = flashOn; var cameraState = frontCamera; QRViewController controller; final GlobalKey qrKey = GlobalKey(debugLabel: 'QR'); + /// Overriding reassemble and pausing the camera + /// ensures us that hot reload won't give a black screen + @override + void reassemble() { + super.reassemble(); + controller.pauseCamera(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -60,7 +68,10 @@ class _QRViewExampleState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Text('This is the result of scan: $qrText'), + if (result != null) + Text('Barcode Type: ${describeEnum(result.format)} Data: ${result.code}') + else + Text('Scan a code'), Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, @@ -177,7 +188,7 @@ class _QRViewExampleState extends State { this.controller = controller; controller.scannedDataStream.listen((scanData) { setState(() { - qrText = scanData; + result = scanData; }); }); } @@ -189,6 +200,7 @@ class _QRViewExampleState extends State { } } + ``` diff --git a/example/lib/main.dart b/example/lib/main.dart index 3503d3e..fd8aeba 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -33,13 +33,6 @@ class _QRViewExampleState extends State { @override Widget build(BuildContext context) { - String resultText; - if (result == null) { - resultText = 'No previous result'; - } else { - resultText = - 'This is the result of scan (${describeEnum(result.format)}): ${result.code}'; - } return Scaffold( body: Column( children: [ @@ -51,7 +44,10 @@ class _QRViewExampleState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Text(resultText), + if (result != null) + Text('Barcode Type: ${describeEnum(result.format)} Data: ${result.code}') + else + Text('Scan a code'), Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, diff --git a/lib/src/qr_code_scanner.dart b/lib/src/qr_code_scanner.dart index 451f240..bbe3df1 100644 --- a/lib/src/qr_code_scanner.dart +++ b/lib/src/qr_code_scanner.dart @@ -106,6 +106,8 @@ class QRView extends StatefulWidget { } class _QRViewState extends State { + + @override Widget build(BuildContext context) { return Stack(