/// <summary> /// Update Volume value /// </summary> /// <param name="type">AudioVolumeTypeShare's type</param> /// <param name="value">Volume value</param> /// <returns>async Task</returns> private Task SetAudioType(AudioVolumeTypeShare type, int value) { return(Task.Run(() => { DependencyService.Get <IAudioManager>().ApplyAudioType(type, value); })); }
/// <summary> /// Update Volume value And Label text /// </summary> /// <param name="type">AudioVolumeTypeShare's type</param> /// <param name="sliderObject">sliderObject</param> /// <param name="e">ValueChangedEventArgs</param> private async void UpdateVolumeAndLabelFromDrag(AudioVolumeTypeShare type, object sliderObject, ValueChangedEventArgs e) { Slider slider = (Slider)sliderObject; if (Math.Abs(slider.Value - LableNum[(int)type]) >= 1) { int tempValue = (int)Math.Floor(slider.Value); LableNum[(int)type] = tempValue; Label sliderLabel = controllerLabelDictionary[type]; sliderLabel.Text = tempValue.ToString(); await SetAudioType(type, tempValue); } }
/// <summary> /// create child layout by AudioVolumeTypeShare's type /// </summary> /// <param name="type">AudioVolumeTypeShare's type</param> /// <returns>child layout</returns> private StackLayout CreateController(AudioVolumeTypeShare type) { Label soundType = new Label(); soundType.Text = type.ToString(); soundType.FontSize = 22; soundType.TextColor = new Color(0, 0, 0); soundType.HorizontalOptions = LayoutOptions.StartAndExpand; Label soundLevel = new Label(); LableNum[(int)type] = DependencyService.Get <IAudioManager>().LevelType(type); soundLevel.Text = LableNum[(int)type].ToString(); soundLevel.FontSize = 22; soundLevel.HorizontalOptions = LayoutOptions.EndAndExpand; soundLevel.TextColor = new Color(0, 0, 0); soundLevel.LineBreakMode = LineBreakMode.NoWrap; controllerLabelDictionary.Add(type, soundLevel); Layout typeAndLevel = new StackLayout() { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, Padding = new Thickness(30, 0, 30, 0), Children = { soundType, soundLevel } }; Slider slider = new Slider(); slider.Margin = new Thickness(30, 0, 30, 0); slider.HorizontalOptions = LayoutOptions.FillAndExpand; slider.Minimum = 0; slider.Maximum = DependencyService.Get <IAudioManager>().MaxLevel(type); slider.Value = LableNum[(int)type]; switch (type) { case AudioVolumeTypeShare.System: slider.ValueChanged += SystemSliderDragged; break; case AudioVolumeTypeShare.Notification: slider.ValueChanged += NotificationSliderDragged; break; case AudioVolumeTypeShare.Alarm: slider.ValueChanged += AlarmSliderDragged; break; case AudioVolumeTypeShare.Ringtone: slider.ValueChanged += RingtoneSliderDragged; break; case AudioVolumeTypeShare.Media: slider.ValueChanged += MediaSliderDragged; break; case AudioVolumeTypeShare.Voice: slider.ValueChanged += VoiceSliderDragged; break; default: break; } controllerSliderDictionary.Add(type, slider); StackLayout controller = new StackLayout(); controller.HorizontalOptions = LayoutOptions.FillAndExpand; controller.VerticalOptions = LayoutOptions.StartAndExpand; controller.BackgroundColor = Color.White; controller.Children.Add(typeAndLevel); controller.Children.Add(slider); return(controller); }