Exemplo n.º 1
0
 /// <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);
     }));
 }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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);
        }