private void RefreshAudioCaptureDevices(IList <MediaDevice> audioCaptureDevices) { RunOnUiThread(() => { var selectedMicrophoneId = SelectedMicrophone?.Id; SelectedMicrophone = null; Microphones.Clear(); foreach (MediaDevice audioCaptureDevice in audioCaptureDevices) { Microphones.Add(audioCaptureDevice); if (audioCaptureDevice.Id == selectedMicrophoneId) { SelectedMicrophone = Microphones.Last(); } } if (SelectedMicrophone == null) { SelectedMicrophone = Microphones.FirstOrDefault(); } if (SelectedMicrophone == null) { SelectedMicrophone = Microphones.FirstOrDefault(); } }); }