Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 929f612c authored by yingleiw's avatar yingleiw
Browse files

add directional scroll for accessibility action in NumberPicker

Test: Twisted talkback code to perform scroll down when scroll forward
is called. Verfied that scroll down is successfully performed in the
framework code and the number picker behaves correctly. Also verifed the
scroll up/down actions are correctly added to AccessibilityNodeInfo.
Bug: 136277517
Change-Id: I540d2ed3bf4e6b733668853182bd38faa8545997
parent 8413b675
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -2556,14 +2556,16 @@ public class NumberPicker extends LinearLayout {
                            }
                            return false;
                        }
                        case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: {
                        case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD:
                        case R.id.accessibilityActionScrollDown: {
                            if (NumberPicker.this.isEnabled()
                                    && (getWrapSelectorWheel() || getValue() < getMaxValue())) {
                                changeValueByOne(true);
                                return true;
                            }
                        } return false;
                        case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: {
                        case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD:
                        case R.id.accessibilityActionScrollUp: {
                            if (NumberPicker.this.isEnabled()
                                    && (getWrapSelectorWheel() || getValue() > getMinValue())) {
                                changeValueByOne(false);
@@ -2865,10 +2867,13 @@ public class NumberPicker extends LinearLayout {
            }
            if (NumberPicker.this.isEnabled()) {
                if (getWrapSelectorWheel() || getValue() < getMaxValue()) {
                    info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
                    info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_FORWARD);
                    info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_DOWN);
                }
                if (getWrapSelectorWheel() || getValue() > getMinValue()) {
                    info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
                    info.addAction(
                            AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_BACKWARD);
                    info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_UP);
                }
            }