diff --git a/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt b/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt index dc03065..8301cd3 100644 --- a/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt +++ b/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt @@ -90,6 +90,7 @@ class QRView(private val context: Context, messenger: BinaryMessenger, private v call.argument("cutOutBottomOffset")!!, result, ) + "invertScan" -> setInvertScan(call.argument("isInvertScan")!!, result) else -> result.notImplemented() } } @@ -257,6 +258,14 @@ class QRView(private val context: Context, messenger: BinaryMessenger, private v result.success(true) } + private fun setInvertScan(isInvert: Boolean, result: MethodChannel.Result) { + barcodeView!!.pause() + val settings = barcodeView!!.cameraSettings + settings.isScanInverted = isInvert + barcodeView!!.cameraSettings = settings + barcodeView!!.resume(); + } + private fun setScanAreaSize( dpScanAreaWidth: Double, dpScanAreaHeight: Double, diff --git a/lib/src/qr_code_scanner.dart b/lib/src/qr_code_scanner.dart index e675289..8627b8b 100644 --- a/lib/src/qr_code_scanner.dart +++ b/lib/src/qr_code_scanner.dart @@ -357,4 +357,16 @@ class QRViewController { } return false; } + + //Starts/Stops invert scanning. + Future scanInvert(bool isScanInvert) async { + if (defaultTargetPlatform == TargetPlatform.android) { + try { + await _channel + .invokeMethod('invertScan', {"isInvertScan": isScanInvert}); + } on PlatformException catch (e) { + throw CameraException(e.code, e.message); + } + } + } } diff --git a/lib/src/web/flutter_qr_web.dart b/lib/src/web/flutter_qr_web.dart index 1da3407..cb7751b 100644 --- a/lib/src/web/flutter_qr_web.dart +++ b/lib/src/web/flutter_qr_web.dart @@ -309,6 +309,12 @@ class QRViewControllerWeb implements QRViewController { // TODO: flash is simply not supported by JavaScipt return; } + + @override + Future scanInvert(bool isScanInvert) { + // TODO: implement scanInvert + throw UnimplementedError(); + } } Widget createWebQrView({onPlatformViewCreated, CameraFacing? cameraFacing}) =>