summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Daniel Norman <danielnorman@google.com> 2023-01-09 16:08:58 -0800
committer Daniel Norman <danielnorman@google.com> 2023-01-10 00:20:05 +0000
commitc8f21b0c3dc86a24543291ae6189196593dd711c (patch)
tree7f65f258b956a24603044e931ac4d5835a8183be
parentfb0ae75c0f2b49774d17e736e174b420ca9ae9b8 (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.java16
-rw-r--r--core/java/android/view/ViewGroup.java2
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);
}
}