protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.ScanCodeQR);

            _surfaceView = FindViewById <SurfaceView>(Resource.Id.cameraView);
            _txtResult   = FindViewById <TextView>(Resource.Id.txtResult);

            // Traemos la barra toobar
            Toolbar toolBar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolBar);

            // Una marca atrás en el icono en ActionBar
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);

            // Creo el detector qr
            _barcodeDetector = new BarcodeDetector.Builder(this)
                               .SetBarcodeFormats(BarcodeFormat.QrCode)
                               .Build();

            // Creo la camara
            _cameraSource = new CameraSource.Builder(this, _barcodeDetector)
                            .SetRequestedPreviewSize(1600, 1024)
                            .SetAutoFocusEnabled(true)
                            .Build();

            _surfaceView.Holder.AddCallback(this);
            _barcodeDetector.SetProcessor(this);
        }
Exemple #2
0
        private void BindResources()
        {
            var toolbar = FindViewById <CenteredToolbar>(Resource.Id.toolbar);

            toolbar.SetTitle(Resource.String.new_device_scan_title);

            var layout = FindViewById <LinearLayout>(Resource.Id.instruction);

            var instructionNumber = layout.FindViewById <AppCompatTextView>(Resource.Id.instruction_number);
            var instructionText   = layout.FindViewById <AppCompatTextView>(Resource.Id.instruction_text);

            statusLabel = FindViewById <AppCompatTextView>(Resource.Id.status_label);

            instructionNumber.Text = "3";
            instructionText.SetText(Resource.String.scan_qr_message_label);

            SetSupportActionBar(toolbar);
            this.BackPressed += NewDeviceSetupActivity_BackPressed;
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);

            surfaceView = FindViewById <SurfaceView>(Resource.Id.cameraView);

            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.QrCode)
                              .Build();

            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetRequestedPreviewSize(640, 480)
                           .Build();

            surfaceView.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }
Exemple #3
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.QR_Code);

            cameraPreview = FindViewById <SurfaceView>(Resource.Id.cameraPreview);
            txtResult     = FindViewById <TextView>(Resource.Id.txtResult);
            BackButton    = FindViewById <Button>(Resource.Id.BackButton);

            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.QrCode)
                              .Build();
            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetRequestedPreviewSize(640, 480)
                           .Build();

            cameraPreview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
            //ustawienie kontrolek i elementów

            BackButton.Click += delegate  //obsługa powrotu do wyszukiwarki
            {
                Intent intent = new Intent(this, typeof(Wyszukiwarka));
                this.StartActivity(intent);
                Finish();
            };
        }
        public CameraPreview(Context context, bool defaultTorchOn, bool virbationOnDetected, bool startScanningOnCreate)
            : base(context)
        {
            Configuration.IsScanning = startScanningOnCreate;
            _windowManager           = Context.GetSystemService(Context.WindowService).JavaCast <IWindowManager>();
            _barcodeDetector         = new BarcodeDetector.Builder(context)
                                       .SetBarcodeFormats(Configuration.BarcodeFormats)
                                       .Build();
            _cameraSource = new CameraSource
                            .Builder(context, _barcodeDetector)
                            .SetRequestedPreviewSize(1280, 720)
                            .SetAutoFocusEnabled(true)
                            .Build();
            Configuration.CameraSource = _cameraSource;
            _surfaceView = new SurfaceView(context);
            _surfaceView.Holder.AddCallback(new SurfaceHolderCallback(_cameraSource, _surfaceView));
            AddView(_surfaceView);

            var detectProcessor = new DetectorProcessor(context, virbationOnDetected);

            detectProcessor.OnDetected += DetectProcessor_OnDetected;
            _barcodeDetector.SetProcessor(detectProcessor);
            if (defaultTorchOn)
            {
                AutoSwitchOnTorch();
            }
        }
Exemple #5
0
 /// <summary>
 /// Clear and reset the model. Required Init function to be called again before calling ProcessAndRender.
 /// </summary>
 public void Clear()
 {
     if (_barcodeDetector != null)
     {
         _barcodeDetector.Dispose();
         _barcodeDetector = null;
     }
 }
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            CameraSource?.Release();
            BarcodeDetector?.Release();
            this.Write($"Disposed");
        }
Exemple #7
0
 public override void Init()
 {
     if (Initialized)
     {
         return;
     }
     _initialized    = true;
     TextRecognizer  = new TextRecognizer.Builder(Android.App.Application.Context).Build();
     BarcodeDetector = new BarcodeDetector.Builder(Android.App.Application.Context).SetBarcodeFormats(BarcodeFormat.QrCode).Build();
 }
Exemple #8
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.CodeSelection);

            cameraPreview = FindViewById <SurfaceView>(Resource.Id.cameraPreview);
            txtResult     = FindViewById <TextView>(Resource.Id.txtResult);

            if (MainActivity.pressedButton == 1)
            {
                barcodeDetector = new BarcodeDetector.Builder(this)
                                  .SetBarcodeFormats(BarcodeFormat.QrCode)
                                  .Build();

                cameraSource = new CameraSource
                               .Builder(this, barcodeDetector)
                               .SetRequestedPreviewSize(640, 480)
                               .Build();

                txtResult.SetText(Resource.String.qrS);
            }
            else if (MainActivity.pressedButton == 2)
            {
                barcodeDetector = new BarcodeDetector.Builder(this)
                                  .SetBarcodeFormats(BarcodeFormat.Code128)
                                  .Build();

                cameraSource = new CameraSource
                               .Builder(this, barcodeDetector)
                               .SetRequestedPreviewSize(640, 480)
                               .Build();

                txtResult.SetText(Resource.String.codeS);
            }
            else if (MainActivity.pressedButton == 3)
            {
                barcodeDetector = new BarcodeDetector.Builder(this)
                                  .SetBarcodeFormats(BarcodeFormat.Ean13)
                                  .Build();

                cameraSource = new CameraSource
                               .Builder(this, barcodeDetector)
                               .SetRequestedPreviewSize(640, 480)
                               .Build();

                txtResult.SetText(Resource.String.eanS);
            }

            cameraPreview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }
Exemple #9
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            previewCamara = FindViewById <SurfaceView>(Resource.Id.previewCamara);
            txtResultado  = FindViewById <TextView>(Resource.Id.txtResultado);
            detector      = new BarcodeDetector.Builder(this).SetBarcodeFormats(BarcodeFormat.QrCode).Build();
            camara        = new CameraSource.Builder(this, detector).SetRequestedPreviewSize(1280, 720).Build();

            previewCamara.Holder.AddCallback(this);
            detector.SetProcessor(this);
        }
Exemple #10
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.BarcodeScannerLayout);
            FindViews();
            HandleEvents();

            _barcodeDetector = new BarcodeDetector.Builder(this).SetBarcodeFormats(BarcodeFormat.QrCode | BarcodeFormat.DataMatrix | BarcodeFormat.Codabar | BarcodeFormat.Code128 | BarcodeFormat.Code39 | BarcodeFormat.Code93 | BarcodeFormat.Ean13 | BarcodeFormat.Ean8 | BarcodeFormat.Itf | BarcodeFormat.Pdf417 | BarcodeFormat.UpcA | BarcodeFormat.UpcE).Build();//setting specific barcode type

            _cameraSource = new CameraSource.Builder(this, _barcodeDetector).SetAutoFocusEnabled(true).SetRequestedPreviewSize(1000, 1000).Build();

            _cameraPreview.Holder.AddCallback(this);
            _barcodeDetector.SetProcessor(this);
        }
Exemple #11
0
        protected override void OnElementChanged(ElementChangedEventArgs <BarcodeScanner> e)
        {
            base.OnElementChanged(e);
            surfaceView = new SurfaceView(Context);
            surfaceView.Holder.AddCallback(this);
            SetNativeControl(surfaceView);

            Element.MaxZoom     = maxZoom;
            Element.SlideToZoom = 1;

            barcodeDetector = new BarcodeDetector.Builder(Context)
                              .SetBarcodeFormats(GetBarcodeFormat(Element.BarcodeType))
                              .Build();

            barcodeDetector.SetProcessor(this);
        }
        /// <summary>
        /// Detects barcodes.
        /// </summary>
        /// <returns>A message.</returns>
        public async Task <string> Detect()
        {
            TizenMM::Rectangle roi = new TizenMM::Rectangle(_point, _size);

            var detectedBarcode = await BarcodeDetector.DetectAsync(_mvSource, roi);

            _numberOfBarcodes = detectedBarcode.Count();
            _messages         = new List <string>();

            foreach (TizenMM.Vision.Barcode barcode in detectedBarcode)
            {
                _messages.Add(barcode.Message);
            }

            return(_imagePath);
        }
 protected override void OnCreate(Bundle savedInstanceState)
 {
     base.OnCreate(savedInstanceState);
     SetContentView(Resource.Layout.activity_scan_vision);
     surfaceView     = FindViewById <SurfaceView>(Resource.Id.cameraView);
     txtResult       = FindViewById <TextView>(Resource.Id.txtResult);
     barcodeDetector = new BarcodeDetector.Builder(this)
                       .SetBarcodeFormats(BarcodeFormat.QrCode)
                       .Build();
     cameraSource = new CameraSource
                    .Builder(this, barcodeDetector)
                    .SetRequestedPreviewSize(640, 480)
                    .Build();
     surfaceView.Holder.AddCallback(this);
     barcodeDetector.SetProcessor(this);
 }
 protected override void OnCreate(Bundle bundle)
 {
     base.OnCreate(bundle);
     SetContentView(Resource.Layout.ScanLayout);
     mode = this.Intent.GetStringExtra("mode");
     InitActionBar();
     surfaceview = FindViewById <SurfaceView>(Resource.Id.surfaceView1);
     detector    = new BarcodeDetector.Builder(this)
                   .SetBarcodeFormats(BarcodeFormat.Ean13 | BarcodeFormat.Ean8 | BarcodeFormat.QrCode)
                   .Build();
     cSource = new CameraSource.Builder(this, detector)
               .SetRequestedPreviewSize(1000, 1000)
               .SetAutoFocusEnabled(true)
               .Build();
     surfaceview.Holder.AddCallback(this);
     detector.SetProcessor(this);
 }
Exemple #15
0
 protected override void OnCreate(Bundle savedInstanceState)
 {
     base.OnCreate(savedInstanceState);
     SetContentView(Resource.Layout.QR_layout);
     surfaceView = FindViewById <SurfaceView>(Resource.Id.surfaceView1);
     txtResult   = FindViewById <TextView>(Resource.Id.QR_textView);
     //Bitmap bitMap = BitmapFactory.DecodeResource(ApplicationContext.Resources, Resource.Drawable.qrcode);
     barcodeDetector = new BarcodeDetector.Builder(this)
                       .SetBarcodeFormats(BarcodeFormat.QrCode)
                       .Build();
     cameraSource = new CameraSource
                    .Builder(this, barcodeDetector)
                    .SetRequestedPreviewSize(640, 480)
                    .Build();
     surfaceView.Holder.AddCallback(this);
     barcodeDetector.SetProcessor(this);
 }
Exemple #16
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your application here
            SetContentView(Resource.Layout.QRCodeScanner);

            cameraPreview = FindViewById <SurfaceView>(Resource.Id.cameraPreview);
            txtResult     = FindViewById <TextView>(Resource.Id.cameraPreviewtetxtView);
            qrgenerator   = FindViewById <Button>(Resource.Id.qrgeneratorbutton);

            barcodeDetector = new BarcodeDetector.Builder(this).SetBarcodeFormats(BarcodeFormat.QrCode).Build();
            cameraSource    = new CameraSource.Builder(this, barcodeDetector).SetRequestedPreviewSize(700, 500).Build();

            cameraPreview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }
Exemple #17
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Register);

            cameraPreview = FindViewById <SurfaceView>(Resource.Id.cameraPreview);
            txtResult     = FindViewById <TextView>(Resource.Id.txtResult);

            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.QrCode)
                              .Build();
            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetAutoFocusEnabled(true)
                           .SetRequestedPreviewSize(1000, 1000)
                           .Build();

            cameraPreview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }
        private void Init()
        {
            mStartRequested   = false;
            mSurfaceAvailable = false;

            mAppIdProcessor = new BarcodeDetectorProcessor(this);

            mBarcodeDetector = new BarcodeDetector.Builder(Context)
                               .SetBarcodeFormats(BarcodeFormat.QrCode)
                               .Build();
            mBarcodeDetector.SetProcessor(mAppIdProcessor);

            mCameraBuilder = new CameraSource.Builder(Context, mBarcodeDetector)
                             .SetFacing(CameraFacing.Back)
                             .SetAutoFocusEnabled(true)
                             .SetRequestedFps(30.0f);

            mSurfaceView = new SurfaceView(Context);
            mSurfaceView.Holder.AddCallback(new SurfaceCallback(this));
            AddView(mSurfaceView);
        }
Exemple #19
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.googlescanlayout);

            cameraview = FindViewById <SurfaceView>(Resource.Id.cameraPreview);
            txtresult  = FindViewById <TextView>(Resource.Id.txtresultview);

            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.QrCode)
                              .Build();
            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetRequestedPreviewSize(640, 480)
                           .SetAutoFocusEnabled(true) //----
                           .Build();
            // Create your application here

            cameraview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }
        /*public async Task<string> ReadQRCode()
         * {
         *  await StartScanning();
         *  return result;
         * }*/
        #endregion

        public async Task StartScanning()
        {
            //cameraPreview = FindViewById<SurfaceView>(Resource.Id.cameraPreview);

            cameraPreview = new SurfaceView(this);
            SetContentView(cameraPreview);

            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.QrCode)
                              .Build();
            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetRequestedPreviewSize(640, 480)
                           .SetAutoFocusEnabled(true)
                           .Build();



            cameraPreview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }
Exemple #21
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource
            // SetContentView(Resource.Layout.QrCode);
            surfaceView = FindViewById <SurfaceView>(Resource.Id.cameraView);
            txtResult   = FindViewById <TextView>(Resource.Id.txtResult);
            Bitmap bitMap = BitmapFactory.DecodeResource(ApplicationContext
                                                         .Resources, Resource.Drawable.logo_3m);

            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.QrCode)
                              .Build();
            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetRequestedPreviewSize(1600, 1024)
                           .SetAutoFocusEnabled(true)
                           .SetRequestedFps(24.0f)
                           .Build();
            surfaceView.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);

            cameraPreview = FindViewById <SurfaceView>(Resource.Id.cameraPreview);
            txtResult     = FindViewById <TextView>(Resource.Id.txtResult);

            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.QrCode)
                              .Build();
            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetRequestedPreviewSize(1280, 720)
                           .SetRequestedFps(30.0f)
                           .SetAutoFocusEnabled(true)
                           .Build();

            cameraPreview.Holder.AddCallback(this);
            cameraPreview.SetOnClickListener(this);
            barcodeDetector.SetProcessor(this);
        }
        protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.View> e)
        {
            base.OnElementChanged(e);

            try
            {
                if (e.OldElement != null || Element == null)
                {
                    return;
                }

                var activity = this.Context as Activity;
                _View = activity.LayoutInflater.Inflate(Resource.Layout.BarcodeScanView, this, false);
                AddView(_View);

                _SurfaceView = FindViewById <SurfaceView>(Resource.Id.barcodeScanView);

                var view = (BarcodeScanView)this.Element;
                _BarcodeDetector = new BarcodeDetector.Builder(this.Context)
                                   .SetBarcodeFormats(XamBarcodeFormatToAndroid(view.BarcodeFormat))
                                   .Build();

                _CameraSource = new CameraSource
                                .Builder(this.Context, _BarcodeDetector)
                                .SetFacing(CameraFacing.Back)       //default to back
                                .SetAutoFocusEnabled(true)          //default to false
                                .SetRequestedPreviewSize(1024, 768) //default to 1024x768
                                .SetRequestedFps(30f)               //default to 30 fps
                                .Build();

                _SurfaceView.Holder.AddCallback(this);
                _BarcodeDetector.SetProcessor(this);
            }
            catch (Exception ex)
            {
                Console.WriteLine("DROID_SCAN | OnElementChanged error", ex);
            }
        }
Exemple #24
0
        public async Task Init(
            System.Net.DownloadProgressChangedEventHandler onDownloadProgressChanged = null)
#endif
        {
            if (_barcodeDetector == null)
            {
                FileDownloadManager manager = new FileDownloadManager();

                manager.AddFile(
                    "https://github.com/WeChatCV/opencv_3rdparty/raw/wechat_qrcode/sr.prototxt",
                    _modelFolderName,
                    "8AE41ACBA97E8B4A8E741EE350481E49B8E01D787193F470A4C95EE1C02D5B61");

                manager.AddFile(
                    "https://github.com/WeChatCV/opencv_3rdparty/raw/wechat_qrcode/sr.caffemodel",
                    _modelFolderName,
                    "E5D36889D8E6EF2F1C1F515F807CEC03979320AC81792CD8FB927C31FD658AE3");

                if (onDownloadProgressChanged != null)
                {
                    manager.OnDownloadProgressChanged += onDownloadProgressChanged;
                }

#if UNITY_EDITOR || UNITY_IOS || UNITY_ANDROID || UNITY_STANDALONE || UNITY_WEBGL
                yield return(manager.Download());
#else
                await manager.Download();
#endif

                if (manager.AllFilesDownloaded)
                {
                    _barcodeDetector = new BarcodeDetector(
                        manager.Files[0].LocalFile,
                        manager.Files[1].LocalFile
                        );
                }
            }
        }
        public BarCodeCameraPreview(Context context) : base(context)
        {
            windowManager = Context.GetSystemService(Context.WindowService).JavaCast <IWindowManager>();

            barcodeDetector = new BarcodeDetector.Builder(context)
                              .SetBarcodeFormats(BarCodeCamera.BarcodeFormats)
                              .Build();

            cameraSource = new CameraSource
                           .Builder(context, barcodeDetector)
                           //.SetRequestedPreviewSize(1024, 768)
                           .SetAutoFocusEnabled(true)
                           .SetRequestedFps(30.0f)
                           .Build();

            surfaceView = new SurfaceView(context);
            surfaceView.Holder.AddCallback(new BarcodeSurfaceHolderCallback(cameraSource, surfaceView, this));
            AddView(surfaceView);

            barcodeDetectorProcessor             = new BarCodeDetectorProcessor(context, cameraSource);
            barcodeDetectorProcessor.OnDetected += DetectProcessor_OnDetected;
            barcodeDetector.SetProcessor(barcodeDetectorProcessor);
        }
        public CameraPreview(Context context)
            : base(context)
        {
            windowManager   = Context.GetSystemService(Context.WindowService).JavaCast <IWindowManager>();
            barcodeDetector = new BarcodeDetector.Builder(context)
                              .SetBarcodeFormats(Configuration.BarcodeFormats)
                              .Build();
            cameraSource = new CameraSource
                           .Builder(context, barcodeDetector)
                           .SetRequestedPreviewSize(640, 480)
                           .SetAutoFocusEnabled(true)
                           .Build();
            Configuration.CameraSource = cameraSource;
            surfaceView = new SurfaceView(context);

            surfaceView.Holder.AddCallback(new SurfaceHolderCallback(cameraSource, surfaceView));
            AddView(surfaceView);

            var detectProcessor = new DetectorProcessor(context);

            detectProcessor.OnDetected += DetectProcessor_OnDetected;
            barcodeDetector.SetProcessor(detectProcessor);
        }
        public void ReceiveDetections(Detections detections)
        {
            var codes = detections.DetectedItems;

            if (codes.Size() == 0)
            {
                return;
            }

            if (Task != null)
            {
                if (Task.IsCanceled)
                {
                    Task = null;
                    RunOnUiThread(() =>
                    {
                        ShowToastMessage("Task.IsCanceled", ToastLength.Long);
                    });
                    Thread.Sleep(5000);
                    return;
                }
                if (Task.IsFaulted)
                {
                    Task = null;
                    RunOnUiThread(() =>
                    {
                        ShowToastMessage("Task.IsFaulted", ToastLength.Long);
                    });
                    Thread.Sleep(5000);
                    return;
                }
                if (Task.IsCompletedSuccessfully)
                {
                    Task = null;
                    RunOnUiThread(() =>
                    {
                        ShowToastMessage("Task.IsCompletedSuccessfully", ToastLength.Long);
                    });
                    Thread.Sleep(5000);
                    return;
                }
                if (Task.IsCompleted)
                {
                    Task = null;
                    RunOnUiThread(() =>
                    {
                        ShowToastMessage("Task.IsCompleted", ToastLength.Long);
                    });
                    Thread.Sleep(5000);
                    return;
                }

                ShowToastMessage(Task.Status.ToString());
                Thread.Sleep(5000);
                return;
            }

            BarcodeDetector.Release();
            var barcode = (Barcode)codes.ValueAt(0);

            _scannedBarcode = barcode.RawValue;
            CameraPreviewProgressBar.Visibility = ViewStates.Visible;

            RunOnUiThread(() =>
            {
                ShowToastMessage(_scannedBarcode, ToastLength.Long);
            });

            Thread.Sleep(5000);
            if (!_callback)
            {
                Task = Task.Run(async() =>
                {
                    try
                    {
                        var result = await ProductService.GetProductByBarcode(_scannedBarcode);

                        if (result.Error.Any())
                        {
                            var message = Resources.GetString(Resource.String.ProductBarcodeNotFound);

                            RunOnUiThread(() =>
                            {
                                BarcodeDetector.SetProcessor(this);
                                ShowToastMessage(message, ToastLength.Long);
                            });

                            return;
                        }

                        RunOnUiThread(() =>
                        {
                            NavigationManager.GoToProductDetails(result.Data);
                        });
                    }
                    catch (Exception ex)
                    {
                        RunOnUiThread(() =>
                        {
                            BarcodeDetector.SetProcessor(this);
                            ShowToastMessage(ex.Message, ToastLength.Long);
                        });
                    }
                });
            }
            else
            {
                NavigationManager.GoToPrevious();
            }
        }
Exemple #28
0
        public static async Task <Result> AnalyzeBarcodeAsync(MediaVisionSource source)
        {
            var point = new Point(0, 0);
            var size  = new Size((int)source.Width, (int)source.Height);
            var roi   = new Rectangle(point, size);

            try
            {
                var barcodeLists = await BarcodeDetector.DetectAsync(source, roi);

                if (barcodeLists.Count() == 0)
                {
                    return(null);
                }

                var resultBarcode = barcodeLists.FirstOrDefault();
                var text          = resultBarcode.Message;
                var rawbytes      = new byte[source.Buffer.Length];
                source.Buffer.CopyTo(rawbytes, 0, source.Buffer.Length);

                ResultPoint[] resultPoint =
                {
                    new ResultPoint(resultBarcode.Region.Points.ElementAt(0).X, resultBarcode.Region.Points.ElementAt(0).Y),
                    new ResultPoint(resultBarcode.Region.Points.ElementAt(1).X, resultBarcode.Region.Points.ElementAt(1).Y),
                    new ResultPoint(resultBarcode.Region.Points.ElementAt(2).X, resultBarcode.Region.Points.ElementAt(2).Y),
                    new ResultPoint(resultBarcode.Region.Points.ElementAt(3).X, resultBarcode.Region.Points.ElementAt(3).Y)
                };

                BarcodeFormat format;
                switch (resultBarcode.Type)
                {
                case BarcodeType.Code128:
                    format = BarcodeFormat.CODE_128;
                    break;

                case BarcodeType.Code39:
                    format = BarcodeFormat.CODE_39;
                    break;

                case BarcodeType.Ean13:
                    format = BarcodeFormat.EAN_13;
                    break;

                case BarcodeType.Ean8:
                    format = BarcodeFormat.EAN_8;
                    break;

                case BarcodeType.I25:
                    format = BarcodeFormat.ITF;
                    break;

                case BarcodeType.QR:
                    format = BarcodeFormat.QR_CODE;
                    break;

                case BarcodeType.UpcA:
                    format = BarcodeFormat.UPC_A;
                    break;

                case BarcodeType.UpcE:
                    format = BarcodeFormat.UPC_E;
                    break;

                default:
                    format = BarcodeFormat.All_1D;
                    break;
                }

                return(new Result(text, rawbytes, resultPoint, format));
            }
            catch (Exception)
            {
                return(null);
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.scanner);



            //mysql-------------------------------------

            sServer = "Server=projektowanie.vetrex.eu;Port=3306;database=UG;User Id=UG;Password=WinterIsComing0;charset=utf8";
            SetMysqlConn(sServer);
            //------------------------------------------


            cameraPreview = FindViewById <SurfaceView>(Resource.Id.cameraPreview);
            txtResult     = FindViewById <TextView>(Resource.Id.txtResult);
            ListDataPos   = FindViewById <ListView>(Resource.Id.lvListLog);
            btnApproved   = FindViewById <Button>(Resource.Id.btnApproved);


            logList = new List <string>();

            vib = (Vibrator)GetSystemService(Context.VibratorService);



            barcodeDetector = new BarcodeDetector.Builder(this)
                              .SetBarcodeFormats(BarcodeFormat.Ean13)
                              .Build();

            cameraSource = new CameraSource
                           .Builder(this, barcodeDetector)
                           .SetRequestedPreviewSize(640, 480)
                           .SetAutoFocusEnabled(true)
                           .Build();



            cameraPreview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);


            // On Click delegate
            btnApproved.Click += delegate
            {
                OnButtonApprovedClicked();
            };

            void OnButtonApprovedClicked()
            {
                var intent = new Intent(this, typeof(AddMealActivity));

                intent.PutExtra("kcalInput", kcalInput);
                intent.PutExtra("carbInput", carbInput);
                intent.PutExtra("fatInput", fatInput);
                intent.PutExtra("proteinInput", proteinInput);
                StartActivity(intent);
                Finish();
            }
        }