Esempio n. 1
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            base.OnCreateView(inflater, container, savedInstanceState);

            InitializePicker();

            matrixScanListener = new MatrixScanOverlayListener(Context, BubbleClick, picker);
            var matrixScan = new MatrixScan(picker, matrixScanListener);

            var viewBasedOverlay =
                new ViewBasedMatrixScanOverlay(Context, matrixScan, matrixScanListener);

            matrixScan.AddOverlay(new SimpleMatrixScanOverlay(Context, matrixScan, matrixScanListener));
            matrixScan.AddOverlay(viewBasedOverlay);


            // You can enable beeping via:
            matrixScan.BeepOnNewCode = true;

            matrixScanListener.SetViewBasedMatrixScanOverlay(viewBasedOverlay);

            var view = inflater.Inflate(Resource.Layout.ShelfManagementFragment, null);

            pickerContainer = view.FindViewById <FrameLayout>(Resource.Id.picker);
            pickerContainer.AddView(picker);
            freezeButton        = view.FindViewById <Button>(Resource.Id.freeze_button);
            freezeButton.Click += (sender, e) => Freeze();
            detail              = view.FindViewById <TextView>(Resource.Id.detail);
            detail.Click       += (sender, e) => CloseDetail();

            return(view);
        }
        public void MatrixScan(MatrixScan matrixScan, Frame didUpdate)
        {
            if (didUpdate.TrackedCodes.Count == 0)
            {
                return;
            }

            IndicatorState indicatorState = CalculateIndicatorState(didUpdate.TrackedCodes);

            if (lastIndicatorState != indicatorState)
            {
                bubbles.Clear();
                if (indicatorState != IndicatorState.HIGHLIGHT_ONLY)
                {
                    foreach (var it in didUpdate.TrackedCodes)
                    {
                        var bubble = bubbleFactory.CreateBubble(indicatorState, it.Value);
                        bubbles.AddOrUpdate(
                            it.Key.LongValue(),
                            bubble,
                            (arg1, arg2) => bubble);

                        viewBasedMatrixScanOverlay.SetOffsetForCode(GetOffsetForCode(it.Value, it.Key.LongValue()), it.Key.LongValue());
                        viewBasedMatrixScanOverlay.Post(() =>
                        {
                            if (bubbles.ContainsKey(it.Key.LongValue()))
                            {
                                viewBasedMatrixScanOverlay.SetViewForCode(GetViewForCode(it.Value, it.Key.LongValue()), it.Key.LongValue());
                            }
                        });
                    }
                }
            }
            lastIndicatorState = indicatorState;

            foreach (var id in didUpdate.AddedIdentifiers)
            {
                if (didUpdate.TrackedCodes.ContainsKey(id))
                {
                    var bubble = bubbleFactory.CreateBubble(indicatorState, didUpdate.TrackedCodes[id]);
                    bubbles.AddOrUpdate(
                        id.LongValue(),
                        bubble,
                        (arg1, arg2) => bubble);
                }
            }

            foreach (var id in didUpdate.RemovedIdentifiers)
            {
                ((IDictionary <long, BaseBubble>)bubbles).Remove(id.LongValue());
            }
        }
 public bool ShouldRejectCode(MatrixScan matrixScan, TrackedBarcode barcode)
 {
     return(false);
 }