protected override void OnAppearing() { DataTemplate template = (DataTemplate)this.Resources["withingsDeviceDataTemplate"]; connectedDevicesWrapLayout.Children.Clear(); foreach (var connectedItem in ConnectedDevices) { Controls.ContentPresenter contentPresenter = BuildContentPresenter(template, connectedItem, true); connectedDevicesWrapLayout.Children.Add(contentPresenter); } disconnectedDevicesWrapLayout.Children.Clear(); foreach (var disconnectedItem in DisconnectedDevices) { Controls.ContentPresenter contentPresenter = BuildContentPresenter(template, disconnectedItem, false, true); disconnectedDevicesWrapLayout.Children.Add(contentPresenter); } if (firstConnect || Device.RuntimePlatform == Device.iOS) { backtoDashboradButton.IsVisible = true; } base.OnAppearing(); }
protected override void OnAppearing() { DataTemplate template = (DataTemplate)this.Resources["withingsDeviceDataTemplate"]; SupportedDevices = new ObservableCollection <object>(); GenerateSupportedDevicesCollection(SupportedDevices); supportedDevicesWrapLayout.Children.Clear(); foreach (var supportedDevice in SupportedDevices) { Controls.ContentPresenter contentPresenter = BuildContentPresenter(template, (Models.Device)supportedDevice); supportedDevicesWrapLayout.Children.Add(contentPresenter); } FutureDevices = new ObservableCollection <object>(); GenerateFutureDevicesCollection(FutureDevices); futureDevicesWrapLayout.Children.Clear(); foreach (var futureDevice in FutureDevices) { Controls.ContentPresenter contentPresenter = BuildContentPresenter(template, (Models.Device)futureDevice); futureDevicesWrapLayout.Children.Add(contentPresenter); } base.OnAppearing(); }
private void TapGestureRecognizer_Tapped(object sender, EventArgs e) { Controls.ContentPresenter contentPresenter = (Controls.ContentPresenter)sender; Models.Device device = (Models.Device)contentPresenter.BindingContext; if (selectedDevice != null) { string selectedModelId = (from c in selectedDevice.Identifier.Type.Coding where c.System.AbsoluteUri == $"{selectedDevice.Identifier.System}/device/model_id" select c.Code).FirstOrDefault(); string currentModelId = (from c in device.Identifier.Type.Coding where c.System.AbsoluteUri == $"{device.Identifier.System}/device/model_id" select c.Code).FirstOrDefault(); if (selectedModelId != currentModelId) { selectedDevice.IsSelected = false; } } device.IsSelected = !device.IsSelected; selectedDevice = device.IsSelected ? device : null; authenticateWithManufacturer.IsEnabled = (selectedDevice != null) ? true : false; if (selectedDevice != null && Device.Idiom == TargetIdiom.Tablet) { DeviceInfo = new Models.Device() { Display = selectedDevice.Display, Identifier = selectedDevice.Identifier, ShowExtraInfo = true, IsConnected = false, IsSelected = false, }; authenticateWithManufacturer.IsVisible = true; } else { DeviceInfo = null; if (Device.Idiom == TargetIdiom.Tablet) { authenticateWithManufacturer.IsVisible = false; } } deviceDetails.BindingContext = DeviceInfo; deviceContentView.IsVisible = (selectedDevice == null) ? false : true; }
private Controls.ContentPresenter BuildObservationPresenter(DataTemplate template, Models.SummaryObservation observation) { Controls.ContentPresenter presenter = new Controls.ContentPresenter() { BindingContext = observation, }; presenter.ItemTemplate = template; TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer(); // TODO: Change device tapped to go somewhere else? tapGestureRecognizer.Tapped += Observation_Tapped; presenter.GestureRecognizers.Add(tapGestureRecognizer); return(presenter); }
private Controls.ContentPresenter BuildContentPresenter(DataTemplate template, Models.Device supportedDevice) { Controls.ContentPresenter contentPresenter = new Controls.ContentPresenter() { BindingContext = supportedDevice, }; contentPresenter.ItemTemplate = template; contentPresenter.WidthRequest = 160; TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.Tapped += TapGestureRecognizer_Tapped; contentPresenter.GestureRecognizers.Add(tapGestureRecognizer); return(contentPresenter); }
private void TapGestureRecognizer_Tapped(object sender, EventArgs e) { Controls.ContentPresenter contentPresenter = (Controls.ContentPresenter)sender; Models.Device device = (Models.Device)contentPresenter.BindingContext; isConnectedDeviceSelected = device.IsConnected; if (selectedDevice != null && selectedDevice.Identifier.Value != device.Identifier.Value) { selectedDevice.IsSelected = false; } device.IsSelected = !device.IsSelected; selectedDevice = device.IsSelected ? device : null; actionButton.Text = isConnectedDeviceSelected ? "Disconnect Device" : "Connect Device"; actionButton.IsEnabled = (selectedDevice != null) ? true : false; if (!actionButton.IsEnabled) { actionButton.Text = "Select Device"; } if (selectedDevice != null && Device.Idiom == TargetIdiom.Tablet) { DeviceInfo = new Models.Device() { Display = selectedDevice.Display, Identifier = selectedDevice.Identifier, ShowExtraInfo = true, IsConnected = false, IsSelected = false, }; actionButton.IsVisible = true; } else { DeviceInfo = null; if (Device.Idiom == TargetIdiom.Tablet) { actionButton.IsVisible = false; } } deviceDetails.BindingContext = DeviceInfo; deviceContentView.IsVisible = (selectedDevice == null) ? false : true; }
private Controls.ContentPresenter BuildContentPresenter(DataTemplate template, object connectedItem, bool isConnected, bool showExtraInfo = false) { Models.Device device = JsonConvert.DeserializeObject <Models.Device>(connectedItem.ToString()); device.IsConnected = isConnected; device.ShowExtraInfo = showExtraInfo; Controls.ContentPresenter contentPresenter = new Controls.ContentPresenter() { BindingContext = device, }; contentPresenter.ItemTemplate = template; TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.Tapped += TapGestureRecognizer_Tapped; contentPresenter.GestureRecognizers.Add(tapGestureRecognizer); return(contentPresenter); }
protected override async void OnAppearing() { await FetchDevices(); if (ConnectedDevices.Count > 0) { await FetchObservations(); } BindingContext = this; DataTemplate template = (DataTemplate)this.Resources["withingsDeviceDataTemplate"]; connectedDevicesWrapLayout.Children.Clear(); foreach (var connectedItem in ConnectedDevices) { Controls.ContentPresenter contentPresenter = BuildContentPresenter(template, connectedItem, false, true); connectedDevicesWrapLayout.Children.Add(contentPresenter); } template = (DataTemplate)this.Resources["withingsObservationDataTemplate"]; observationListWrapLayout.Children.Clear(); foreach (var observation in observationCategories) { Controls.ContentPresenter observationPresenter = BuildObservationPresenter(template, observation.Value); observationListWrapLayout.Children.Add(observationPresenter); } ManageDevicesButton devicesButton = new ManageDevicesButton(); TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.Tapped += async(s, e) => { await Navigation.PushAsync(new DeviceManagementPage(ConnectedDevices.ToList(), DisconnectedDevices.ToList())); }; devicesButton.GestureRecognizers.Add(tapGestureRecognizer); connectedDevicesWrapLayout.Children.Add(devicesButton); base.OnAppearing(); }
// TODO: Combine this with code from DeviceManagementPage.cs private Controls.ContentPresenter BuildContentPresenter(DataTemplate template, object connectedItem, bool isConnected, bool showExtraInfo = false) { Models.Device device = JsonConvert.DeserializeObject <Models.Device>(connectedItem.ToString()); device.IsConnected = isConnected; device.ShowExtraInfo = showExtraInfo; Controls.ContentPresenter contentPresenter = new Controls.ContentPresenter() { BindingContext = device, }; contentPresenter.ItemTemplate = template; TapGestureRecognizer tapGestureRecognizer = new TapGestureRecognizer(); // TODO: Change device tapped to go somewhere else? tapGestureRecognizer.Tapped += async(s, e) => { await Navigation.PushAsync(new DeviceManagementPage(ConnectedDevices.ToList(), DisconnectedDevices.ToList())); }; contentPresenter.GestureRecognizers.Add(tapGestureRecognizer); return(contentPresenter); }