public override void Cancel() { if (viewController != null) { viewController.InvokeOnMainThread(() => { viewController.Cancel(); viewController.DismissViewController(true, null); }); } scanResultResetEvent.Set(); }
public override Task<Result> Scan (MobileBarcodeScanningOptions options) { return Task.Factory.StartNew(() => { try { scanResultResetEvent.Reset(); Result result = null; this.appController.InvokeOnMainThread(() => { //viewController = new ZxingCameraViewController(options, this); viewController = new ZXing.Mobile.ZXingScannerViewController(options, this); viewController.OnScannedResult += barcodeResult => { viewController.InvokeOnMainThread(() => { viewController.Cancel(); viewController.DismissViewController(true, () => { result = barcodeResult; scanResultResetEvent.Set(); }); }); }; appController.PresentViewController(viewController, true, null); }); scanResultResetEvent.WaitOne(); viewController.Dispose(); return result; } catch (Exception ex) { Console.WriteLine(ex); return null; } }); }
public override Task <Result> Scan(MobileBarcodeScanningOptions options) { return(Task.Factory.StartNew(() => { try { scanResultResetEvent.Reset(); Result result = null; this.appController.InvokeOnMainThread(() => { //viewController = new ZxingCameraViewController(options, this); viewController = new ZXing.Mobile.ZXingScannerViewController(options, this); viewController.OnScannedResult += barcodeResult => { viewController.InvokeOnMainThread(() => { viewController.Cancel(); viewController.DismissViewController(true, null); }); result = barcodeResult; scanResultResetEvent.Set(); }; appController.PresentViewController(viewController, true, null); }); scanResultResetEvent.WaitOne(); viewController.Dispose(); return result; } catch (Exception ex) { Console.WriteLine(ex); return null; } })); }