Merge "Disabled items shouldn't also be marked as unactionable." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0963cc2418
@@ -2553,34 +2553,42 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
|
||||
final boolean isItemEnabled;
|
||||
final ViewGroup.LayoutParams lp = view.getLayoutParams();
|
||||
if (lp instanceof AbsListView.LayoutParams) {
|
||||
isItemEnabled = ((AbsListView.LayoutParams) lp).isEnabled;
|
||||
isItemEnabled = ((AbsListView.LayoutParams) lp).isEnabled && isEnabled();
|
||||
} else {
|
||||
isItemEnabled = false;
|
||||
}
|
||||
|
||||
if (!isEnabled() || !isItemEnabled) {
|
||||
info.setEnabled(false);
|
||||
return;
|
||||
}
|
||||
info.setEnabled(isItemEnabled);
|
||||
|
||||
if (position == getSelectedItemPosition()) {
|
||||
info.setSelected(true);
|
||||
info.addAction(AccessibilityAction.ACTION_CLEAR_SELECTION);
|
||||
} else {
|
||||
info.addAction(AccessibilityAction.ACTION_SELECT);
|
||||
addAccessibilityActionIfEnabled(info, isItemEnabled,
|
||||
AccessibilityAction.ACTION_CLEAR_SELECTION);
|
||||
} else {
|
||||
addAccessibilityActionIfEnabled(info, isItemEnabled,
|
||||
AccessibilityAction.ACTION_SELECT);
|
||||
}
|
||||
|
||||
if (isItemClickable(view)) {
|
||||
info.addAction(AccessibilityAction.ACTION_CLICK);
|
||||
addAccessibilityActionIfEnabled(info, isItemEnabled, AccessibilityAction.ACTION_CLICK);
|
||||
info.setClickable(true);
|
||||
}
|
||||
|
||||
if (isLongClickable()) {
|
||||
info.addAction(AccessibilityAction.ACTION_LONG_CLICK);
|
||||
addAccessibilityActionIfEnabled(info, isItemEnabled,
|
||||
AccessibilityAction.ACTION_LONG_CLICK);
|
||||
info.setLongClickable(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void addAccessibilityActionIfEnabled(AccessibilityNodeInfo info, boolean enabled,
|
||||
AccessibilityAction action) {
|
||||
if (enabled) {
|
||||
info.addAction(action);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isItemClickable(View view) {
|
||||
return !view.hasExplicitFocusable();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user