Loading core/java/android/inputmethodservice/KeyboardView.java +20 −15 Original line number Diff line number Diff line Loading @@ -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 ... Loading Loading @@ -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; } Loading Loading
core/java/android/inputmethodservice/KeyboardView.java +20 −15 Original line number Diff line number Diff line Loading @@ -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 ... Loading Loading @@ -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; } Loading