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); }; }