diff --git a/lib/widgets/data_scanner.dart b/lib/widgets/data_scanner.dart index e507170..66c272a 100644 --- a/lib/widgets/data_scanner.dart +++ b/lib/widgets/data_scanner.dart @@ -72,6 +72,9 @@ class DataScannerConfiguration { /// Whether to show the torch toggle. Defaults to `false`. final bool showTorchToggle; + /// Whether to rotate the camera preview on Android. Defaults to `false`. Consider this a workaround! + final bool rotateOnAndroid; + /// Where to position the torch toggle. Defaults to [Alignment.bottomCenter] final Alignment torchToggleAlignment; @@ -100,6 +103,7 @@ class DataScannerConfiguration { this.torchToggleAlignment = Alignment.bottomCenter, this.torchToggleMargin = const EdgeInsets.all(32), this.detectionOutline, + this.rotateOnAndroid = false, RouteObserver? routeObserver, }) : _routeObserver = routeObserver ?? RouteObserver(); } @@ -387,6 +391,7 @@ class _DataScannerState extends State with RouteAware { SizedCameraPreview( size: _calculatedSize!, cameraController: cameraController, + rotateOnAndroid: scannerConfiguration.rotateOnAndroid, ), if (scannerConfiguration.showOverlay) CameraOverlay( diff --git a/lib/widgets/sized_camera_preview.dart b/lib/widgets/sized_camera_preview.dart index 1edf077..3e69797 100644 --- a/lib/widgets/sized_camera_preview.dart +++ b/lib/widgets/sized_camera_preview.dart @@ -5,6 +5,9 @@ import 'package:flutter/material.dart'; /// Sized and scaled [CameraPreview] wrapper. class SizedCameraPreview extends StatefulWidget { + /// temporary Workaround: rotate Camera Preview on Android Devices + final bool rotateOnAndroid; + /// Size of the clipped preview. final Size size; @@ -15,6 +18,7 @@ class SizedCameraPreview extends StatefulWidget { Key? key, required this.size, required this.cameraController, + this.rotateOnAndroid = false, }) : super(key: key); @override @@ -48,7 +52,7 @@ class _SizedCameraPreviewState extends State { } Widget _rotatedOnAndroid(Widget content) { - if (Platform.isAndroid) { + if (widget.rotateOnAndroid && Platform.isAndroid) { return RotatedBox( quarterTurns: 1, child: content,