private async void Initialize(double?volume = null, bool?locked = null) { ShowIcon(); double v; if (locked == true) { Locked = true; checkBoxLocked.Checked = true; // Set volume to provided value or the current v = volume ?? await GetVolumeWrapper(); } else { v = await GetVolumeWrapper(); } volumeChanged = device is null? session.VolumeChanged.Subscribe(x => VolumeChanged(x.Volume)) : device.VolumeChanged.Subscribe(x => VolumeChanged(x.Volume)); await UiSynchronization.SwitchToUiThread(); SetVolume(v); }
private async void VolumeChanged(double volume) { await UiSynchronization.SwitchToUiThread(); // Has changed? if (volume != Volume) { if (Locked) { // Revert await SetVolumeWrapper(Volume); } else { SetVolume(volume); } } }