am 7a904514: Merge "Don\'t use the previous word after a non-whitespace separator"

* commit '7a904514fb576b41dc94328aec3b04818fad2b4d':
  Don't use the previous word after a non-whitespace separator
main
Jean Chalard 2013-12-13 08:34:15 -08:00 committed by Android Git Automerger
commit 30db835b29
2 changed files with 14 additions and 1 deletions

View File

@ -1469,6 +1469,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
ResearchLogger.latinIME_maybeDoubleSpacePeriod(textToInsert,
false /* isBatchMode */);
}
mWordComposer.doubleSpacePeriod();
mKeyboardSwitcher.updateShiftState();
return true;
}

View File

@ -471,7 +471,12 @@ public final class WordComposer {
mCapsCount = 0;
mDigitsCount = 0;
mIsBatchMode = false;
mPreviousWord = mTypedWord.toString();
final boolean isWhitespace = 1 == StringUtils.codePointCount(separatorString)
&& Character.isWhitespace(separatorString.codePointAt(0));
// If not whitespace, we don't use the previous word for suggestion. This is consistent
// with how we get the previous word for suggestion: see RichInputConnection#spaceRegex and
// LatinIME#getNthPreviousWordForSuggestion.
mPreviousWord = isWhitespace ? mTypedWord.toString() : null;
mTypedWord.setLength(0);
mCodePointSize = 0;
mTrailingSingleQuotesCount = 0;
@ -485,6 +490,13 @@ public final class WordComposer {
return lastComposedWord;
}
public void doubleSpacePeriod() {
// When a period was entered with a double space, the separator we got has been
// changed by a period (see #commitWord). We should not use the previous word for
// suggestion.
mPreviousWord = null;
}
public void resumeSuggestionOnLastComposedWord(final LastComposedWord lastComposedWord,
final String previousWord) {
mPrimaryKeyCodes = lastComposedWord.mPrimaryKeyCodes;