[IL63] Pull up X,Y processing, step 2
This also fixes the coordinates passed to logOnDelete and
log onSeparator.
Bug: 8636060
Change-Id: I4703d61ad7de76b501adca18df3a69e06450c9a1
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 35dd97a..079e657 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -225,10 +225,25 @@
}
boolean didAutoCorrect = false;
+ final int keyX, keyY;
+ final Keyboard keyboard = keyboardSwitcher.getKeyboard();
+ final MainKeyboardView mainKeyboardView = keyboardSwitcher.getMainKeyboardView();
+ // TODO: We should reconsider which coordinate system should be used to represent
+ // keyboard event.
+ if (keyboard != null && keyboard.hasProximityCharsCorrection(code)) {
+ // x and y include some padding, but everything down the line (especially native
+ // code) needs the coordinates in the keyboard frame.
+ // TODO: move this frame change up
+ keyX = mainKeyboardView.getKeyX(x);
+ keyY = mainKeyboardView.getKeyY(y);
+ } else {
+ keyX = Constants.NOT_A_COORDINATE;
+ keyY = Constants.NOT_A_COORDINATE;
+ }
switch (code) {
case Constants.CODE_DELETE:
handleBackspace(settingsValues, spaceState, handler, keyboardSwitcher);
- LatinImeLogger.logOnDelete(x, y);
+ LatinImeLogger.logOnDelete(keyX, keyY);
break;
case Constants.CODE_SHIFT:
// Note: Calling back to the keyboard on Shift key is handled in
@@ -289,16 +304,16 @@
// No action label, and the action from imeOptions is NONE: this is a regular
// enter key that should input a carriage return.
didAutoCorrect = handleNonSpecialCharacter(settingsValues, Constants.CODE_ENTER,
- x, y, spaceState, keyboardSwitcher, handler);
+ keyX, keyY, spaceState, keyboardSwitcher, handler);
}
break;
case Constants.CODE_SHIFT_ENTER:
didAutoCorrect = handleNonSpecialCharacter(settingsValues, Constants.CODE_ENTER,
- x, y, spaceState, keyboardSwitcher, handler);
+ keyX, keyY, spaceState, keyboardSwitcher, handler);
break;
default:
didAutoCorrect = handleNonSpecialCharacter(settingsValues,
- code, x, y, spaceState, keyboardSwitcher, handler);
+ code, keyX, keyY, spaceState, keyboardSwitcher, handler);
break;
}
keyboardSwitcher.onCodeInput(code);
@@ -473,22 +488,7 @@
commitTyped(settingsValues, LastComposedWord.NOT_A_SEPARATOR);
}
}
- final int keyX, keyY;
- final Keyboard keyboard = keyboardSwitcher.getKeyboard();
- final MainKeyboardView mainKeyboardView = keyboardSwitcher.getMainKeyboardView();
- // TODO: We should reconsider which coordinate system should be used to represent
- // keyboard event.
- if (keyboard != null && keyboard.hasProximityCharsCorrection(codePoint)) {
- // x and y include some padding, but everything down the line (especially native
- // code) needs the coordinates in the keyboard frame.
- // TODO: move this frame change up
- keyX = mainKeyboardView.getKeyX(x);
- keyY = mainKeyboardView.getKeyY(y);
- } else {
- keyX = Constants.NOT_A_COORDINATE;
- keyY = Constants.NOT_A_COORDINATE;
- }
- handleNonSeparator(settingsValues, codePoint, keyX, keyY, spaceState,
+ handleNonSeparator(settingsValues, codePoint, x, y, spaceState,
keyboardSwitcher, handler);
}
return didAutoCorrect;