private void Invalidate() { nameView.Text = device.serialNumber.deviceModel.GetTypeString() + ": " + device.serialNumber; iconView.SetImageResource(device.GetDeviceIcon()); if (device.connection.connectionState == EConnectionState.Resolving || device.connection.connectionState == EConnectionState.Connecting) { progressView.Visibility = ViewStates.Visible; connectionStateView.Visibility = ViewStates.Gone; } else { progressView.Visibility = ViewStates.Gone; connectionStateView.Visibility = ViewStates.Visible; if (lastConnectionState != device.connection.connectionState) { switch (device.connection.connectionState) { case EConnectionState.Connected: connectionStateView.SetImageResource(Resource.Drawable.ic_bluetooth_connected); connectionStateView.SetBackgroundResource(Resource.Drawable.xml_rect_green_black_bordered_round); break; case EConnectionState.Broadcasting: connectionStateView.SetImageResource(Resource.Drawable.ic_bluetooth_broadcast); connectionStateView.SetBackgroundResource(Resource.Drawable.xml_rect_light_blue_black_bordered_round); break; default: if (device.isNearby) { connectionStateView.SetImageResource(Resource.Drawable.ic_bluetooth_disconnected); connectionStateView.SetBackgroundResource(Resource.Drawable.xml_rect_yellow_black_bordered_round); } else { connectionStateView.SetImageResource(Resource.Drawable.ic_bluetooth_disconnected); connectionStateView.SetBackgroundResource(Resource.Drawable.xml_rect_red_black_bordered_round); } break; } lastConnectionState = device.connection.connectionState; } } if (device.isConnected || device.connection.connectionState == EConnectionState.Broadcasting) { batteryView.Visibility = ViewStates.Visible; if (lastBatteryLevel != device.battery) { batteryView.SetImageResource(device.GetBatteryIconVert()); lastBatteryLevel = device.battery; } } else { batteryView.Visibility = ViewStates.Invisible; } InvalidateSensor(device.sensors[0], sensor1ContainerView); if (device.sensorCount >= 2) { InvalidateSensor(device.sensors[1], sensor2ContainerView); } else { divider.Visibility = ViewStates.Invisible; sensor2ContainerView.Visibility = ViewStates.Gone; } }