summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/Cling.java
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2012-05-22 15:19:14 -0700
committerSvetoslav Ganov <svetoslavganov@google.com>2012-05-22 16:17:53 -0700
commit55d225d50e68b3ea629c45a53d6744b52e335134 (patch)
treefccd9ea6327a2c36434b3326eea225c5f143c832 /src/com/android/launcher2/Cling.java
parenta4ac83cc3b285780328a052a2d42646c1abf3d13 (diff)
downloadandroid_packages_apps_Trebuchet-55d225d50e68b3ea629c45a53d6744b52e335134.tar.gz
android_packages_apps_Trebuchet-55d225d50e68b3ea629c45a53d6744b52e335134.tar.bz2
android_packages_apps_Trebuchet-55d225d50e68b3ea629c45a53d6744b52e335134.zip
Cling allows touch explore and accessibility focus search behind it.
1. Touch exploration is performed through hover events and the cling has to consume them to prevent touch exploring content behind it to achieve modal window like behavior. 2. Since the cling should behave as a modal window, the accessibility focus search should not returning items behind the cling, so the focus search should use the cling as its root. bug:6538549 Change-Id: I8545b6ae3ac85a363cc371e1a608d55b9abd5de8
Diffstat (limited to 'src/com/android/launcher2/Cling.java')
-rw-r--r--src/com/android/launcher2/Cling.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/com/android/launcher2/Cling.java b/src/com/android/launcher2/Cling.java
index d61b9883a..5cde0b447 100644
--- a/src/com/android/launcher2/Cling.java
+++ b/src/com/android/launcher2/Cling.java
@@ -28,6 +28,10 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
+import android.view.FocusFinder;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.accessibility.AccessibilityManager;
import android.widget.FrameLayout;
import com.android.launcher.R;
@@ -130,6 +134,35 @@ public class Cling extends FrameLayout {
}
@Override
+ public View findViewToTakeAccessibilityFocusFromHover(View child, View descendant) {
+ if (descendant.includeForAccessibility()) {
+ return descendant;
+ }
+ return null;
+ }
+
+ @Override
+ public View focusSearch(int direction) {
+ return this.focusSearch(null, direction);
+ }
+
+ @Override
+ public View focusSearch(View focused, int direction) {
+ return FocusFinder.getInstance().findNextFocus(this, focused, direction);
+ }
+
+ @Override
+ public boolean onHoverEvent(MotionEvent event) {
+ return (mDrawIdentifier.equals(WORKSPACE_PORTRAIT)
+ || mDrawIdentifier.equals(WORKSPACE_LANDSCAPE)
+ || mDrawIdentifier.equals(WORKSPACE_LARGE)
+ || mDrawIdentifier.equals(ALLAPPS_PORTRAIT)
+ || mDrawIdentifier.equals(ALLAPPS_LANDSCAPE)
+ || mDrawIdentifier.equals(ALLAPPS_LARGE)
+ || mDrawIdentifier.equals(WORKSPACE_CUSTOM));
+ }
+
+ @Override
public boolean onTouchEvent(android.view.MotionEvent event) {
if (mDrawIdentifier.equals(WORKSPACE_PORTRAIT) ||
mDrawIdentifier.equals(WORKSPACE_LANDSCAPE) ||