Unify space-adding on gestures.

This is much simpler, and more correct.

Bug: 8808497
Change-Id: I7a56bf9d6d9fb481f898b7a9f5898a86c11b34c0
This commit is contained in:
Jean Chalard 2013-05-07 17:07:47 +09:00
parent 4ddf1e47a7
commit e8b9b35471

View file

@ -1577,21 +1577,11 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
commitTyped(LastComposedWord.NOT_A_SEPARATOR);
}
mExpectingUpdateSelection = true;
// The following is necessary for the case where the user typed something but didn't
// manual pick it and didn't input any separator: we want to put a space between what
// has been entered and the coming gesture input result, so we go into phantom space
// state, which will be promoted to a space when the gesture result is committed. But if
// the current input ends in a word connector on the other hand, then we want to have
// the next input stick to the current input so we don't switch to phantom space state.
if (!mSettings.getCurrent().isWordConnector(lastChar)) {
mSpaceState = SPACE_STATE_PHANTOM;
}
} else {
final int codePointBeforeCursor = mConnection.getCodePointBeforeCursor();
if (Character.isLetter(codePointBeforeCursor)
|| mSettings.getCurrent().isUsuallyFollowedBySpace(codePointBeforeCursor)) {
mSpaceState = SPACE_STATE_PHANTOM;
}
}
final int codePointBeforeCursor = mConnection.getCodePointBeforeCursor();
if (Character.isLetterOrDigit(codePointBeforeCursor)
|| mSettings.getCurrent().isUsuallyFollowedBySpace(codePointBeforeCursor)) {
mSpaceState = SPACE_STATE_PHANTOM;
}
mConnection.endBatchEdit();
mWordComposer.setCapitalizedModeAtStartComposingTime(getActualCapsMode());
@ -1905,6 +1895,8 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
final int y, final int spaceState) {
boolean isComposingWord = mWordComposer.isComposingWord();
// TODO: remove isWordConnector() and use isUsuallyFollowedBySpace() instead.
// See onStartBatchInput() to see how to do it.
if (SPACE_STATE_PHANTOM == spaceState &&
!mSettings.getCurrent().isWordConnector(primaryCode)) {
if (isComposingWord) {