Ejemplo n.º 1
0
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

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

            try
            {
                // Initializing the energy module.
                _frame = UIScreen.MainScreen.ApplicationFrame;

                // Search for the navigation controller
                UINavigationController nav = null;
                foreach (var vc in
                         UIApplication.SharedApplication.Windows[0].RootViewController.ChildViewControllers)
                {
                    if (vc is UINavigationController)
                    {
                        nav = (UINavigationController)vc;
                    }
                }

                _frame = new CGRect(_frame.X,
                                    _frame.Y + nav.NavigationBar.Frame.Size.Height,
                                    _frame.Width,
                                    _frame.Height - nav.NavigationBar.Frame.Size.Height);

                _scanView = new AnylineEnergyModuleView(_frame);

                _error = null;
                var success = _scanView.SetupWithLicenseKey(LicenseKey, Self, out _error);
                if (!success)
                {
                    (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show();
                }

                _scanView.CancelOnResult = true;

                // After setup, add the scanView to the view
                View.AddSubview(_scanView);

                _error = null;
                _scanView.SetScanMode(ALScanMode.AnalogMeter, out _error);
                if (_error != null)
                {
                    (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show();
                }

                // Start scanning
                StartScanning();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@"ERROR: ", ex.Message);
            }
        }
        private void HandleSegmentChange(object sender, EventArgs e)
        {
            var uiSegmentedControl = sender as UISegmentedControl;

            if (uiSegmentedControl != null)
            {
                var selectedSegmentId = uiSegmentedControl.SelectedSegment;

                var scanMode = _segmentItems.ElementAt((int)selectedSegmentId).Value;
                Console.WriteLine("Scanmode: {0}", scanMode);

                _error = null;
                _anylineEnergyView.SetScanMode(scanMode, out _error);

                if (_error != null)
                {
                    (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show();
                }
            }
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Initializing the energy module.
            _frame = UIScreen.MainScreen.ApplicationFrame;
            _frame = new CGRect(_frame.X,
                                _frame.Y + NavigationController.NavigationBar.Frame.Size.Height,
                                _frame.Width,
                                _frame.Height - NavigationController.NavigationBar.Frame.Size.Height);

            _anylineEnergyView = new AnylineEnergyModuleView(_frame);

            _error   = null;
            _success = _anylineEnergyView.SetupWithLicenseKey(_licenseKey, Self, out _error);
            if (!_success)
            {
                (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show();
            }

            // We'll stop scanning manually
            _anylineEnergyView.CancelOnResult = false;

            // After setup is complete we add the module to the view of this view controller
            View.AddSubview(_anylineEnergyView);

            _error = null;
            _anylineEnergyView.SetScanMode(_segmentItems.ElementAt(_defaultIndex).Value, out _error);
            if (_error != null)
            {
                (_alert = new UIAlertView("Error", _error.DebugDescription, (IUIAlertViewDelegate)null, "OK", null)).Show();
            }

            // Create a subview for toggling native barcode scanning:

            _toggleBarcodeView            = new UIView(new CGRect(0, 0, 150, 50));
            _toggleBarcodeLabel           = new UILabel(new CGRect(0, 0, 100, 30));
            _toggleBarcodeLabel.Text      = "Detect Barcodes";
            _toggleBarcodeLabel.TextColor = UIColor.White;
            _toggleBarcodeLabel.SizeToFit();

            _toggleBarcodeSwitch               = new UISwitch();
            _toggleBarcodeSwitch.On            = false;
            _toggleBarcodeSwitch.TintColor     = UIColor.White;
            _toggleBarcodeSwitch.OnTintColor   = new UIColor(0, 153 / 255, 1, 1);
            _toggleBarcodeSwitch.ValueChanged += OnValueChanged;

            _toggleBarcodeView.AddSubview(_toggleBarcodeLabel);
            _toggleBarcodeView.AddSubview(_toggleBarcodeSwitch);

            if (Title != "Heat Meter Scan")
            {
                View.AddSubview(_toggleBarcodeView);
            }

            // We don't need a segment control for only one option:
            if (_segmentItems.Count > 1)
            {
                List <string> list = new List <string>();
                foreach (var key in _segmentItems.Keys)
                {
                    list.Add(key);
                }

                var obj = list.ToArray <object>();
                _meterTypeSegment = new UISegmentedControl(obj);

                //adjust the segmentcontrol size so all elements fit to the view
                if (_meterTypeSegment.NumberOfSegments > 3)
                {
                    for (int i = 0; i < _meterTypeSegment.NumberOfSegments; i++)
                    {
                        _meterTypeSegment.SetWidth(View.Frame.Width / (_meterTypeSegment.NumberOfSegments + 1), i);
                    }

                    _meterTypeSegment.ApportionsSegmentWidthsByContent = true;
                }
                _meterTypeSegment.Center = new CGPoint(View.Center.X, View.Frame.Size.Height - 40);

                _meterTypeSegment.SelectedSegment = _defaultIndex;
                _meterTypeSegment.ValueChanged   += HandleSegmentChange;
                View.AddSubview(_meterTypeSegment);

                _selectionLabel           = new UILabel(new CGRect(_meterTypeSegment.Frame.X, _meterTypeSegment.Frame.Y - 35, _meterTypeSegment.Frame.Width, 35));
                _selectionLabel.TextColor = UIColor.White;
                _selectionLabel.Text      = _labelText;
                View.AddSubview(_selectionLabel);
            }
        }