Navaron Bracke

forward barcode error events as FlutterError()'s on iOS & MacOS

... ... @@ -19,6 +19,12 @@ public class BarcodeHandler: NSObject, FlutterStreamHandler {
eventChannel.setStreamHandler(self)
}
func publishError(_ error: FlutterError) {
DispatchQueue.main.async {
self.eventSink?(error)
}
}
func publishEvent(_ event: [String: Any?]) {
DispatchQueue.main.async {
self.eventSink?(event)
... ...
... ... @@ -42,10 +42,10 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin {
init(barcodeHandler: BarcodeHandler, registry: FlutterTextureRegistry) {
self.mobileScanner = MobileScanner(registry: registry, mobileScannerCallback: { barcodes, error, image in
if error != nil {
barcodeHandler.publishEvent([
"name": MobileScannerErrorCodes.BARCODE_ERROR,
"data": error!.localizedDescription,
])
barcodeHandler.publishError(
FlutterError(code: MobileScannerErrorCodes.BARCODE_ERROR,
message: error?.localizedDescription,
details: nil))
return
}
... ...
... ... @@ -131,10 +131,9 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler,
if error != nil {
DispatchQueue.main.async {
self?.sink?([
"name": MobileScannerErrorCodes.BARCODE_ERROR,
"data": error?.localizedDescription,
])
self?.sink?(FlutterError(
code: MobileScannerErrorCodes.BARCODE_ERROR,
message: error?.localizedDescription, details: nil))
}
return
}
... ... @@ -185,10 +184,9 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler,
try imageRequestHandler.perform([barcodeRequest])
} catch let error {
DispatchQueue.main.async {
self?.sink?([
"name": MobileScannerErrorCodes.BARCODE_ERROR,
"data": error.localizedDescription,
])
self?.sink?(FlutterError(
code: MobileScannerErrorCodes.BARCODE_ERROR,
message: error.localizedDescription, details: nil))
}
}
}
... ...