Loading core/java/android/view/View.java +2 −2 Original line number Diff line number Diff line Loading @@ -4776,11 +4776,11 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } if (isClickable()) { if (isClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); } if (isLongClickable()) { if (isLongClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); } Loading core/java/android/widget/AbsListView.java +31 −21 Original line number Diff line number Diff line Loading @@ -1470,6 +1470,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setClassName(AbsListView.class.getName()); if (isEnabled()) { if (getFirstVisiblePosition() > 0) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } Loading @@ -1477,6 +1478,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } } } @Override public boolean performAccessibilityAction(int action, Bundle arguments) { Loading @@ -1485,14 +1487,14 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } switch (action) { case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (getLastVisiblePosition() < getCount() - 1) { if (isEnabled() && getLastVisiblePosition() < getCount() - 1) { final int viewportHeight = getHeight() - mListPadding.top - mListPadding.bottom; smoothScrollBy(viewportHeight, PositionScroller.SCROLL_DURATION); return true; } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (mFirstPosition > 0) { if (isEnabled() && mFirstPosition > 0) { final int viewportHeight = getHeight() - mListPadding.top - mListPadding.bottom; smoothScrollBy(-viewportHeight, PositionScroller.SCROLL_DURATION); return true; Loading Loading @@ -2294,17 +2296,19 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te return; } if (isClickable()) { if (isClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); info.setClickable(true); } if (isLongClickable()) { if (isLongClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); info.setLongClickable(true); } if (isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_SELECT); } if (position == getSelectedItemPosition()) { info.setSelected(true); Loading @@ -2313,34 +2317,40 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te @Override public boolean performAccessibilityAction(View host, int action, Bundle arguments) { if (super.performAccessibilityAction(host, action, arguments)) { return true; } final int position = getPositionForView(host); if (position == INVALID_POSITION) { return false; } if (!isEnabled()) { return false; } final long id = getItemIdAtPosition(position); switch (action) { case AccessibilityNodeInfo.ACTION_SELECT: case AccessibilityNodeInfo.ACTION_SELECT: { setSelection(position); return true; case AccessibilityNodeInfo.ACTION_CLICK: if (!super.performAccessibilityAction(host, action, arguments)) { } case AccessibilityNodeInfo.ACTION_CLICK: { if (isClickable()) { return performItemClick(host, position, id); } return true; case AccessibilityNodeInfo.ACTION_LONG_CLICK: if (!super.performAccessibilityAction(host, action, arguments)) { } return false; case AccessibilityNodeInfo.ACTION_LONG_CLICK: { if (isLongClickable()) { return performLongPress(host, position, id); } return true; case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: smoothScrollToPosition(position); break; } return false; } return super.performAccessibilityAction(host, action, arguments); return false; } } Loading core/java/android/widget/Gallery.java +9 −7 Original line number Diff line number Diff line Loading @@ -1369,13 +1369,15 @@ public class Gallery extends AbsSpinner implements GestureDetector.OnGestureList super.onInitializeAccessibilityNodeInfo(info); info.setClassName(Gallery.class.getName()); info.setScrollable(mItemCount > 1); if (isEnabled()) { if (mItemCount > 0 && mSelectedPosition < mItemCount - 1) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } if (mItemCount > 0 && mSelectedPosition > 0) { if (isEnabled() && mItemCount > 0 && mSelectedPosition > 0) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } } } @Override public boolean performAccessibilityAction(int action, Bundle arguments) { Loading @@ -1384,13 +1386,13 @@ public class Gallery extends AbsSpinner implements GestureDetector.OnGestureList } switch (action) { case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (mItemCount > 0 && mSelectedPosition < mItemCount - 1) { if (isEnabled() && mItemCount > 0 && mSelectedPosition < mItemCount - 1) { final int currentChildIndex = mSelectedPosition - mFirstPosition; return scrollToChild(currentChildIndex + 1); } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (mItemCount > 0 && mSelectedPosition > 0) { if (isEnabled() && mItemCount > 0 && mSelectedPosition > 0) { final int currentChildIndex = mSelectedPosition - mFirstPosition; return scrollToChild(currentChildIndex - 1); } Loading core/java/android/widget/HorizontalScrollView.java +8 −2 Original line number Diff line number Diff line Loading @@ -744,6 +744,9 @@ public class HorizontalScrollView extends FrameLayout { } switch (action) { case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (!isEnabled()) { return false; } final int viewportWidth = getWidth() - mPaddingLeft - mPaddingRight; final int targetScrollX = Math.min(mScrollX + viewportWidth, getScrollRange()); if (targetScrollX != mScrollX) { Loading @@ -752,6 +755,9 @@ public class HorizontalScrollView extends FrameLayout { } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (!isEnabled()) { return false; } final int viewportWidth = getWidth() - mPaddingLeft - mPaddingRight; final int targetScrollX = Math.max(0, mScrollX - viewportWidth); if (targetScrollX != mScrollX) { Loading @@ -770,10 +776,10 @@ public class HorizontalScrollView extends FrameLayout { final int scrollRange = getScrollRange(); if (scrollRange > 0) { info.setScrollable(true); if (mScrollX > 0) { if (isEnabled() && mScrollX > 0) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } if (mScrollX < scrollRange) { if (isEnabled() && mScrollX < scrollRange) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } } Loading core/java/android/widget/NumberPicker.java +36 −21 Original line number Diff line number Diff line Loading @@ -2173,13 +2173,15 @@ public class NumberPicker extends LinearLayout { return false; } case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (getWrapSelectorWheel() || getValue() < getMaxValue()) { if (NumberPicker.this.isEnabled() && (getWrapSelectorWheel() || getValue() < getMaxValue())) { changeValueByOne(true); return true; } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (getWrapSelectorWheel() || getValue() > getMinValue()) { if (NumberPicker.this.isEnabled() && (getWrapSelectorWheel() || getValue() > getMinValue())) { changeValueByOne(false); return true; } Loading @@ -2189,21 +2191,24 @@ public class NumberPicker extends LinearLayout { case VIRTUAL_VIEW_ID_INPUT: { switch (action) { case AccessibilityNodeInfo.ACTION_FOCUS: { if (!mInputText.isFocused()) { if (NumberPicker.this.isEnabled() && !mInputText.isFocused()) { return mInputText.requestFocus(); } } break; case AccessibilityNodeInfo.ACTION_CLEAR_FOCUS: { if (mInputText.isFocused()) { if (NumberPicker.this.isEnabled() && mInputText.isFocused()) { mInputText.clearFocus(); return true; } return false; } case AccessibilityNodeInfo.ACTION_CLICK: { if (NumberPicker.this.isEnabled()) { showSoftInput(); return true; } return false; } case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: { if (mAccessibilityFocusedView != virtualViewId) { mAccessibilityFocusedView = virtualViewId; Loading @@ -2230,10 +2235,13 @@ public class NumberPicker extends LinearLayout { case VIRTUAL_VIEW_ID_INCREMENT: { switch (action) { case AccessibilityNodeInfo.ACTION_CLICK: { if (NumberPicker.this.isEnabled()) { NumberPicker.this.changeValueByOne(true); sendAccessibilityEventForVirtualView(virtualViewId, AccessibilityEvent.TYPE_VIEW_CLICKED); } return true; return true; } } return false; case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: { if (mAccessibilityFocusedView != virtualViewId) { mAccessibilityFocusedView = virtualViewId; Loading @@ -2257,11 +2265,14 @@ public class NumberPicker extends LinearLayout { case VIRTUAL_VIEW_ID_DECREMENT: { switch (action) { case AccessibilityNodeInfo.ACTION_CLICK: { if (NumberPicker.this.isEnabled()) { final boolean increment = (virtualViewId == VIRTUAL_VIEW_ID_INCREMENT); NumberPicker.this.changeValueByOne(increment); sendAccessibilityEventForVirtualView(virtualViewId, AccessibilityEvent.TYPE_VIEW_CLICKED); } return true; return true; } } return false; case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: { if (mAccessibilityFocusedView != virtualViewId) { mAccessibilityFocusedView = virtualViewId; Loading Loading @@ -2470,7 +2481,9 @@ public class NumberPicker extends LinearLayout { if (mAccessibilityFocusedView == virtualViewId) { info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } if (NumberPicker.this.isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); } return info; } Loading Loading @@ -2509,12 +2522,14 @@ public class NumberPicker extends LinearLayout { if (mAccessibilityFocusedView == View.NO_ID) { info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } if (NumberPicker.this.isEnabled()) { if (getWrapSelectorWheel() || getValue() < getMaxValue()) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } if (getWrapSelectorWheel() || getValue() > getMinValue()) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } } return info; } Loading Loading
core/java/android/view/View.java +2 −2 Original line number Diff line number Diff line Loading @@ -4776,11 +4776,11 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } if (isClickable()) { if (isClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); } if (isLongClickable()) { if (isLongClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); } Loading
core/java/android/widget/AbsListView.java +31 −21 Original line number Diff line number Diff line Loading @@ -1470,6 +1470,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); info.setClassName(AbsListView.class.getName()); if (isEnabled()) { if (getFirstVisiblePosition() > 0) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } Loading @@ -1477,6 +1478,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } } } @Override public boolean performAccessibilityAction(int action, Bundle arguments) { Loading @@ -1485,14 +1487,14 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } switch (action) { case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (getLastVisiblePosition() < getCount() - 1) { if (isEnabled() && getLastVisiblePosition() < getCount() - 1) { final int viewportHeight = getHeight() - mListPadding.top - mListPadding.bottom; smoothScrollBy(viewportHeight, PositionScroller.SCROLL_DURATION); return true; } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (mFirstPosition > 0) { if (isEnabled() && mFirstPosition > 0) { final int viewportHeight = getHeight() - mListPadding.top - mListPadding.bottom; smoothScrollBy(-viewportHeight, PositionScroller.SCROLL_DURATION); return true; Loading Loading @@ -2294,17 +2296,19 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te return; } if (isClickable()) { if (isClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); info.setClickable(true); } if (isLongClickable()) { if (isLongClickable() && isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); info.setLongClickable(true); } if (isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_SELECT); } if (position == getSelectedItemPosition()) { info.setSelected(true); Loading @@ -2313,34 +2317,40 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te @Override public boolean performAccessibilityAction(View host, int action, Bundle arguments) { if (super.performAccessibilityAction(host, action, arguments)) { return true; } final int position = getPositionForView(host); if (position == INVALID_POSITION) { return false; } if (!isEnabled()) { return false; } final long id = getItemIdAtPosition(position); switch (action) { case AccessibilityNodeInfo.ACTION_SELECT: case AccessibilityNodeInfo.ACTION_SELECT: { setSelection(position); return true; case AccessibilityNodeInfo.ACTION_CLICK: if (!super.performAccessibilityAction(host, action, arguments)) { } case AccessibilityNodeInfo.ACTION_CLICK: { if (isClickable()) { return performItemClick(host, position, id); } return true; case AccessibilityNodeInfo.ACTION_LONG_CLICK: if (!super.performAccessibilityAction(host, action, arguments)) { } return false; case AccessibilityNodeInfo.ACTION_LONG_CLICK: { if (isLongClickable()) { return performLongPress(host, position, id); } return true; case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: smoothScrollToPosition(position); break; } return false; } return super.performAccessibilityAction(host, action, arguments); return false; } } Loading
core/java/android/widget/Gallery.java +9 −7 Original line number Diff line number Diff line Loading @@ -1369,13 +1369,15 @@ public class Gallery extends AbsSpinner implements GestureDetector.OnGestureList super.onInitializeAccessibilityNodeInfo(info); info.setClassName(Gallery.class.getName()); info.setScrollable(mItemCount > 1); if (isEnabled()) { if (mItemCount > 0 && mSelectedPosition < mItemCount - 1) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } if (mItemCount > 0 && mSelectedPosition > 0) { if (isEnabled() && mItemCount > 0 && mSelectedPosition > 0) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } } } @Override public boolean performAccessibilityAction(int action, Bundle arguments) { Loading @@ -1384,13 +1386,13 @@ public class Gallery extends AbsSpinner implements GestureDetector.OnGestureList } switch (action) { case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (mItemCount > 0 && mSelectedPosition < mItemCount - 1) { if (isEnabled() && mItemCount > 0 && mSelectedPosition < mItemCount - 1) { final int currentChildIndex = mSelectedPosition - mFirstPosition; return scrollToChild(currentChildIndex + 1); } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (mItemCount > 0 && mSelectedPosition > 0) { if (isEnabled() && mItemCount > 0 && mSelectedPosition > 0) { final int currentChildIndex = mSelectedPosition - mFirstPosition; return scrollToChild(currentChildIndex - 1); } Loading
core/java/android/widget/HorizontalScrollView.java +8 −2 Original line number Diff line number Diff line Loading @@ -744,6 +744,9 @@ public class HorizontalScrollView extends FrameLayout { } switch (action) { case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (!isEnabled()) { return false; } final int viewportWidth = getWidth() - mPaddingLeft - mPaddingRight; final int targetScrollX = Math.min(mScrollX + viewportWidth, getScrollRange()); if (targetScrollX != mScrollX) { Loading @@ -752,6 +755,9 @@ public class HorizontalScrollView extends FrameLayout { } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (!isEnabled()) { return false; } final int viewportWidth = getWidth() - mPaddingLeft - mPaddingRight; final int targetScrollX = Math.max(0, mScrollX - viewportWidth); if (targetScrollX != mScrollX) { Loading @@ -770,10 +776,10 @@ public class HorizontalScrollView extends FrameLayout { final int scrollRange = getScrollRange(); if (scrollRange > 0) { info.setScrollable(true); if (mScrollX > 0) { if (isEnabled() && mScrollX > 0) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } if (mScrollX < scrollRange) { if (isEnabled() && mScrollX < scrollRange) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } } Loading
core/java/android/widget/NumberPicker.java +36 −21 Original line number Diff line number Diff line Loading @@ -2173,13 +2173,15 @@ public class NumberPicker extends LinearLayout { return false; } case AccessibilityNodeInfo.ACTION_SCROLL_FORWARD: { if (getWrapSelectorWheel() || getValue() < getMaxValue()) { if (NumberPicker.this.isEnabled() && (getWrapSelectorWheel() || getValue() < getMaxValue())) { changeValueByOne(true); return true; } } return false; case AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD: { if (getWrapSelectorWheel() || getValue() > getMinValue()) { if (NumberPicker.this.isEnabled() && (getWrapSelectorWheel() || getValue() > getMinValue())) { changeValueByOne(false); return true; } Loading @@ -2189,21 +2191,24 @@ public class NumberPicker extends LinearLayout { case VIRTUAL_VIEW_ID_INPUT: { switch (action) { case AccessibilityNodeInfo.ACTION_FOCUS: { if (!mInputText.isFocused()) { if (NumberPicker.this.isEnabled() && !mInputText.isFocused()) { return mInputText.requestFocus(); } } break; case AccessibilityNodeInfo.ACTION_CLEAR_FOCUS: { if (mInputText.isFocused()) { if (NumberPicker.this.isEnabled() && mInputText.isFocused()) { mInputText.clearFocus(); return true; } return false; } case AccessibilityNodeInfo.ACTION_CLICK: { if (NumberPicker.this.isEnabled()) { showSoftInput(); return true; } return false; } case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: { if (mAccessibilityFocusedView != virtualViewId) { mAccessibilityFocusedView = virtualViewId; Loading @@ -2230,10 +2235,13 @@ public class NumberPicker extends LinearLayout { case VIRTUAL_VIEW_ID_INCREMENT: { switch (action) { case AccessibilityNodeInfo.ACTION_CLICK: { if (NumberPicker.this.isEnabled()) { NumberPicker.this.changeValueByOne(true); sendAccessibilityEventForVirtualView(virtualViewId, AccessibilityEvent.TYPE_VIEW_CLICKED); } return true; return true; } } return false; case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: { if (mAccessibilityFocusedView != virtualViewId) { mAccessibilityFocusedView = virtualViewId; Loading @@ -2257,11 +2265,14 @@ public class NumberPicker extends LinearLayout { case VIRTUAL_VIEW_ID_DECREMENT: { switch (action) { case AccessibilityNodeInfo.ACTION_CLICK: { if (NumberPicker.this.isEnabled()) { final boolean increment = (virtualViewId == VIRTUAL_VIEW_ID_INCREMENT); NumberPicker.this.changeValueByOne(increment); sendAccessibilityEventForVirtualView(virtualViewId, AccessibilityEvent.TYPE_VIEW_CLICKED); } return true; return true; } } return false; case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: { if (mAccessibilityFocusedView != virtualViewId) { mAccessibilityFocusedView = virtualViewId; Loading Loading @@ -2470,7 +2481,9 @@ public class NumberPicker extends LinearLayout { if (mAccessibilityFocusedView == virtualViewId) { info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } if (NumberPicker.this.isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); } return info; } Loading Loading @@ -2509,12 +2522,14 @@ public class NumberPicker extends LinearLayout { if (mAccessibilityFocusedView == View.NO_ID) { info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } if (NumberPicker.this.isEnabled()) { if (getWrapSelectorWheel() || getValue() < getMaxValue()) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); } if (getWrapSelectorWheel() || getValue() > getMinValue()) { info.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD); } } return info; } Loading