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

Commit b640da8f authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 3204 into donut

* changes:
  Avoid touching all adapter items when building accessibility event.
parents 2b5f84a1 d296fafa
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -1852,19 +1852,26 @@ public class ListView extends AbsListView {
    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
        boolean populated = super.dispatchPopulateAccessibilityEvent(event);

        // If the item count is less than 15 then subtract disabled items from the count and
        // position. Otherwise ignore disabled items.
        if (!populated) {
            int itemCount = 0;
            int currentItemIndex = getSelectedItemPosition();

            ListAdapter adapter = getAdapter();
            if (adapter != null) {
                for (int i = 0, count = adapter.getCount(); i < count; i++) {
                final int count = adapter.getCount();
                if (count < 15) {
                    for (int i = 0; i < count; i++) {
                        if (adapter.isEnabled(i)) {
                            itemCount++;
                        } else if (i <= currentItemIndex) {
                            currentItemIndex--;
                        }
                    }
                } else {
                    itemCount = count;
                }
            }

            event.setItemCount(itemCount);