|
|
@@ -78,6 +78,7 @@ public class QRView:NSObject,FlutterPlatformView { |
|
|
func setDimensions(_ result: @escaping FlutterResult, width: Double, height: Double, scanArea: Double, scanAreaOffset: Double) -> Void { |
|
|
func setDimensions(_ result: @escaping FlutterResult, width: Double, height: Double, scanArea: Double, scanAreaOffset: Double) -> Void { |
|
|
MTBBarcodeScanner.requestCameraPermission(success: { permissionGranted in |
|
|
MTBBarcodeScanner.requestCameraPermission(success: { permissionGranted in |
|
|
if permissionGranted { |
|
|
if permissionGranted { |
|
|
|
|
|
// self?.channel.invokeMethod("onPermissionSet", arguments: true) |
|
|
// First set the size of the preview area. |
|
|
// First set the size of the preview area. |
|
|
self.previewView.frame = CGRect(x: 0, y: 0, width: width, height: height) |
|
|
self.previewView.frame = CGRect(x: 0, y: 0, width: width, height: height) |
|
|
|
|
|
|
|
|
@@ -125,14 +126,14 @@ public class QRView:NSObject,FlutterPlatformView { |
|
|
scanner = MTBBarcodeScanner(previewView: previewView) |
|
|
scanner = MTBBarcodeScanner(previewView: previewView) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var allowedBarcodeTypes: Array<AVMetadataObject.ObjectType> = [] |
|
|
var allowedBarcodeTypes: Array<AVMetadataObject.ObjectType> = [] |
|
|
arguments.forEach { arg in |
|
|
arguments.forEach { arg in |
|
|
allowedBarcodeTypes.append( QRCodeTypes[arg]!) |
|
|
allowedBarcodeTypes.append( QRCodeTypes[arg]!) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MTBBarcodeScanner.requestCameraPermission(success: { permissionGranted in |
|
|
MTBBarcodeScanner.requestCameraPermission(success: { permissionGranted in |
|
|
if permissionGranted { |
|
|
if permissionGranted { |
|
|
|
|
|
self.channel.invokeMethod("onPermissionSet", arguments: true) |
|
|
do { |
|
|
do { |
|
|
try self.scanner?.startScanning(with: self.cameraFacing, resultBlock: { [weak self] codes in |
|
|
try self.scanner?.startScanning(with: self.cameraFacing, resultBlock: { [weak self] codes in |
|
|
if let codes = codes { |
|
|
if let codes = codes { |
|
|
@@ -199,12 +200,18 @@ public class QRView:NSObject,FlutterPlatformView { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func getCameraInfo(_ result: @escaping FlutterResult) -> Void { |
|
|
func getCameraInfo(_ result: @escaping FlutterResult) -> Void { |
|
|
if let sc: MTBBarcodeScanner = scanner { |
|
|
|
|
|
result(sc.camera.rawValue) |
|
|
|
|
|
} else { |
|
|
|
|
|
let error = FlutterError(code: "cameraInformationError", message: "Could not get camera information", details: nil) |
|
|
|
|
|
result(error) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
MTBBarcodeScanner.requestCameraPermission(success: { permissionGranted in |
|
|
|
|
|
if permissionGranted { |
|
|
|
|
|
if let sc: MTBBarcodeScanner = self.scanner { |
|
|
|
|
|
result(sc.camera.rawValue) |
|
|
|
|
|
} else { |
|
|
|
|
|
let error = FlutterError(code: "cameraInformationError", message: "Could not get camera information", details: nil) |
|
|
|
|
|
result(error) |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
return result(FlutterError(code: "cameraPermission", message: "Permission denied to access the camera", details: nil)) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func flipCamera(_ result: @escaping FlutterResult){ |
|
|
func flipCamera(_ result: @escaping FlutterResult){ |
|
|
@@ -224,12 +231,18 @@ public class QRView:NSObject,FlutterPlatformView { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func getFlashInfo(_ result: @escaping FlutterResult) -> Void { |
|
|
func getFlashInfo(_ result: @escaping FlutterResult) -> Void { |
|
|
if let sc: MTBBarcodeScanner = scanner { |
|
|
|
|
|
result(sc.torchMode.rawValue != 0) |
|
|
|
|
|
} else { |
|
|
|
|
|
let error = FlutterError(code: "cameraInformationError", message: "Could not get flash information", details: nil) |
|
|
|
|
|
result(error) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
MTBBarcodeScanner.requestCameraPermission(success: { permissionGranted in |
|
|
|
|
|
if permissionGranted { |
|
|
|
|
|
if let sc: MTBBarcodeScanner = self.scanner { |
|
|
|
|
|
result(sc.torchMode.rawValue != 0) |
|
|
|
|
|
} else { |
|
|
|
|
|
let error = FlutterError(code: "cameraInformationError", message: "Could not get flash information", details: nil) |
|
|
|
|
|
result(error) |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
return result(FlutterError(code: "cameraPermission", message: "Permission denied to access the camera", details: nil)) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func toggleFlash(_ result: @escaping FlutterResult){ |
|
|
func toggleFlash(_ result: @escaping FlutterResult){ |
|
|
|