diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/AmbientVolumeSlider.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/AmbientVolumeSlider.java b/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/AmbientVolumeSlider.java index 92338ef3773c..1a068c4229c9 100644 --- a/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/AmbientVolumeSlider.java +++ b/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/AmbientVolumeSlider.java @@ -45,16 +45,31 @@ public class AmbientVolumeSlider extends LinearLayout { new Slider.OnSliderTouchListener() { @Override public void onStartTrackingTouch(@NonNull Slider slider) { + mTrackingTouch = true; } @Override public void onStopTrackingTouch(@NonNull Slider slider) { + mTrackingTouch = false; final int value = Math.round(slider.getValue()); for (OnChangeListener listener : mChangeListeners) { listener.onValueChange(AmbientVolumeSlider.this, value); } } }; + private final Slider.OnChangeListener mSliderChangeListener = new Slider.OnChangeListener() { + @Override + public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) { + if (fromUser && !mTrackingTouch) { + final int roundedValue = Math.round(value); + for (OnChangeListener listener : mChangeListeners) { + listener.onValueChange(AmbientVolumeSlider.this, roundedValue); + } + } + } + }; + private boolean mTrackingTouch = false; + public AmbientVolumeSlider(@Nullable Context context) { this(context, /* attrs= */ null); } @@ -76,6 +91,7 @@ public class AmbientVolumeSlider extends LinearLayout { mTitle = requireViewById(R.id.ambient_volume_slider_title); mSlider = requireViewById(R.id.ambient_volume_slider); mSlider.addOnSliderTouchListener(mSliderTouchListener); + mSlider.addOnChangeListener(mSliderChangeListener); } /** |