private async void ConnectDisconnectDevice(object sender, EventArgs e)
        {
            HttpResponseMessage result;

            if (isConnectedDeviceSelected)
            {
                result = await Services.WithingsService.DisconnectDeviceAsync(selectedDevice.Identifier.System, selectedDevice.Identifier.Value);
            }
            else
            {
                result = await Services.WithingsService.ConnectDeviceAsync(selectedDevice.Identifier.System, selectedDevice.Identifier.Value);
            }

            if (result.IsSuccessStatusCode)
            {
                List <object> connectedDevices    = new List <object>();
                List <object> disconnectedDevices = new List <object>();

                var res = await Services.WithingsService.GetDevices(connectedDevices, disconnectedDevices);

                if (res == System.Net.HttpStatusCode.OK)
                {
                    ConnectedDevices.Clear();
                    DisconnectedDevices.Clear();
                    ConnectedDevices    = new ObservableCollection <object>(connectedDevices);
                    DisconnectedDevices = new ObservableCollection <object>(disconnectedDevices);
                }
                else if (res == System.Net.HttpStatusCode.Conflict)
                {
                    await DisplayAlert("Conflict", "Previous user delete operation is in progress. Please try again later", "Ok");
                }
                else
                {
                    await DisplayAlert("Error", "Something went wrong. Please try again", "Ok");
                }
            }
            else
            {
                await DisplayAlert("Withing auth failed", "Something went wrong. Please try again", "Ok");
            }

            OnAppearing();

            if (result.IsSuccessStatusCode)
            {
                actionButton.IsEnabled      = false;
                actionButton.Text           = "Select Device";
                selectedDevice.IsSelected   = false;
                selectedDevice              = null;
                deviceContentView.IsVisible = false;
            }

            if (Device.Idiom == TargetIdiom.Tablet)
            {
                actionButton.IsVisible = false;
            }
        }
Exemple #2
0
 private void ChannelWatcher_ClearDevices(object sender, System.EventArgs e)
 {
     AvailableChannels.Clear();
     ConnectedDevices.Clear();
 }