Пример #1
0
        private void SetGradientColor(CustomGradientButton element)
        {
            var gradientLayer = new CAGradientLayer();

            gradientLayer.CornerRadius = element.BorderRadius;
            gradientLayer.Frame        = Bounds;
            gradientLayer.Colors       = new CGColor[] { element.StartColor.MultiplyAlpha(element.AlphaMultiplier).ToCGColor(), element.EndColor.MultiplyAlpha(element.AlphaMultiplier).ToCGColor() };
            if (element.HasBorder)
            {
                gradientLayer.BorderWidth = (nfloat)element.BorderWidth;
                gradientLayer.BorderColor = element.BorderColor.ToCGColor();//element.EndColor.ToCGColor();
            }
            var layer = Control?.Layer.Sublayers.LastOrDefault();

            Control?.Layer.InsertSublayerBelow(gradientLayer, layer);
            Control?.SetTitleColor(element.TextColor.ToUIColor(), UIControlState.Disabled);
        }
Пример #2
0
        async void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            var item = e.SelectedItem as MasterPageItem;

            if (item != null && item.Action == ActionType.OpenPage)
            {
                Detail = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
                masterPage.listViewMenu.SelectedItem = null;
                IsPresented = false;
            }
            else if (item != null && item.Action == ActionType.Command)
            {
                if (item.CommandName == "CerrarSesionCommand")
                {
                    (masterPage.BindingContext as MenuPageViewModel).CerrarSesionCommand.Execute(null);
                    masterPage.listViewMenu.SelectedItem = null;
                }
            }
            else if (item != null && item.Action == ActionType.CommandView)
            {
                if (item.CommandName == "QRCommand")
                {
                    var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);

                    if (status != PermissionStatus.Granted)
                    {
                        if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera))
                        {
                            await DisplayAlert("Movil Registro", "Necesita acceso a su camara", "OK");
                        }

                        var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Camera);

                        //Best practice to always check that the key exists
                        if (results.ContainsKey(Permission.Camera))
                        {
                            status = results[Permission.Camera];
                        }
                    }

                    if (status != PermissionStatus.Granted)
                    {
                        await DisplayAlert("Info", "El permiso a la camara está deshabilitado para la aplicación, vaya a configuración y active dicho permiso", "OK");

                        return;
                    }

                    //creando vista scanner
                    var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
                    options.PossibleFormats = new List <ZXing.BarcodeFormat>()
                    {
                        ZXing.BarcodeFormat.QR_CODE
                    };

                    var customOverlay = new Grid
                    {
                        RowSpacing        = 0,
                        ColumnSpacing     = 0,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        VerticalOptions   = LayoutOptions.FillAndExpand,
                        RowDefinitions    = new RowDefinitionCollection()
                        {
                            new RowDefinition()
                            {
                                Height = 60
                            },

                            new RowDefinition()
                            {
                                Height = new GridLength(50, GridUnitType.Star)
                            },
                            new RowDefinition()
                            {
                                Height = new GridLength(290)
                            },
                            new RowDefinition()
                            {
                                Height = new GridLength(50, GridUnitType.Star)
                            },

                            new RowDefinition()
                            {
                                Height = 50
                            },
                        },
                        ColumnDefinitions = new ColumnDefinitionCollection()
                        {
                            new ColumnDefinition()
                            {
                                Width = new GridLength(50, GridUnitType.Star)
                            },
                            new ColumnDefinition()
                            {
                                Width = new GridLength(300)
                            },
                            new ColumnDefinition()
                            {
                                Width = new GridLength(50, GridUnitType.Star)
                            }
                        }
                    };

                    var titlelayout = new StackLayout()
                    {
                        VerticalOptions   = LayoutOptions.FillAndExpand,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        BackgroundColor   = Color.LightGray,
                        Padding           = new Thickness(0, 20, 0, 10)
                    };

                    var title = new Label
                    {
                        Text                    = "Lector de Documentos",
                        TextColor               = Color.Black,
                        Style                   = (Style)Application.Current.Resources["TitleLabelStyle"],
                        FontSize                = 18,
                        VerticalOptions         = LayoutOptions.FillAndExpand,
                        VerticalTextAlignment   = TextAlignment.Center,
                        HorizontalTextAlignment = TextAlignment.Center,
                        HorizontalOptions       = LayoutOptions.FillAndExpand
                    };

                    titlelayout.Children.Add(title);

                    var topShadow = new StackLayout()
                    {
                        VerticalOptions   = LayoutOptions.FillAndExpand,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        BackgroundColor   = Color.FromHex("#80000000")
                    };

                    var leftShadow = new StackLayout()
                    {
                        VerticalOptions   = LayoutOptions.FillAndExpand,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        BackgroundColor   = Color.FromHex("#80000000")
                    };

                    var xfSource = _imageSourceConverter.ConvertFromInvariantString("ScanQR.svg") as ImageSource;
                    var qrCode   = new SvgCachedImage()
                    {
                        Aspect            = Aspect.AspectFill,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                        VerticalOptions   = LayoutOptions.CenterAndExpand,
                        Source            = new SvgImageSource(xfSource, 0, 0, true)
                    };

                    var rightShadow = new StackLayout()
                    {
                        VerticalOptions   = LayoutOptions.FillAndExpand,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        BackgroundColor   = Color.FromHex("#80000000")
                    };

                    var bottomShadow = new StackLayout()
                    {
                        VerticalOptions   = LayoutOptions.FillAndExpand,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        BackgroundColor   = Color.FromHex("#80000000")
                    };

                    var abort = new CustomGradientButton
                    {
                        Text            = "Cancelar",
                        HeightRequest   = 50,
                        VerticalOptions = LayoutOptions.EndAndExpand,
                        StartColor      = (Color)Application.Current.Resources["ButtonStartBackColor"],
                        EndColor        = (Color)Application.Current.Resources["ButtonEndBackColor"],
                        Style           = (Style)Application.Current.Resources["BoldButtonStyle"],
                        TextColor       = (Color)Application.Current.Resources["LightTextColor"]
                    };

                    customOverlay.Children.Add(titlelayout, 0, 0);
                    Grid.SetColumnSpan(titlelayout, 3);

                    customOverlay.Children.Add(topShadow, 0, 1);
                    Grid.SetColumnSpan(topShadow, 3);

                    customOverlay.Children.Add(leftShadow, 0, 2);
                    customOverlay.Children.Add(rightShadow, 2, 2);

                    customOverlay.Children.Add(qrCode, 1, 2);

                    customOverlay.Children.Add(bottomShadow, 0, 3);
                    Grid.SetColumnSpan(bottomShadow, 3);

                    customOverlay.Children.Add(abort, 0, 4);
                    Grid.SetColumnSpan(abort, 3);

                    var scanPage = new ZXingScannerPage(options, customOverlay);

                    abort.Clicked += (obj, sender1) =>
                    {
                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            scanPage.IsScanning = false;
                            await Navigation.PopModalAsync();
                        });
                    };

                    scanPage.OnScanResult += (result) =>
                    {
                        scanPage.IsScanning = false;

                        Device.BeginInvokeOnMainThread(() =>
                        {
                            Navigation.PopModalAsync();
                            if (string.IsNullOrEmpty(result.Text))
                            {
                                DisplayAlert("Info", "Ningún Código Válido se  Escaneado", "OK");
                            }
                            else
                            {
                                result.Text.Replace("https://pagos.registropropiedadportoviejo.gob.ec/ventanilla/validar.xhtml?codigo=",
                                                    "https://pagos.registropropiedadportoviejo.gob.ec/ventanilla/pdfjs/web/viewer.html?file=/ventanilla/api/certificado/file/");
                                Detail = new NavigationPage(new VerDocumentoPage(result.Text));
                            }
                        });
                    };

                    await Navigation.PushModalAsync(scanPage);

                    masterPage.listViewMenu.SelectedItem = null;
                    IsPresented = false;
                }
            }
        }