Merge "Use TaskViews only for RecentsView CollectionInfo" into main

This commit is contained in:
Treehugger Robot
2025-05-13 08:16:08 -07:00
committed by Android (Google) Code Review
2 changed files with 6 additions and 21 deletions
@@ -5889,36 +5889,19 @@ public abstract class RecentsView<
@Override
public void addChildrenForAccessibility(ArrayList<View> outChildren) {
outChildren.addAll(getAccessibilityChildren());
}
public List<View> getAccessibilityChildren() {
return mUtils.getAccessibilityChildren();
outChildren.addAll(mUtils.getAccessibilityChildren());
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
// We only care about TaskView's for the `CollectionInfo` that Talkback uses to read out.
final AccessibilityNodeInfo.CollectionInfo
collectionInfo = new AccessibilityNodeInfo.CollectionInfo(
1, getAccessibilityChildren().size(), false);
1, getTaskViewCount(), false);
info.setCollectionInfo(collectionInfo);
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
event.setScrollable(hasTaskViews());
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) {
final List<View> accessibilityChildren = getAccessibilityChildren();
final int[] visibleTasks = getVisibleChildrenRange();
event.setFromIndex(accessibilityChildren.indexOf(getChildAt(visibleTasks[1])));
event.setToIndex(accessibilityChildren.indexOf(getChildAt(visibleTasks[0])));
event.setItemCount(accessibilityChildren.size());
}
}
@Override
public CharSequence getAccessibilityClassName() {
// To hear position-in-list related feedback from Talkback.
@@ -755,7 +755,9 @@ constructor(
AccessibilityNodeInfo.CollectionItemInfo(
0,
1,
it.getAccessibilityChildren().indexOf(this@TaskView),
// We only care about TaskView's for the `CollectionInfo` that Talkback uses
// to read out.
it.taskViews.reversed().indexOf(this@TaskView),
1,
false,
)