diff options
author | Winson Chung <winsonc@google.com> | 2013-04-16 17:15:33 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-04-16 17:15:34 +0000 |
commit | 5a0300783cef1216f5d13dcbe98ef44f8cc78fc7 (patch) | |
tree | d0c9b1b4578b851b0649db61330bb79e98594cdc /src/com/android/launcher2 | |
parent | 7972194528cde392ce2b42779a6d5c2d77e86993 (diff) | |
parent | 83ca480941b3dd635b62347008fc8d7859d82002 (diff) | |
download | android_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/com/android/launcher2')
-rw-r--r-- | src/com/android/launcher2/DragLayer.java | 26 | ||||
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 9 |
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) { |