17
17
*/
18
18
19
19
import 'dart:developer' ;
20
+ import 'dart:io' ;
20
21
21
22
import 'package:flutter/material.dart' ;
22
23
import 'package:flutter/services.dart' ;
23
- import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart' ;
24
+ // import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart';
24
25
import 'package:flutter_gen/gen_l10n/app_localizations.dart' ;
25
26
import 'package:flutter_typeahead/flutter_typeahead.dart' ;
26
- // import 'package:font_awesome_flutter/font_awesome_flutter.dart';
27
+ import 'package:font_awesome_flutter/font_awesome_flutter.dart' ;
27
28
import 'package:provider/provider.dart' ;
28
29
import 'package:wger/helpers/consts.dart' ;
29
30
import 'package:wger/helpers/platform.dart' ;
@@ -33,30 +34,28 @@ import 'package:wger/widgets/core/core.dart';
33
34
34
35
import 'package:flutter_zxing/flutter_zxing.dart' ;
35
36
37
+
36
38
class ScanReader extends StatelessWidget {
37
39
String ? scannedr;
38
40
39
41
@override
40
- Widget build (BuildContext context) {
41
- return Scaffold (
42
- body: ReaderWidget (
43
- onScan: (result) {
44
- debugPrint ('Reader widget res : => ' );
45
- scannedr = result.text;
46
- debugPrint (scannedr);
47
- Navigator .pop (context, scannedr);
48
- },
49
- ),
50
- );
51
- }
42
+ Widget build (BuildContext context) => Scaffold (
43
+ body: ReaderWidget (
44
+ onScan: (result) {
45
+ scannedr = result.text;
46
+ Navigator .pop (context, scannedr);
47
+ },
48
+ ),
49
+ );
50
+
52
51
}
53
52
54
53
class IngredientTypeahead extends StatefulWidget {
55
54
final TextEditingController _ingredientController;
56
55
final TextEditingController _ingredientIdController;
57
56
58
57
String ? barcode = '' ;
59
- Code ? result;
58
+ // Code? result;
60
59
61
60
late final bool ? test;
62
61
final bool showScanner;
@@ -76,20 +75,20 @@ class IngredientTypeahead extends StatefulWidget {
76
75
class _IngredientTypeaheadState extends State <IngredientTypeahead > {
77
76
var _searchEnglish = true ;
78
77
79
- Future <String > _readerscan (BuildContext context) async {
80
- String barcode ;
78
+ Future <String > readerscan (BuildContext context) async {
79
+ String scannedcode ;
81
80
try {
82
- barcode =
81
+ scannedcode =
83
82
await Navigator .of (context).push (MaterialPageRoute (builder: (context) => ScanReader ()));
84
83
85
- if (barcode .compareTo ('-1' ) == 0 ) {
84
+ if (scannedcode .compareTo ('-1' ) == 0 ) {
86
85
return '' ;
87
86
}
88
87
} on PlatformException {
89
88
return '' ;
90
89
}
91
90
92
- return barcode ;
91
+ return scannedcode ;
93
92
}
94
93
95
94
@override
@@ -157,8 +156,7 @@ class _IngredientTypeaheadState extends State<IngredientTypeahead> {
157
156
onPressed: () async {
158
157
try {
159
158
if (! widget.test! ) {
160
- // using navigation to call Reader Widget and return context(scan result)
161
- widget.barcode = await _readerscan (context);
159
+ widget.barcode = await readerscan (context);
162
160
}
163
161
164
162
if (widget.barcode! .isNotEmpty) {
@@ -216,8 +214,10 @@ class _IngredientTypeaheadState extends State<IngredientTypeahead> {
216
214
}
217
215
}
218
216
} catch (e) {
219
- debugPrint ('scanner did not fire!! ' );
220
217
showErrorDialog (e, context);
218
+ // Need to pop back since reader scan is a widget
219
+ // otherwise returns null when back button is pressed
220
+ return Navigator .pop (context);
221
221
}
222
222
},
223
223
icon: Image .asset ('assets/images/barcode_scanner_icon.png' ),
0 commit comments