From 815ba2d2eabded5ffee53fba668d63ca9173e6fd Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Fri, 7 Jan 2011 14:55:17 -0800 Subject: [PATCH] Added accessibility support for the home/all app togle in Launcher2 bug:3307225 1. Added code to fire accessibility events on transition to all apps and to home and to appropriately populate the generated accessibility event depending on the context in which it is fired. Change-Id: Icd1ceb3b2556b6f416829d58b4ac7df42d61936c --- src/com/android/launcher2/Launcher.java | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 83f13aa11e..1ec326b2f0 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -88,6 +88,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.view.View.OnLongClickListener; +import android.view.accessibility.AccessibilityEvent; import android.view.inputmethod.InputMethodManager; import android.widget.Advanceable; import android.widget.EditText; @@ -416,6 +417,21 @@ public final class Launcher extends Activity } } + @Override + public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { + super.dispatchPopulateAccessibilityEvent(event); + + // we want to take over text population so it is context dependent + event.getText().clear(); + if (mState == State.ALL_APPS) { + event.getText().add(getString(R.string.all_apps_button_label)); + } else if (mState == State.WORKSPACE) { + event.getText().add(getString(R.string.all_apps_home_button_label)); + } + + return true; + } + private void checkForLocaleChange() { if (sLocaleConfiguration == null) { new AsyncTask() { @@ -2878,8 +2894,10 @@ public final class Launcher extends Activity // Change the state *after* we've called all the transition code mState = State.ALL_APPS; - } + // send an accessibility event to announce the context change + getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); + } void showWorkspace(boolean animated) { showWorkspace(animated, null); @@ -2901,6 +2919,9 @@ public final class Launcher extends Activity // Change the state *after* we've called all the transition code mState = State.WORKSPACE; + + // send an accessibility event to announce the context change + getWindow().getDecorView().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); } void enterSpringLoadedDragMode(CellLayout layout) {