summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-04-16 17:15:33 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-04-16 17:15:34 +0000
commit5a0300783cef1216f5d13dcbe98ef44f8cc78fc7 (patch)
treed0c9b1b4578b851b0649db61330bb79e98594cdc /src
parent7972194528cde392ce2b42779a6d5c2d77e86993 (diff)
parent83ca480941b3dd635b62347008fc8d7859d82002 (diff)
downloadandroid_packages_apps_Trebuchet-5a0300783cef1216f5d13dcbe98ef44f8cc78fc7.tar.gz
android_packages_apps_Trebuchet-5a0300783cef1216f5d13dcbe98ef44f8cc78fc7.tar.bz2
android_packages_apps_Trebuchet-5a0300783cef1216f5d13dcbe98ef44f8cc78fc7.zip
Merge "Fixing issue where accessibility was reporting items behind an open folder. (Bug 8331717)" into jb-mr2-dev
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher2/DragLayer.java26
-rw-r--r--src/com/android/launcher2/Launcher.java9
2 files changed, 35 insertions, 0 deletions
diff --git a/src/com/android/launcher2/DragLayer.java b/src/com/android/launcher2/DragLayer.java
index a819cb7a6..fccc1a604 100644
--- a/src/com/android/launcher2/DragLayer.java
+++ b/src/com/android/launcher2/DragLayer.java
@@ -34,6 +34,7 @@ import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
+import android.view.accessibility.AccessibilityNodeInfo;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.FrameLayout;
@@ -222,6 +223,31 @@ public class DragLayer extends FrameLayout implements ViewGroup.OnHierarchyChang
}
@Override
+ public boolean onRequestSendAccessibilityEvent(View child, AccessibilityEvent event) {
+ Folder currentFolder = mLauncher.getWorkspace().getOpenFolder();
+ if (currentFolder != null) {
+ if (child == currentFolder) {
+ return super.onRequestSendAccessibilityEvent(child, event);
+ }
+ // Skip propagating onRequestSendAccessibilityEvent all for other children
+ // when a folder is open
+ return false;
+ }
+ return super.onRequestSendAccessibilityEvent(child, event);
+ }
+
+ @Override
+ public void addChildrenForAccessibility(ArrayList<View> childrenForAccessibility) {
+ Folder currentFolder = mLauncher.getWorkspace().getOpenFolder();
+ if (currentFolder != null) {
+ // Only add the folder as a child for accessibility when it is open
+ childrenForAccessibility.add(currentFolder);
+ } else {
+ super.addChildrenForAccessibility(childrenForAccessibility);
+ }
+ }
+
+ @Override
public boolean onHoverEvent(MotionEvent ev) {
// If we've received this, we've already done the necessary handling
// in onInterceptHoverEvent. Return true to consume the event.
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 9f97442a2..b20e3a573 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -2287,6 +2287,11 @@ public final class Launcher extends Activity
}
folder.animateOpen();
growAndFadeOutFolderIcon(folderIcon);
+
+ // Notify the accessibility manager that this folder "window" has appeared and occluded
+ // the workspace items
+ folder.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+ getDragLayer().sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
}
public void closeFolder() {
@@ -2311,6 +2316,10 @@ public final class Launcher extends Activity
shrinkAndFadeInFolderIcon(fi);
}
folder.animateClosed();
+
+ // Notify the accessibility manager that this folder "window" has disappeard and no
+ // longer occludeds the workspace items
+ getDragLayer().sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
}
public boolean onLongClick(View v) {