Merge "Fix key info reported by keyboard accessibility node provider." into jb-mr1-dev

main
Tadashi G. Takaoka 2012-09-03 18:34:55 -07:00 committed by Android (Google) Code Review
commit 2c0c1cc677
3 changed files with 22 additions and 7 deletions

View File

@ -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;

View File

@ -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

View File

@ -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);
}