Accessibility sugar for Recents

Adding various-pitch earcorns that depend on the scroll state and
position in the list notifications. This is for Talkback.

Bug: 72222505
Test: Manual
Change-Id: I99ffe553f7a20d057940197d97506bc1a14a193e
This commit is contained in:
Hyunyoung Song
2018-05-16 15:54:31 -07:00
committed by Vadim Tryshev
parent e47fc65716
commit 79141a1236
2 changed files with 37 additions and 1 deletions

View File

@@ -54,7 +54,9 @@ import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewDebug;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ListView;
import com.android.launcher3.BaseActivity;
import com.android.launcher3.DeviceProfile;
@@ -1334,6 +1336,34 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
}
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
final AccessibilityNodeInfo.CollectionInfo
collectionInfo = AccessibilityNodeInfo.CollectionInfo.obtain(
1, getChildCount(), false,
AccessibilityNodeInfo.CollectionInfo.SELECTION_MODE_NONE);
info.setCollectionInfo(collectionInfo);
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) {
event.setFromIndex(getCurrentPage());
event.setToIndex(getCurrentPage());
event.setItemCount(getChildCount());
}
}
@Override
public CharSequence getAccessibilityClassName() {
// To hear position-in-list related feedback from Talkback.
return ListView.class.getName();
}
@Override
protected boolean isPageOrderFlipped() {
return true;

View File

@@ -320,7 +320,13 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
}
}
getRecentsView().addTaskAccessibilityActionsExtra(info);
final RecentsView recentsView = getRecentsView();
recentsView.addTaskAccessibilityActionsExtra(info);
final AccessibilityNodeInfo.CollectionItemInfo itemInfo =
AccessibilityNodeInfo.CollectionItemInfo.obtain(
0, 1, recentsView.indexOfChild(this), 1, false);
info.setCollectionItemInfo(itemInfo);
}
@Override