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

Commit efedeff5 authored by Lucy Chang's avatar Lucy Chang Committed by Android (Google) Code Review
Browse files

Merge "Marks disabled list item to be non-longClickable for accessibility"

parents 9c3888e3 a55ac381
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -2543,33 +2543,32 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            return;
        }

        boolean isItemEnabled = view.isEnabled() && isEnabled();
        boolean isItemActionable = isEnabled();
        final ViewGroup.LayoutParams lp = view.getLayoutParams();
        if (lp instanceof AbsListView.LayoutParams) {
            isItemEnabled &= ((AbsListView.LayoutParams) lp).isEnabled;
            isItemActionable &= ((AbsListView.LayoutParams) lp).isEnabled;
        }

        info.setEnabled(isItemEnabled);

        if (position == getSelectedItemPosition()) {
            info.setSelected(true);
            addAccessibilityActionIfEnabled(info, isItemEnabled,
            addAccessibilityActionIfEnabled(info, isItemActionable,
                    AccessibilityAction.ACTION_CLEAR_SELECTION);
        } else  {
            addAccessibilityActionIfEnabled(info, isItemEnabled,
            addAccessibilityActionIfEnabled(info, isItemActionable,
                    AccessibilityAction.ACTION_SELECT);
        }

        if (isItemClickable(view)) {
            addAccessibilityActionIfEnabled(info, isItemEnabled, AccessibilityAction.ACTION_CLICK);
            addAccessibilityActionIfEnabled(info, isItemActionable,
                    AccessibilityAction.ACTION_CLICK);
            // A disabled item is a separator which should not be clickable.
            info.setClickable(isItemEnabled);
            info.setClickable(isItemActionable);
        }

        if (isLongClickable()) {
            addAccessibilityActionIfEnabled(info, isItemEnabled,
            addAccessibilityActionIfEnabled(info, isItemActionable,
                    AccessibilityAction.ACTION_LONG_CLICK);
            info.setLongClickable(true);
            info.setLongClickable(isItemActionable);
        }
    }