public AcoesDePanicoView(AcoesDePanicoViewModel emergencias)
            : base()
        {
            Emergencias = emergencias;
            Title = "MeusProtetores";
            page = new MeusProtetores (emergencias) { Title = "Meus protetores", Icon = Images.MyProtectorsIcon };
            Children.Add (page);
            page1 = new MeusProtegidos (emergencias) { Title = "Meus protegidos", Icon = Images.MyProtectedIcon };
            Children.Add (page1);

            this.CurrentPageChanged += (sender, args) => {
                if (sender is MeusProtetores)
                    Title = "Meus protetores";
                else
                    Title = "Meus protegidos";
            };
        }
            public MeusProtetores(AcoesDePanicoViewModel viewModel)
            {
                #region Configs
                BindingContext = viewModel;
                this.WidthRequest = Bounds.Width;
                this.SetBinding (TitleProperty, "Name");
                this.SetBinding (NavigationProperty, "navigationPage");

                contactsList.BackgroundColor = Colors.WhiteTranslucent;
                contactsList.ItemsSource = viewModel.protetores;
                contactsList.ItemTemplate = new DataTemplate (typeof(MyProtectorsCell));

                FloatButton.Command = viewModel.protetoresListCommand;
                #endregion

                #region Layouts

                iconStack = new StackLayout {
                    VerticalOptions = LayoutOptions.CenterAndExpand,
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    Children = { iconMsg, message }
                };

                stack = new StackLayout {
                    Padding = new Thickness (0, 20, 0, 0),
                    Spacing = 10,
                    Orientation = StackOrientation.Vertical,
                    BackgroundColor = Color.FromHex ("#ECEFF1"),
                    Children = {
                        iconStack, contactsList
                    }
                };

                absoluteLayout = new AbsoluteLayout {
                    VerticalOptions = LayoutOptions.FillAndExpand,
                };
                var background = new Image { /*Source = Images.Background,*/ Aspect = Aspect.Fill };

                AbsoluteLayout.SetLayoutFlags (background, AbsoluteLayoutFlags.All);
                AbsoluteLayout.SetLayoutBounds (background, new Rectangle (0, 0, 1, 1));

                AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All);
                AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1));

                AbsoluteLayout.SetLayoutFlags (FloatButton, AbsoluteLayoutFlags.PositionProportional);
                AbsoluteLayout.SetLayoutBounds (FloatButton, new Rectangle (0.99f, 0.98f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));

                absoluteLayout.Children.Add (background);
                absoluteLayout.Children.Add (stack);
                absoluteLayout.Children.Add (FloatButton);

                Content = absoluteLayout;

                #endregion

                #region Events and Actions

                contactsList.ItemTapped += (sender, args) => {
                    Navigation.PushAsync (new MyProtectorConfigView (viewModel, ((PanicContacts)args.Item)));
                };
                #endregion
            }
            public MeusProtegidos(AcoesDePanicoViewModel acoesDePanico)
            {
                #region Configs
                BindingContext = acoesDePanico;
                AcoesDePanico = acoesDePanico;
                this.WidthRequest = Bounds.Width;
                this.SetBinding (TitleProperty, "Name");
                this.SetBinding (NavigationProperty, "navigationPage");

                contactsList.BackgroundColor = Colors.WhiteTranslucent;
                contactsList.ItemsSource = AcoesDePanico.protegidos;
                contactsList.ItemTemplate = new DataTemplate (typeof(MyProtectorsCell));

                #endregion

                #region Layouts

                iconStack = new StackLayout {
                    VerticalOptions = LayoutOptions.CenterAndExpand,
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    Children = { iconMsg, message }
                };

                stack = new StackLayout {
                    Padding = new Thickness (0, 20, 0, 0),
                    Spacing = 10,
                    Orientation = StackOrientation.Vertical,
                    BackgroundColor = Color.FromHex ("#ECEFF1"),
                    Children = {
                        iconStack, contactsList
                    }
                };

                absoluteLayout = new AbsoluteLayout {
                    VerticalOptions = LayoutOptions.FillAndExpand,
                };
                var background = new Image { /*Source = Images.Background,*/ Aspect = Aspect.Fill };

                AbsoluteLayout.SetLayoutFlags (background, AbsoluteLayoutFlags.All);
                AbsoluteLayout.SetLayoutBounds (background, new Rectangle (0, 0, 1, 1));

                AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All);
                AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1));

                absoluteLayout.Children.Add (background);
                absoluteLayout.Children.Add (stack);

                Content = absoluteLayout;

                #endregion

                #region Events and Actions

                contactsList.ItemTapped += async (sender, args) => {

                    var action = await UserDialogs.Instance.ActionSheetAsync
                    ("Protegido", "Cancelar", "Remover", "Acionar Panico", "Encerrar Panico", "Obter Localizacao");
                    if (action == "Remover")
                        await AcoesDePanico.removeProtegido ((PanicContacts)args.Item);
                    else if (action == "Acionar Panico") {
                        Debug.WriteLine ("Acionar Panico Remoto");
                    } else if (action == "Encerrar Panico Remoto") {
                        Debug.WriteLine (action);
                    } else if (action == "Obter Localizacao do protegido") {
                        Debug.WriteLine (action);
                    }

                };
                #endregion
            }
        public MyProtectorConfigView(AcoesDePanicoViewModel viewModel, PanicContacts protetor)
        {
            BindingContext = viewModel;

            RepositoryReceiver = protetor;

            Title = protetor.Name;
            smsSwitch.IsToggled = protetor.SendSms;
            emailSwitch.IsToggled = protetor.SendEmail;
            isPanicSwitch.IsToggled = protetor.CanPanic;
            trackSwitch.IsToggled = protetor.CanTrack;

            StackLayout smsStack = new StackLayout {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Orientation = StackOrientation.Horizontal,
                Padding = new Thickness (15, 0, 15, 0),
                Children = {
                    iconSms, smsLabel, smsSwitch
                }
            };

            StackLayout emailStack = new StackLayout {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Orientation = StackOrientation.Horizontal,
                Padding = new Thickness (15, 0, 15, 0),
                Children = {
                    iconEmail, emailLabel, emailSwitch
                }
            };

            StackLayout isPanicStack = new StackLayout {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Orientation = StackOrientation.Horizontal,
                Padding = new Thickness (15, 0, 15, 0),
                Children = {
                    iconRemote, isPanicLabel, isPanicSwitch
                }
            };

            StackLayout trackStack = new StackLayout {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Orientation = StackOrientation.Horizontal,
                Padding = new Thickness (15, 0, 15, 0),
                Children = {
                    iconTrack, trackLabel, trackSwitch
                }
            };

            //            StackLayout deleteStack = new StackLayout
            //            {
            //                HorizontalOptions = LayoutOptions.FillAndExpand,
            //                VerticalOptions = LayoutOptions.FillAndExpand,
            //                Orientation = StackOrientation.Horizontal,
            //                Padding = new Thickness(15, 0, 15, 0),
            //                Children =
            //                {
            //                    deleteButton
            //                }
            //            };

            ConfigTable = new TableView {
                Intent = TableIntent.Settings,
                BackgroundColor = Color.Transparent,
                Root = new TableRoot {
                    new TableSection ("Configurações do protetor") {
                        new ViewCell  { View = smsStack },
                        new ViewCell  { View = emailStack },
                        new ViewCell  { View = isPanicStack },
                        new ViewCell  { View = trackStack },
                    },
                    //new TableSection()
                    //{
                    //    new ViewCell  { View = deleteStack }
                    //}
                }
            };

            Content = new StackLayout {
                VerticalOptions = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Orientation = StackOrientation.Vertical,
                Children = { ConfigTable, deleteButton }
            };

            //deleteSwitch.Toggled += async (object sender, ToggledEventArgs e) =>
            //{
            //    if (e.Value)
            //    {
            //        await ((AcoesDePanicoViewModel)BindingContext).removeProtetor(receiver);
            //        await Navigation.PopAsync(true);
            //    }
            //};

            deleteButton.Clicked += async (s, e) => {
                var ask = await UserDialogs.Instance.ConfirmAsync ("Deseja realmente deletar o protetor?", null, "Sim", "Não");
                if (ask) {
                    UserDialogs.Instance.ShowLoading ("Removendo", MaskType.Black);
                    await ((AcoesDePanicoViewModel)BindingContext).removeProtetor (protetor);
                    await Navigation.PopAsync (true);
                    UserDialogs.Instance.HideLoading ();
                }
            };

            smsSwitch.Toggled += async (object sender, ToggledEventArgs e) => {
                protetor.SendSms = e.Value;
                await ((AcoesDePanicoViewModel)BindingContext).updateProtector (protetor);
            };

            emailSwitch.Toggled += async (object sender, ToggledEventArgs e) => {
                protetor.SendEmail = e.Value;
                await ((AcoesDePanicoViewModel)BindingContext).updateProtector (protetor);
            };

            isPanicSwitch.Toggled += async (object sender, ToggledEventArgs e) => {
                protetor.CanPanic = e.Value;
                await ((AcoesDePanicoViewModel)BindingContext).updateProtector (protetor);
            };

            trackSwitch.Toggled += async (object sender, ToggledEventArgs e) => {
                protetor.CanTrack = e.Value;
                await ((AcoesDePanicoViewModel)BindingContext).updateProtector (protetor);
            };
        }