Skip to content
Snippets Groups Projects
Commit dc2ee777 authored by alanv's avatar alanv
Browse files

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
parent 29352761
No related branches found
No related tags found
No related merge requests found
......@@ -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;
}
......
......@@ -660,14 +660,19 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key
return mOldPointerCount;
}
@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);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment