Loading core/java/android/widget/AbsListView.java +36 −16 Original line number Diff line number Diff line Loading @@ -2278,28 +2278,37 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te super.onInitializeAccessibilityNodeInfo(host, info); final int position = getPositionForView(host); final ListAdapter adapter = getAdapter(); if (position == INVALID_POSITION) { if ((position == INVALID_POSITION) || (adapter == null)) { // Cannot perform actions on invalid items. info.setEnabled(false); return; } if (isClickable() && isEnabled()) { if (!isEnabled() || !adapter.isEnabled(position)) { // Cannot perform actions on invalid items. info.setEnabled(false); return; } if (position == getSelectedItemPosition()) { info.setSelected(true); info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_SELECTION); } else { info.addAction(AccessibilityNodeInfo.ACTION_SELECT); } if (isClickable()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); info.setClickable(true); } if (isLongClickable() && isEnabled()) { if (isLongClickable()) { info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); info.setLongClickable(true); } if (isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_SELECT); } if (position == getSelectedItemPosition()) { info.setSelected(true); } } @Override Loading @@ -2309,22 +2318,33 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } final int position = getPositionForView(host); final ListAdapter adapter = getAdapter(); if (position == INVALID_POSITION) { if ((position == INVALID_POSITION) || (adapter == null)) { // Cannot perform actions on invalid items. return false; } if (!isEnabled()) { if (!isEnabled() || !adapter.isEnabled(position)) { // Cannot perform actions on disabled items. return false; } final long id = getItemIdAtPosition(position); switch (action) { case AccessibilityNodeInfo.ACTION_CLEAR_SELECTION: { if (getSelectedItemPosition() == position) { setSelection(INVALID_POSITION); return true; } } return false; case AccessibilityNodeInfo.ACTION_SELECT: { if (getSelectedItemPosition() != position) { setSelection(position); return true; } } return false; case AccessibilityNodeInfo.ACTION_CLICK: { if (isClickable()) { return performItemClick(host, position, id); Loading Loading
core/java/android/widget/AbsListView.java +36 −16 Original line number Diff line number Diff line Loading @@ -2278,28 +2278,37 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te super.onInitializeAccessibilityNodeInfo(host, info); final int position = getPositionForView(host); final ListAdapter adapter = getAdapter(); if (position == INVALID_POSITION) { if ((position == INVALID_POSITION) || (adapter == null)) { // Cannot perform actions on invalid items. info.setEnabled(false); return; } if (isClickable() && isEnabled()) { if (!isEnabled() || !adapter.isEnabled(position)) { // Cannot perform actions on invalid items. info.setEnabled(false); return; } if (position == getSelectedItemPosition()) { info.setSelected(true); info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_SELECTION); } else { info.addAction(AccessibilityNodeInfo.ACTION_SELECT); } if (isClickable()) { info.addAction(AccessibilityNodeInfo.ACTION_CLICK); info.setClickable(true); } if (isLongClickable() && isEnabled()) { if (isLongClickable()) { info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK); info.setLongClickable(true); } if (isEnabled()) { info.addAction(AccessibilityNodeInfo.ACTION_SELECT); } if (position == getSelectedItemPosition()) { info.setSelected(true); } } @Override Loading @@ -2309,22 +2318,33 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } final int position = getPositionForView(host); final ListAdapter adapter = getAdapter(); if (position == INVALID_POSITION) { if ((position == INVALID_POSITION) || (adapter == null)) { // Cannot perform actions on invalid items. return false; } if (!isEnabled()) { if (!isEnabled() || !adapter.isEnabled(position)) { // Cannot perform actions on disabled items. return false; } final long id = getItemIdAtPosition(position); switch (action) { case AccessibilityNodeInfo.ACTION_CLEAR_SELECTION: { if (getSelectedItemPosition() == position) { setSelection(INVALID_POSITION); return true; } } return false; case AccessibilityNodeInfo.ACTION_SELECT: { if (getSelectedItemPosition() != position) { setSelection(position); return true; } } return false; case AccessibilityNodeInfo.ACTION_CLICK: { if (isClickable()) { return performItemClick(host, position, id); Loading