From ed508280f911d2cd360985dd21a5bc672128c616 Mon Sep 17 00:00:00 2001 From: Qasid Ahmad Sadiq Date: Thu, 30 May 2019 15:24:59 -0700 Subject: The source of subtree chagnes should be the viewParent From the description of notifySubtreeAccessibilityStateChangedIfNeeded: "is *not* local to this view and does represent structural changes such as children and parent." This is now how this currently behaves cause the source was the view itself. This had the consquence that if a view is hidden, no event would be sent, because the source of an accessibilityEvent can't be hidden. Test: CTSAccessibility* Added CTS Test in another CL. Played around with this build for a while. Bug: 130273130 Change-Id: I5522e8b1468e8999b615592f16c8d59634d9659f --- core/java/android/view/ViewGroup.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'core/java/android/view/ViewGroup.java') diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 82a5fa979fd2..7ee8865dacee 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -5144,7 +5144,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } if (child.getVisibility() != View.GONE) { - notifySubtreeAccessibilityStateChangedIfNeeded(); + child.notifySubtreeAccessibilityStateChangedIfNeeded(); } if (mTransientIndices != null) { @@ -5432,7 +5432,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager dispatchViewRemoved(view); if (view.getVisibility() != View.GONE) { - notifySubtreeAccessibilityStateChangedIfNeeded(); + view.notifySubtreeAccessibilityStateChangedIfNeeded(); } int transientCount = mTransientIndices == null ? 0 : mTransientIndices.size(); @@ -5740,7 +5740,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } dispatchVisibilityAggregated(isAttachedToWindow() && getWindowVisibility() == VISIBLE && isShown()); - notifySubtreeAccessibilityStateChangedIfNeeded(); + child.notifySubtreeAccessibilityStateChangedIfNeeded(); } /** @@ -6146,7 +6146,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager if (invalidate) { invalidateViewProperty(false, false); } - notifySubtreeAccessibilityStateChangedIfNeeded(); + notifySubtreeAccessibilityStateChanged( + this, this, AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE); } @Override -- cgit v1.2.3