diff options
| author | 2023-01-09 16:08:58 -0800 | |
|---|---|---|
| committer | 2023-01-10 00:20:05 +0000 | |
| commit | c8f21b0c3dc86a24543291ae6189196593dd711c (patch) | |
| tree | 7f65f258b956a24603044e931ac4d5835a8183be | |
| parent | fb0ae75c0f2b49774d17e736e174b420ca9ae9b8 (diff) | |
Stop dispatching TYPE_VIEW_SELECTED a11y event on child views.
Bug: 263572235
Test: atest AccessibilityEventTest
Test: inspect A11yEvent log while expanding quick settings,
see fewer events
Change-Id: Ib286d336f00e131387de342a259bf761bfe2b76f
| -rw-r--r-- | core/java/android/view/View.java | 16 | ||||
| -rw-r--r-- | core/java/android/view/ViewGroup.java | 2 |
2 files changed, 12 insertions, 6 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 01984571a8f4..b445c869d8c8 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -25780,6 +25780,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @param selected true if the view must be selected, false otherwise */ public void setSelected(boolean selected) { + setSelected(selected, true); + } + + void setSelected(boolean selected, boolean sendAccessibilityEvent) { //noinspection DoubleNegation if (((mPrivateFlags & PFLAG_SELECTED) != 0) != selected) { mPrivateFlags = (mPrivateFlags & ~PFLAG_SELECTED) | (selected ? PFLAG_SELECTED : 0); @@ -25787,11 +25791,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, invalidate(true); refreshDrawableState(); dispatchSetSelected(selected); - if (selected) { - sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); - } else { - notifyViewAccessibilityStateChangedIfNeeded( - AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED); + if (sendAccessibilityEvent) { + if (selected) { + sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); + } else { + notifyViewAccessibilityStateChangedIfNeeded( + AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED); + } } } } diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 46b2cfc3f7a7..7d01fec54ee1 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -4629,7 +4629,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager final View[] children = mChildren; final int count = mChildrenCount; for (int i = 0; i < count; i++) { - children[i].setSelected(selected); + children[i].setSelected(selected, false); } } |