Fix key info reported by keyboard accessibility node provider.
Bug: 6704529 Change-Id: I519881a96767a8858c11da7c0abac3e276a45cf5main
parent
dd7f79097a
commit
26b424b644
|
@ -195,8 +195,7 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
|
||||||
info.setSource(mKeyboardView, virtualViewId);
|
info.setSource(mKeyboardView, virtualViewId);
|
||||||
info.setBoundsInScreen(boundsInScreen);
|
info.setBoundsInScreen(boundsInScreen);
|
||||||
info.setEnabled(true);
|
info.setEnabled(true);
|
||||||
info.setClickable(true);
|
info.setVisibleToUser(true);
|
||||||
info.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
|
|
||||||
|
|
||||||
if (mAccessibilityFocusedView == virtualViewId) {
|
if (mAccessibilityFocusedView == virtualViewId) {
|
||||||
info.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
|
info.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
|
||||||
|
@ -225,6 +224,9 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
|
||||||
|
|
||||||
mKeyboardView.onTouchEvent(downEvent);
|
mKeyboardView.onTouchEvent(downEvent);
|
||||||
mKeyboardView.onTouchEvent(upEvent);
|
mKeyboardView.onTouchEvent(upEvent);
|
||||||
|
|
||||||
|
downEvent.recycle();
|
||||||
|
upEvent.recycle();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -251,9 +253,6 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
|
||||||
final int virtualViewId = generateVirtualViewIdForKey(key);
|
final int virtualViewId = generateVirtualViewIdForKey(key);
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case AccessibilityNodeInfoCompat.ACTION_CLICK:
|
|
||||||
simulateKeyPress(key);
|
|
||||||
return true;
|
|
||||||
case AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS:
|
case AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS:
|
||||||
if (mAccessibilityFocusedView == virtualViewId) {
|
if (mAccessibilityFocusedView == virtualViewId) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -105,8 +105,21 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Receives hover events when accessibility is turned on in SDK versions ICS
|
* Receives motion events when touch exploration is turned on in SDK
|
||||||
* and higher.
|
* 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.
|
* @param event The hover event.
|
||||||
* @return {@code true} if the event is handled
|
* @return {@code true} if the event is handled
|
||||||
|
|
|
@ -672,6 +672,9 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key
|
||||||
if (getKeyboard() == null) {
|
if (getKeyboard() == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
|
||||||
|
return AccessibleKeyboardViewProxy.getInstance().onTouchEvent(me);
|
||||||
|
}
|
||||||
return mTouchScreenRegulator.onTouchEvent(me);
|
return mTouchScreenRegulator.onTouchEvent(me);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -667,7 +667,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
// Forward this event to the accessibility utilities, if enabled.
|
// Forward this event to the accessibility utilities, if enabled.
|
||||||
final AccessibilityUtils accessUtils = AccessibilityUtils.getInstance();
|
final AccessibilityUtils accessUtils = AccessibilityUtils.getInstance();
|
||||||
if (accessUtils.isTouchExplorationEnabled()) {
|
if (accessUtils.isTouchExplorationEnabled()) {
|
||||||
accessUtils.onStartInputViewInternal(inputView, editorInfo, restarting);
|
accessUtils.onStartInputViewInternal(mainKeyboardView, editorInfo, restarting);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!restarting) {
|
if (!restarting) {
|
||||||
|
|
Loading…
Reference in New Issue