diff options
author | 2012-09-10 15:47:24 -0700 | |
---|---|---|
committer | 2012-09-10 15:47:24 -0700 | |
commit | dc2ee7772402633817702e95c2a5b17f6dec03eb (patch) | |
tree | d8dba65f37ca03160443a91a9f3aaad61260be5b /java/src | |
parent | 2935276110cf3588e2986b833cc78a7bab6253cc (diff) | |
download | latinime-dc2ee7772402633817702e95c2a5b17f6dec03eb.tar.gz latinime-dc2ee7772402633817702e95c2a5b17f6dec03eb.tar.xz latinime-dc2ee7772402633817702e95c2a5b17f6dec03eb.zip |
When Accessibility is on, intercept touch events during dispatch.
This allows Accessibility code to safely inject events into
onTouchEvent() without accidentally intercepting them.
Bug: 7137557
Change-Id: Ie4fa8e3be5b1bb84f57c6254feab1129cb89998f
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java | 10 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/MainKeyboardView.java | 11 |
2 files changed, 13 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java index 77940c086..01220a58a 100644 --- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java +++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java @@ -105,15 +105,15 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat { } /** - * Receives motion events when touch exploration is turned on in SDK - * versions ICS and higher. + * Intercepts touch events before dispatch when touch exploration is turned + * on in ICS and higher. * - * @param event The motion event. + * @param event The motion event being dispatched. * @return {@code true} if the event is handled */ - public boolean onTouchEvent(MotionEvent event) { + public boolean dispatchTouchEvent(MotionEvent event) { // To avoid accidental key presses during touch exploration, always drop - // non-hover touch events. + // touch events generated by the user. return false; } diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java index f6b66a79e..4ed0f58e1 100644 --- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java @@ -661,13 +661,18 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key } @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) { + return AccessibleKeyboardViewProxy.getInstance().dispatchTouchEvent(event); + } + return super.dispatchTouchEvent(event); + } + + @Override public boolean onTouchEvent(final MotionEvent me) { if (getKeyboard() == null) { return false; } - if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) { - return AccessibleKeyboardViewProxy.getInstance().onTouchEvent(me); - } return mTouchScreenRegulator.onTouchEvent(me); } |