diff options
| author | 2019-08-07 18:46:51 +0000 | |
|---|---|---|
| committer | 2019-08-07 18:46:51 +0000 | |
| commit | 0dd1be75c3ff9be8075b2ad93185c29e2eb96af6 (patch) | |
| tree | 653262a85d0082c0bd23aeaf94fdf3c0b9d2504c | |
| parent | 81fc2a94920128ab6b7f07d2aa5ea46783f1f93b (diff) | |
| parent | ed508280f911d2cd360985dd21a5bc672128c616 (diff) | |
Merge "The source of subtree chagnes should be the viewParent"
| -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); } /** |