Fix accessibility announce on apps page
Stops the workspace from announcing incorrectly while the apps
page is open, also makes the apps announce which page on opening.
Bug: 13006306
Change-Id: I723011fc55c24b66604a24b16c17bac4f5653f84
diff --git a/src/com/android/launcher3/AppsCustomizeTabHost.java b/src/com/android/launcher3/AppsCustomizeTabHost.java
index bb7f045..c6455c2 100644
--- a/src/com/android/launcher3/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher3/AppsCustomizeTabHost.java
@@ -29,6 +29,7 @@
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityManager;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TabHost;
@@ -430,6 +431,14 @@
// prevent slowing down the animation)
mAppsCustomizePane.loadAssociatedPages(mAppsCustomizePane.getCurrentPage());
+ // Opening apps, need to announce what page we are on.
+ AccessibilityManager am = (AccessibilityManager)
+ getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
+ if (am.isEnabled()) {
+ // Notify the user when the page changes
+ announceForAccessibility(mAppsCustomizePane.getCurrentPageDescription());
+ }
+
// Going from Workspace -> All Apps
// NOTE: We should do this at the end since we check visibility state in some of the
// cling initialization/dismiss code above.
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index c984ad6..c2d5c1e 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1466,6 +1466,14 @@
mWallpaperOffset.syncWithScroll();
}
+ @Override
+ public void announceForAccessibility(CharSequence text) {
+ // Don't announce if apps is on top of us.
+ if (!mLauncher.isAllAppsVisible()) {
+ super.announceForAccessibility(text);
+ }
+ }
+
void showOutlines() {
if (!isSmall() && !mIsSwitchingState) {
if (mChildrenOutlineFadeOutAnimation != null) mChildrenOutlineFadeOutAnimation.cancel();