summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/ViewAncestor.java13
-rw-r--r--core/java/android/view/ViewGroup.java5
2 files changed, 11 insertions, 7 deletions
diff --git a/core/java/android/view/ViewAncestor.java b/core/java/android/view/ViewAncestor.java
index 914973e..ba3ae58 100644
--- a/core/java/android/view/ViewAncestor.java
+++ b/core/java/android/view/ViewAncestor.java
@@ -4407,7 +4407,7 @@ public final class ViewAncestor extends Handler implements ViewParent,
predicate.init(accessibilityId);
View root = ViewAncestor.this.mView;
View target = root.findViewByPredicate(predicate);
- if (target != null) {
+ if (target != null && target.isShown()) {
info = target.createAccessibilityNodeInfo();
}
} finally {
@@ -4439,7 +4439,7 @@ public final class ViewAncestor extends Handler implements ViewParent,
try {
View root = ViewAncestor.this.mView;
View target = root.findViewById(viewId);
- if (target != null) {
+ if (target != null && target.isShown()) {
info = target.createAccessibilityNodeInfo();
}
} finally {
@@ -4486,7 +4486,7 @@ public final class ViewAncestor extends Handler implements ViewParent,
root = ViewAncestor.this.mView;
}
- if (root == null) {
+ if (root == null || !root.isShown()) {
return;
}
@@ -4501,7 +4501,9 @@ public final class ViewAncestor extends Handler implements ViewParent,
final int viewCount = foundViews.size();
for (int i = 0; i < viewCount; i++) {
View foundView = foundViews.get(i);
- infos.add(foundView.createAccessibilityNodeInfo());
+ if (foundView.isShown()) {
+ infos.add(foundView.createAccessibilityNodeInfo());
+ }
}
} finally {
try {
@@ -4611,7 +4613,8 @@ public final class ViewAncestor extends Handler implements ViewParent,
return null;
}
mFindByAccessibilityIdPredicate.init(accessibilityId);
- return root.findViewByPredicate(mFindByAccessibilityIdPredicate);
+ View foundView = root.findViewByPredicate(mFindByAccessibilityIdPredicate);
+ return (foundView != null && foundView.isShown()) ? foundView : null;
}
private final class FindByAccessibilitytIdPredicate implements Predicate<View> {
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 57ee8a0..a6bce75 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -2023,10 +2023,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
-
for (int i = 0, count = mChildrenCount; i < count; i++) {
View child = mChildren[i];
- info.addChild(child);
+ if ((child.mViewFlags & VISIBILITY_MASK) == VISIBLE) {
+ info.addChild(child);
+ }
}
}