Example #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);
            }
        }
        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);
            }
        }
Example #3
0
        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, this.Self, out error);
            if (!success)
            {
                (alert = new UIAlertView("Error", error.DebugDescription, 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);

            anylineEnergyView.ScanMode = segmentItems.ElementAt(defaultIndex).Value;

            //we don't need a segment control for only one option:
            if (segmentItems.Count > 1)
            {
                meterTypeSegment = new UISegmentedControl(segmentItems.Keys.ToArray());

                //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 = this.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);

                infoLabel               = new UILabel(new CGRect(0, View.Frame.Y + NavigationController.NavigationBar.Frame.Size.Height + 13, View.Frame.Width, 35));
                infoLabel.TextColor     = UIColor.White;
                infoLabel.Text          = "";
                infoLabel.TextAlignment = UITextAlignment.Center;
                View.AddSubview(infoLabel);

                UpdateInfoLabel(anylineEnergyView.ScanMode);
            }
        }