Read out confirmation message upon selecting options on LabeledSeekBar.
bug: 26965949 Change-Id: I2693ac6849f5c72b2bbd4f775911ea18398746f6
This commit is contained in:
@@ -29,6 +29,7 @@ import android.view.accessibility.AccessibilityEvent;
|
|||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
|
import android.widget.SeekBar.OnSeekBarChangeListener;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -148,6 +149,22 @@ public class LabeledSeekBar extends SeekBar {
|
|||||||
|
|
||||||
public LabeledSeekBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
public LabeledSeekBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||||
super(context, attrs, defStyleAttr, defStyleRes);
|
super(context, attrs, defStyleAttr, defStyleRes);
|
||||||
|
super.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||||
|
sendClickEventForAccessibility(progress);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -163,6 +180,30 @@ public class LabeledSeekBar extends SeekBar {
|
|||||||
mLabels = labels;
|
mLabels = labels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOnSeekBarChangeListener(final OnSeekBarChangeListener l) {
|
||||||
|
// Tweak the listener to send accessibility event on progress changed.
|
||||||
|
OnSeekBarChangeListener l2 = new OnSeekBarChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||||
|
l.onStopTrackingTouch(seekBar);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||||
|
l.onStartTrackingTouch(seekBar);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||||
|
l.onProgressChanged(seekBar, progress, fromUser);
|
||||||
|
sendClickEventForAccessibility(progress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
super.setOnSeekBarChangeListener(l2);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onAttachedToWindow() {
|
protected void onAttachedToWindow() {
|
||||||
super.onAttachedToWindow();
|
super.onAttachedToWindow();
|
||||||
@@ -185,4 +226,11 @@ public class LabeledSeekBar extends SeekBar {
|
|||||||
|
|
||||||
return super.dispatchHoverEvent(event);
|
return super.dispatchHoverEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendClickEventForAccessibility(int progress) {
|
||||||
|
if (mAccessHelper != null) {
|
||||||
|
mAccessHelper.invalidateRoot();
|
||||||
|
mAccessHelper.sendEventForVirtualView(progress, AccessibilityEvent.TYPE_VIEW_CLICKED);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user