Navaron Bracke

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

@@ -19,6 +19,12 @@ public class BarcodeHandler: NSObject, FlutterStreamHandler { @@ -19,6 +19,12 @@ public class BarcodeHandler: NSObject, FlutterStreamHandler {
19 eventChannel.setStreamHandler(self) 19 eventChannel.setStreamHandler(self)
20 } 20 }
21 21
  22 + func publishError(_ error: FlutterError) {
  23 + DispatchQueue.main.async {
  24 + self.eventSink?(error)
  25 + }
  26 + }
  27 +
22 func publishEvent(_ event: [String: Any?]) { 28 func publishEvent(_ event: [String: Any?]) {
23 DispatchQueue.main.async { 29 DispatchQueue.main.async {
24 self.eventSink?(event) 30 self.eventSink?(event)
@@ -42,10 +42,10 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin { @@ -42,10 +42,10 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin {
42 init(barcodeHandler: BarcodeHandler, registry: FlutterTextureRegistry) { 42 init(barcodeHandler: BarcodeHandler, registry: FlutterTextureRegistry) {
43 self.mobileScanner = MobileScanner(registry: registry, mobileScannerCallback: { barcodes, error, image in 43 self.mobileScanner = MobileScanner(registry: registry, mobileScannerCallback: { barcodes, error, image in
44 if error != nil { 44 if error != nil {
45 - barcodeHandler.publishEvent([  
46 - "name": MobileScannerErrorCodes.BARCODE_ERROR,  
47 - "data": error!.localizedDescription,  
48 - ]) 45 + barcodeHandler.publishError(
  46 + FlutterError(code: MobileScannerErrorCodes.BARCODE_ERROR,
  47 + message: error?.localizedDescription,
  48 + details: nil))
49 return 49 return
50 } 50 }
51 51
@@ -131,10 +131,9 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler, @@ -131,10 +131,9 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler,
131 131
132 if error != nil { 132 if error != nil {
133 DispatchQueue.main.async { 133 DispatchQueue.main.async {
134 - self?.sink?([  
135 - "name": MobileScannerErrorCodes.BARCODE_ERROR,  
136 - "data": error?.localizedDescription,  
137 - ]) 134 + self?.sink?(FlutterError(
  135 + code: MobileScannerErrorCodes.BARCODE_ERROR,
  136 + message: error?.localizedDescription, details: nil))
138 } 137 }
139 return 138 return
140 } 139 }
@@ -185,10 +184,9 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler, @@ -185,10 +184,9 @@ public class MobileScannerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler,
185 try imageRequestHandler.perform([barcodeRequest]) 184 try imageRequestHandler.perform([barcodeRequest])
186 } catch let error { 185 } catch let error {
187 DispatchQueue.main.async { 186 DispatchQueue.main.async {
188 - self?.sink?([  
189 - "name": MobileScannerErrorCodes.BARCODE_ERROR,  
190 - "data": error.localizedDescription,  
191 - ]) 187 + self?.sink?(FlutterError(
  188 + code: MobileScannerErrorCodes.BARCODE_ERROR,
  189 + message: error.localizedDescription, details: nil))
192 } 190 }
193 } 191 }
194 } 192 }