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

Commit 67986974 authored by Maxim Bogatov's avatar Maxim Bogatov
Browse files

Remove AccessibilityAction.ACTION_CLICK from AbsListView.

AbsListView is always setClickable(true) for get clicks
and show ripple effect on clicked items. It is confusing
for accessibility because ListView has ACTION_CLICK
but does nothing important for user.

part of b/21305287

Change-Id: Ie9433a0bffcf1a469f16575a7a130ff953d80283
parent 01cb3e04
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1517,6 +1517,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                info.setScrollable(true);
            }
        }

        info.removeAction(AccessibilityAction.ACTION_CLICK);
        info.setClickable(false);
    }

    int getSelectionModeForAccessibility() {
@@ -2471,7 +2474,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                    }
                } return false;
                case AccessibilityNodeInfo.ACTION_CLICK: {
                    if (isClickable()) {
                    if (isItemClickable(host, position)) {
                        return performItemClick(host, position, id);
                    }
                } return false;
@@ -2514,7 +2517,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            info.addAction(AccessibilityAction.ACTION_SELECT);
        }

        if (isClickable()) {
        if (isItemClickable(view, position)) {
            info.addAction(AccessibilityAction.ACTION_CLICK);
            info.setClickable(true);
        }
@@ -2525,6 +2528,11 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
        }
    }

    private boolean isItemClickable(View view, int position) {
        return mAdapter != null && view != null &&
                mAdapter.isEnabled(position) && !view.hasFocusable();
    }

    /**
     * Positions the selector in a way that mimics touch.
     */