Merge "Update KeyBoardView to reflect the interaction model in Latin IME" into ics-mr1

This commit is contained in:
Svetoslav Ganov
2011-11-02 11:51:58 -07:00
committed by Android (Google) Code Review

View File

@@ -1145,44 +1145,29 @@ public class KeyboardView extends View implements View.OnClickListener {
@Override
public boolean onHoverEvent(MotionEvent event) {
// If touch exploring is enabled we ignore touch events and transform
// the stream of hover events as touch events. This allows one consistent
// event stream to drive the keyboard since during touch exploring the
// first touch generates only hover events and tapping on the same
// location generates hover and touch events.
if (mAccessibilityManager.isTouchExplorationEnabled() && event.getPointerCount() == 1) {
final int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_HOVER_ENTER:
event.setAction(MotionEvent.ACTION_DOWN);
break;
case MotionEvent.ACTION_HOVER_MOVE:
event.setAction(MotionEvent.ACTION_MOVE);
final int touchX = (int) event.getX() - mPaddingLeft;
int touchY = (int) event.getY() - mPaddingTop;
if (touchY >= -mVerticalCorrection) {
touchY += mVerticalCorrection;
}
final int keyIndex = getKeyIndices(touchX, touchY, null);
showPreview(keyIndex);
break;
case MotionEvent.ACTION_HOVER_EXIT:
event.setAction(MotionEvent.ACTION_UP);
showPreview(NOT_A_KEY);
break;
}
onTouchEventInternal(event);
event.setAction(action);
}
return super.onHoverEvent(event);
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// If touch exploring is enabled we ignore touch events and transform
// the stream of hover events as touch events. This allows one consistent
// event stream to drive the keyboard since during touch exploring the
// first touch generates only hover events and tapping on the same
// location generates hover and touch events.
if (mAccessibilityManager.isTouchExplorationEnabled()) {
return true;
}
return onTouchEventInternal(event);
}
private boolean onTouchEventInternal(MotionEvent me) {
public boolean onTouchEvent(MotionEvent me) {
// Convert multi-pointer up/down events to single up/down events to
// deal with the typical multi-pointer behavior of two-thumb typing
final int pointerCount = me.getPointerCount();