summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2018-05-16 15:54:31 -0700
committerVadim Tryshev <vadimt@google.com>2018-05-23 13:46:52 -0700
commit79141a1236ebf9d540b72cd1bf1bc56d4b5fe954 (patch)
tree7013fca399bfaf5782ab747d2901883a339f2825
parente47fc65716173da730f35b6adac749816a0ad52e (diff)
downloadandroid_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
-rw-r--r--quickstep/src/com/android/quickstep/views/RecentsView.java30
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskView.java8
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