[IL62] Pull up X,Y processing, step 1

This is fine because getKey{X,Y} is idempotent for any
non-keyboard coordinate value.

However this makes a net change : the x,y values passed to
LatinImeLoggerUtils.onNonSeparator are now different.
The point is however that they used to be wrong. The logged
values used not to account for the keyboard padding that
is present on tablets, and in the simulating tools we don't
know about that padding so we couldn't use the coordinates.
The catch here is that other calls like LoggerUtils.onSeparator
should follow suit, but this is too big a change to do it at once.
Follow-up changes will fix them too.

Bug: 8636060
Change-Id: If4b3d3cb1ed4b44c35f23e66aba3b5797236bba7
This commit is contained in:
Jean Chalard 2013-12-27 15:44:29 +09:00
parent 591580ee8a
commit 2b38b5e8e6

View file

@ -475,9 +475,15 @@ public final class InputLogic {
} }
final int keyX, keyY; final int keyX, keyY;
final Keyboard keyboard = keyboardSwitcher.getKeyboard(); 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)) { if (keyboard != null && keyboard.hasProximityCharsCorrection(codePoint)) {
keyX = x; // x and y include some padding, but everything down the line (especially native
keyY = y; // code) needs the coordinates in the keyboard frame.
// TODO: move this frame change up
keyX = mainKeyboardView.getKeyX(x);
keyY = mainKeyboardView.getKeyY(y);
} else { } else {
keyX = Constants.NOT_A_COORDINATE; keyX = Constants.NOT_A_COORDINATE;
keyY = Constants.NOT_A_COORDINATE; keyY = Constants.NOT_A_COORDINATE;
@ -549,12 +555,7 @@ public final class InputLogic {
resetComposingState(false /* alsoResetLastComposedWord */); resetComposingState(false /* alsoResetLastComposedWord */);
} }
if (isComposingWord) { if (isComposingWord) {
final MainKeyboardView mainKeyboardView = keyboardSwitcher.getMainKeyboardView(); mWordComposer.add(codePoint, x, y);
// TODO: We should reconsider which coordinate system should be used to represent
// keyboard event.
final int keyX = mainKeyboardView.getKeyX(x);
final int keyY = mainKeyboardView.getKeyY(y);
mWordComposer.add(codePoint, keyX, keyY);
// If it's the first letter, make note of auto-caps state // If it's the first letter, make note of auto-caps state
if (mWordComposer.size() == 1) { if (mWordComposer.size() == 1) {
// We pass 1 to getPreviousWordForSuggestion because we were not composing a word // We pass 1 to getPreviousWordForSuggestion because we were not composing a word