Navaron Bracke

fix async dispose() implementations

... ... @@ -74,7 +74,7 @@ class _BarcodeScannerWithControllerState
@override
Future<void> dispose() async {
await controller.dispose();
super.dispose();
await controller.dispose();
}
}
... ...
... ... @@ -107,7 +107,7 @@ class _BarcodeScannerListViewState extends State<BarcodeScannerListView> {
@override
Future<void> dispose() async {
await controller.dispose();
super.dispose();
await controller.dispose();
}
}
... ...
... ... @@ -13,14 +13,14 @@ class BarcodeScannerPageView extends StatefulWidget {
}
class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
final MobileScannerController scannerController = MobileScannerController();
final MobileScannerController controller = MobileScannerController();
final PageController pageController = PageController();
@override
void initState() {
super.initState();
scannerController.start();
unawaited(controller.start());
}
@override
... ... @@ -33,7 +33,7 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
onPageChanged: (index) async {
// Stop the camera view for the current page,
// and then restart the camera for the new page.
await scannerController.stop();
await controller.stop();
// When switching pages, add a delay to the next start call.
// Otherwise the camera will start before the next page is displayed.
... ... @@ -43,13 +43,13 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
return;
}
scannerController.start();
unawaited(controller.start());
},
children: [
_BarcodeScannerPage(controller: scannerController),
_BarcodeScannerPage(controller: controller),
const SizedBox(),
_BarcodeScannerPage(controller: scannerController),
_BarcodeScannerPage(controller: scannerController),
_BarcodeScannerPage(controller: controller),
_BarcodeScannerPage(controller: controller),
],
),
);
... ... @@ -57,9 +57,9 @@ class _BarcodeScannerPageViewState extends State<BarcodeScannerPageView> {
@override
Future<void> dispose() async {
await scannerController.dispose();
pageController.dispose();
super.dispose();
await controller.dispose();
}
}
... ...
... ... @@ -139,7 +139,7 @@ class _BarcodeScannerReturningImageState
@override
Future<void> dispose() async {
await controller.dispose();
super.dispose();
await controller.dispose();
}
}
... ...
... ... @@ -128,8 +128,8 @@ class _BarcodeScannerWithScanWindowState
@override
Future<void> dispose() async {
await controller.dispose();
super.dispose();
await controller.dispose();
}
}
... ...
... ... @@ -122,7 +122,7 @@ class _BarcodeScannerWithZoomState extends State<BarcodeScannerWithZoom> {
@override
Future<void> dispose() async {
await controller.dispose();
super.dispose();
await controller.dispose();
}
}
... ...
... ... @@ -87,8 +87,8 @@ class _BarcodeScannerWithOverlayState extends State<BarcodeScannerWithOverlay> {
@override
Future<void> dispose() async {
await controller.dispose();
super.dispose();
await controller.dispose();
}
}
... ...
... ... @@ -293,9 +293,9 @@ class MethodChannelMobileScanner extends MobileScannerPlatform {
return;
}
await methodChannel.invokeMethod<void>('stop');
_textureId = null;
await methodChannel.invokeMethod<void>('stop');
}
@override
... ...
... ... @@ -369,10 +369,10 @@ class MobileScannerController extends ValueNotifier<MobileScannerState> {
return;
}
await MobileScannerPlatform.instance.dispose();
unawaited(_barcodesController.close());
_isDisposed = true;
unawaited(_barcodesController.close());
super.dispose();
await MobileScannerPlatform.instance.dispose();
}
}
... ...