Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b6a0b09b authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

Interaction model of KeyboarView should be same as latimIME

1. In latin IME key up types in - now the keyboad view does the same.

bug:6534935

Change-Id: I91cd40c5cd541199f3fb43e4d0bf26be511dcd09
parent c00d0086
Loading
Loading
Loading
Loading
+20 −15
Original line number Diff line number Diff line
@@ -855,15 +855,23 @@ public class KeyboardView extends View implements View.OnClickListener {
                Key oldKey = keys[oldKeyIndex];
                oldKey.onReleased(mCurrentKeyIndex == NOT_A_KEY);
                invalidateKey(oldKeyIndex);
                final int keyCode = oldKey.codes[0];
                sendAccessibilityEventForUnicodeCharacter(AccessibilityEvent.TYPE_VIEW_HOVER_EXIT,
                        oldKey.codes[0]);
                        keyCode);
                // TODO: We need to implement AccessibilityNodeProvider for this view.
                sendAccessibilityEventForUnicodeCharacter(
                        AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED, keyCode);
            }
            if (mCurrentKeyIndex != NOT_A_KEY && keys.length > mCurrentKeyIndex) {
                Key newKey = keys[mCurrentKeyIndex];
                newKey.onPressed();
                invalidateKey(mCurrentKeyIndex);
                final int keyCode = newKey.codes[0];
                sendAccessibilityEventForUnicodeCharacter(AccessibilityEvent.TYPE_VIEW_HOVER_ENTER,
                        newKey.codes[0]);
                        keyCode);
                // TODO: We need to implement AccessibilityNodeProvider for this view.
                sendAccessibilityEventForUnicodeCharacter(
                        AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED, keyCode);
            }
        }
        // If key changed and preview is on ...
@@ -1154,20 +1162,17 @@ public class KeyboardView extends View implements View.OnClickListener {
        if (mAccessibilityManager.isTouchExplorationEnabled() && event.getPointerCount() == 1) {
            final int action = event.getAction();
            switch (action) {
                case MotionEvent.ACTION_HOVER_ENTER:
                case MotionEvent.ACTION_HOVER_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:
                    showPreview(NOT_A_KEY);
                    break;
            }
                case MotionEvent.ACTION_HOVER_ENTER: {
                    event.setAction(MotionEvent.ACTION_DOWN);
                } break;
                case MotionEvent.ACTION_HOVER_MOVE: {
                    event.setAction(MotionEvent.ACTION_MOVE);
                } break;
                case MotionEvent.ACTION_HOVER_EXIT: {
                    event.setAction(MotionEvent.ACTION_UP);
                } break;
            }
            return onTouchEvent(event);
        }
        return true;
    }