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

Commit 457ec9e6 authored by Svetoslav's avatar Svetoslav
Browse files

Always create nodes for views backed by an adapter.

Some views are backed by adapter and if the adapter changed
but views are not updated we were not reporting the views.
This is not correct as the accessibility layer should always
access whatever is on the screen regardless if we know it
will change in the next layout pass.

bug:20920903

Change-Id: I5851c886848e7b8e59b76419c22124790d7e6f05
parent 2dcfc7a9
Loading
Loading
Loading
Loading
+0 −19
Original line number Original line Diff line number Diff line
@@ -1556,13 +1556,6 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
        if (accessibilityId == getAccessibilityViewId()) {
        if (accessibilityId == getAccessibilityViewId()) {
            return this;
            return this;
        }
        }
        // If the data changed the children are invalid since the data model changed.
        // Hence, we pretend they do not exist. After a layout the children will sync
        // with the model at which point we notify that the accessibility state changed,
        // so a service will be able to re-fetch the views.
        if (mDataChanged) {
            return null;
        }
        return super.findViewByAccessibilityIdTraversal(accessibilityId);
        return super.findViewByAccessibilityIdTraversal(accessibilityId);
    }
    }


@@ -2408,18 +2401,6 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
    }
    }


    class ListItemAccessibilityDelegate extends AccessibilityDelegate {
    class ListItemAccessibilityDelegate extends AccessibilityDelegate {
        @Override
        public AccessibilityNodeInfo createAccessibilityNodeInfo(View host) {
            // If the data changed the children are invalid since the data model changed.
            // Hence, we pretend they do not exist. After a layout the children will sync
            // with the model at which point we notify that the accessibility state changed,
            // so a service will be able to re-fetch the views.
            if (mDataChanged) {
                return null;
            }
            return super.createAccessibilityNodeInfo(host);
        }

        @Override
        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            super.onInitializeAccessibilityNodeInfo(host, info);