diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2018-05-16 15:54:31 -0700 |
---|---|---|
committer | Vadim Tryshev <vadimt@google.com> | 2018-05-23 13:46:52 -0700 |
commit | 79141a1236ebf9d540b72cd1bf1bc56d4b5fe954 (patch) | |
tree | 7013fca399bfaf5782ab747d2901883a339f2825 /quickstep | |
parent | e47fc65716173da730f35b6adac749816a0ad52e (diff) | |
download | android_packages_apps_Trebuchet-79141a1236ebf9d540b72cd1bf1bc56d4b5fe954.tar.gz android_packages_apps_Trebuchet-79141a1236ebf9d540b72cd1bf1bc56d4b5fe954.tar.bz2 android_packages_apps_Trebuchet-79141a1236ebf9d540b72cd1bf1bc56d4b5fe954.zip |
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
Diffstat (limited to 'quickstep')
-rw-r--r-- | quickstep/src/com/android/quickstep/views/RecentsView.java | 30 | ||||
-rw-r--r-- | quickstep/src/com/android/quickstep/views/TaskView.java | 8 |
2 files changed, 37 insertions, 1 deletions
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 0358028bc..186de3681 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -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; @@ -1335,6 +1337,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; } diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index 0df0580fe..213d9cb59 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -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 |