diff options
| -rw-r--r-- | core/java/android/view/View.java | 4 | ||||
| -rw-r--r-- | core/java/android/view/ViewGroup.java | 9 | ||||
| -rw-r--r-- | core/java/android/widget/AdapterView.java | 3 |
3 files changed, 9 insertions, 7 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 1779a80b5d09..6d4128b3f29a 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -13386,10 +13386,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if ((mPrivateFlags2 & PFLAG2_SUBTREE_ACCESSIBILITY_STATE_CHANGED) == 0) { mPrivateFlags2 |= PFLAG2_SUBTREE_ACCESSIBILITY_STATE_CHANGED; - if (mParent != null) { + if (mParent != null && mParent instanceof View) { try { mParent.notifySubtreeAccessibilityStateChanged( - this, this, AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE); + this, (View) mParent, AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE); } catch (AbstractMethodError e) { Log.e(VIEW_LOG_TAG, mParent.getClass().getSimpleName() + " does not fully implement ViewParent", e); 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 diff --git a/core/java/android/widget/AdapterView.java b/core/java/android/widget/AdapterView.java index c55f7d654548..5359e27cd54d 100644 --- a/core/java/android/widget/AdapterView.java +++ b/core/java/android/widget/AdapterView.java @@ -1106,7 +1106,8 @@ public abstract class AdapterView<T extends Adapter> extends ViewGroup { checkSelectionChanged(); } - notifySubtreeAccessibilityStateChangedIfNeeded(); + notifySubtreeAccessibilityStateChanged( + this, this, AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE); } /** |