Navaron Bracke

fix async dispose() implementations

@@ -74,7 +74,7 @@ class _BarcodeScannerWithControllerState @@ -74,7 +74,7 @@ class _BarcodeScannerWithControllerState
74 74
75 @override 75 @override
76 Future<void> dispose() async { 76 Future<void> dispose() async {
77 - await controller.dispose();  
78 super.dispose(); 77 super.dispose();
  78 + await controller.dispose();
79 } 79 }
80 } 80 }
@@ -107,7 +107,7 @@ class _BarcodeScannerListViewState extends State<BarcodeScannerListView> { @@ -107,7 +107,7 @@ class _BarcodeScannerListViewState extends State<BarcodeScannerListView> {
107 107
108 @override 108 @override
109 Future<void> dispose() async { 109 Future<void> dispose() async {
110 - await controller.dispose();  
111 super.dispose(); 110 super.dispose();
  111 + await controller.dispose();
112 } 112 }
113 } 113 }
@@ -13,14 +13,14 @@ class BarcodeScannerPageView extends StatefulWidget { @@ -13,14 +13,14 @@ class BarcodeScannerPageView extends StatefulWidget {
13 } 13 }
14 14
15 class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> { 15 class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
16 - final MobileScannerController scannerController = MobileScannerController(); 16 + final MobileScannerController controller = MobileScannerController();
17 17
18 final PageController pageController = PageController(); 18 final PageController pageController = PageController();
19 19
20 @override 20 @override
21 void initState() { 21 void initState() {
22 super.initState(); 22 super.initState();
23 - scannerController.start(); 23 + unawaited(controller.start());
24 } 24 }
25 25
26 @override 26 @override
@@ -33,7 +33,7 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> { @@ -33,7 +33,7 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
33 onPageChanged: (index) async { 33 onPageChanged: (index) async {
34 // Stop the camera view for the current page, 34 // Stop the camera view for the current page,
35 // and then restart the camera for the new page. 35 // and then restart the camera for the new page.
36 - await scannerController.stop(); 36 + await controller.stop();
37 37
38 // When switching pages, add a delay to the next start call. 38 // When switching pages, add a delay to the next start call.
39 // Otherwise the camera will start before the next page is displayed. 39 // Otherwise the camera will start before the next page is displayed.
@@ -43,13 +43,13 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> { @@ -43,13 +43,13 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
43 return; 43 return;
44 } 44 }
45 45
46 - scannerController.start(); 46 + unawaited(controller.start());
47 }, 47 },
48 children: [ 48 children: [
49 - _BarcodeScannerPage(controller: scannerController), 49 + _BarcodeScannerPage(controller: controller),
50 const SizedBox(), 50 const SizedBox(),
51 - _BarcodeScannerPage(controller: scannerController),  
52 - _BarcodeScannerPage(controller: scannerController), 51 + _BarcodeScannerPage(controller: controller),
  52 + _BarcodeScannerPage(controller: controller),
53 ], 53 ],
54 ), 54 ),
55 ); 55 );
@@ -57,9 +57,9 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> { @@ -57,9 +57,9 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
57 57
58 @override 58 @override
59 Future<void> dispose() async { 59 Future<void> dispose() async {
60 - await scannerController.dispose();  
61 pageController.dispose(); 60 pageController.dispose();
62 super.dispose(); 61 super.dispose();
  62 + await controller.dispose();
63 } 63 }
64 } 64 }
65 65
@@ -139,7 +139,7 @@ class _BarcodeScannerReturningImageState @@ -139,7 +139,7 @@ class _BarcodeScannerReturningImageState
139 139
140 @override 140 @override
141 Future<void> dispose() async { 141 Future<void> dispose() async {
142 - await controller.dispose();  
143 super.dispose(); 142 super.dispose();
  143 + await controller.dispose();
144 } 144 }
145 } 145 }
@@ -128,8 +128,8 @@ class _BarcodeScannerWithScanWindowState @@ -128,8 +128,8 @@ class _BarcodeScannerWithScanWindowState
128 128
129 @override 129 @override
130 Future<void> dispose() async { 130 Future<void> dispose() async {
131 - await controller.dispose();  
132 super.dispose(); 131 super.dispose();
  132 + await controller.dispose();
133 } 133 }
134 } 134 }
135 135
@@ -122,7 +122,7 @@ class _BarcodeScannerWithZoomState extends State<BarcodeScannerWithZoom> { @@ -122,7 +122,7 @@ class _BarcodeScannerWithZoomState extends State<BarcodeScannerWithZoom> {
122 122
123 @override 123 @override
124 Future<void> dispose() async { 124 Future<void> dispose() async {
125 - await controller.dispose();  
126 super.dispose(); 125 super.dispose();
  126 + await controller.dispose();
127 } 127 }
128 } 128 }
@@ -87,8 +87,8 @@ class _BarcodeScannerWithOverlayState extends State<BarcodeScannerWithOverlay> { @@ -87,8 +87,8 @@ class _BarcodeScannerWithOverlayState extends State<BarcodeScannerWithOverlay> {
87 87
88 @override 88 @override
89 Future<void> dispose() async { 89 Future<void> dispose() async {
90 - await controller.dispose();  
91 super.dispose(); 90 super.dispose();
  91 + await controller.dispose();
92 } 92 }
93 } 93 }
94 94
@@ -293,9 +293,9 @@ class MethodChannelMobileScanner extends MobileScannerPlatform { @@ -293,9 +293,9 @@ class MethodChannelMobileScanner extends MobileScannerPlatform {
293 return; 293 return;
294 } 294 }
295 295
296 - await methodChannel.invokeMethod<void>('stop');  
297 -  
298 _textureId = null; 296 _textureId = null;
  297 +
  298 + await methodChannel.invokeMethod<void>('stop');
299 } 299 }
300 300
301 @override 301 @override
@@ -369,10 +369,10 @@ class MobileScannerController extends ValueNotifier<MobileScannerState> { @@ -369,10 +369,10 @@ class MobileScannerController extends ValueNotifier<MobileScannerState> {
369 return; 369 return;
370 } 370 }
371 371
372 - await MobileScannerPlatform.instance.dispose();  
373 - unawaited(_barcodesController.close());  
374 -  
375 _isDisposed = true; 372 _isDisposed = true;
  373 + unawaited(_barcodesController.close());
376 super.dispose(); 374 super.dispose();
  375 +
  376 + await MobileScannerPlatform.instance.dispose();
377 } 377 }
378 } 378 }