aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-09-03 18:34:55 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-09-03 18:34:55 -0700
commit2c0c1cc677b947521384c5b9bc2b7b0469929581 (patch)
treedece00e3d859263533bcf95b3ffdff0084c4ad8f /java/src
parent1a397ececf88f2daffa103f8411aa9cbaabb50da (diff)
parent26b424b6448fbaddc86d11377ca44ff3169a5d7e (diff)
downloadlatinime-2c0c1cc677b947521384c5b9bc2b7b0469929581.tar.gz
latinime-2c0c1cc677b947521384c5b9bc2b7b0469929581.tar.xz
latinime-2c0c1cc677b947521384c5b9bc2b7b0469929581.zip
Merge "Fix key info reported by keyboard accessibility node provider." into jb-mr1-dev
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java9
-rw-r--r--java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java17
-rw-r--r--java/src/com/android/inputmethod/keyboard/MainKeyboardView.java3
3 files changed, 22 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
index 039c77b9c..5af5d044f 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
@@ -196,8 +196,7 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
info.setSource(mKeyboardView, virtualViewId);
info.setBoundsInScreen(boundsInScreen);
info.setEnabled(true);
- info.setClickable(true);
- info.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
+ info.setVisibleToUser(true);
if (mAccessibilityFocusedView == virtualViewId) {
info.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
@@ -226,6 +225,9 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
mKeyboardView.onTouchEvent(downEvent);
mKeyboardView.onTouchEvent(upEvent);
+
+ downEvent.recycle();
+ upEvent.recycle();
}
@Override
@@ -252,9 +254,6 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
final int virtualViewId = generateVirtualViewIdForKey(key);
switch (action) {
- case AccessibilityNodeInfoCompat.ACTION_CLICK:
- simulateKeyPress(key);
- return true;
case AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS:
if (mAccessibilityFocusedView == virtualViewId) {
return false;
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
index e42de0b4c..77940c086 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
@@ -105,8 +105,21 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
}
/**
- * Receives hover events when accessibility is turned on in SDK versions ICS
- * and higher.
+ * Receives motion events when touch exploration is turned on in SDK
+ * versions ICS and higher.
+ *
+ * @param event The motion event.
+ * @return {@code true} if the event is handled
+ */
+ public boolean onTouchEvent(MotionEvent event) {
+ // To avoid accidental key presses during touch exploration, always drop
+ // non-hover touch events.
+ return false;
+ }
+
+ /**
+ * Receives hover events when touch exploration is turned on in SDK versions
+ * ICS and higher.
*
* @param event The hover event.
* @return {@code true} if the event is handled
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index 06973ef99..f6b66a79e 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -665,6 +665,9 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key
if (getKeyboard() == null) {
return false;
}
+ if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
+ return AccessibleKeyboardViewProxy.getInstance().onTouchEvent(me);
+ }
return mTouchScreenRegulator.onTouchEvent(me);
}