Merge "Discard prefetched disconnected predecessors of a virtual node." into nyc-dev

am: 3c3e271447

* commit '3c3e271447a213f1cb5c34ed088cbb2c01b6cd43':
  Discard prefetched disconnected predecessors of a virtual node.
This commit is contained in:
Svetoslav Ganov
2016-02-20 00:47:44 +00:00
committed by android-build-merger

View File

@@ -1053,6 +1053,7 @@ final class AccessibilityInteractionController {
private void prefetchPredecessorsOfVirtualNode(AccessibilityNodeInfo root,
View providerHost, AccessibilityNodeProvider provider,
List<AccessibilityNodeInfo> outInfos) {
final int initialResultSize = outInfos.size();
long parentNodeId = root.getParentNodeId();
int accessibilityViewId = AccessibilityNodeInfo.getAccessibilityViewId(parentNodeId);
while (accessibilityViewId != AccessibilityNodeInfo.UNDEFINED_ITEM_ID) {
@@ -1071,6 +1072,12 @@ final class AccessibilityInteractionController {
AccessibilityNodeProvider.HOST_VIEW_ID);
}
if (parent == null) {
// Going up the parent relation we found a null predecessor,
// so remove these disconnected nodes form the result.
final int currentResultSize = outInfos.size();
for (int i = currentResultSize - 1; i >= initialResultSize; i--) {
outInfos.remove(i);
}
// Couldn't obtain the parent, which means we have a
// disconnected sub-tree. Abort prefetch immediately.
return;