下面列出了android.view.accessibility.AccessibilityNodeInfo#equals ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static AccessibilityNodeInfo refreshFromChild(
AccessibilityNodeInfo node) {
if (node.getChildCount() > 0) {
AccessibilityNodeInfo firstChild = node.getChild(0);
if (firstChild != null) {
AccessibilityNodeInfo parent = firstChild.getParent();
firstChild.recycle();
if (node.equals(parent)) {
return parent;
} else {
recycleNodes(parent);
}
}
}
return null;
}
private static AccessibilityNodeInfo refreshFromParent(
AccessibilityNodeInfo node) {
AccessibilityNodeInfo parent = node.getParent();
if (parent != null) {
try {
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; ++i) {
AccessibilityNodeInfo child = parent.getChild(i);
if (node.equals(child)) {
return child;
}
recycleNodes(child);
}
} finally {
parent.recycle();
}
}
return null;
}
/** Gets the window whose anchor equals the given node. */
public @Nullable AccessibilityWindowInfo getAnchoredWindow(
@Nullable AccessibilityNodeInfoCompat targetAnchor) {
if (!BuildVersionUtils.isAtLeastN() || targetAnchor == null) {
return null;
}
int windowCount = mWindows.size();
for (int i = 0; i < windowCount; ++i) {
AccessibilityWindowInfo window = mWindows.get(i);
if (window != null) {
AccessibilityNodeInfo anchor = window.getAnchor();
if (anchor != null) {
try {
if (anchor.equals(targetAnchor.unwrap())) {
return window;
}
} finally {
anchor.recycle();
}
}
}
}
return null;
}
private AccessibilityNodeInfo getPreviousSibling(
AccessibilityNodeInfo from) {
AccessibilityNodeInfo ret = null;
AccessibilityNodeInfo parent = from.getParent();
if (parent == null) {
return null;
}
AccessibilityNodeInfo prev = null;
AccessibilityNodeInfo cur = null;
try {
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; ++i) {
cur = parent.getChild(i);
if (cur == null) {
return null;
}
if (cur.equals(from)) {
ret = prev;
prev = null;
return ret;
}
if (prev != null) {
prev.recycle();
}
prev = cur;
cur = null;
}
} finally {
parent.recycle();
if (prev != null) {
prev.recycle();
}
if (cur != null) {
cur.recycle();
}
}
return ret;
}
private AccessibilityNodeInfo getNextSibling(
AccessibilityNodeInfo from) {
AccessibilityNodeInfo parent = from.getParent();
if (parent == null) {
return null;
}
AccessibilityNodeInfo cur = null;
try {
int childCount = parent.getChildCount();
for (int i = 0; i < childCount - 1; ++i) {
cur = parent.getChild(i);
if (cur == null) {
return null;
}
if (cur.equals(from)) {
return parent.getChild(i + 1);
}
if (cur != null) {
cur.recycle();
cur = null;
}
}
} finally {
parent.recycle();
if (cur != null) {
cur.recycle();
}
}
return null;
}
protected boolean sourceEqualsLastNode(AccessibilityEvent event) {
AccessibilityNodeInfo source = null;
try {
source = event.getSource();
AccessibilityNodeInfo lastNode = mHistory.getLastNode();
return (source != null) && lastNode != null && source.equals(lastNode);
} finally {
AccessibilityNodeInfoUtils.recycleNodes(source);
}
}