am f459ccf4: Merge "Revert "[CB16] Remove unused stuff""

* commit 'f459ccf4f663d74ce43c57e9b9af9251ee0c48a1':
  Revert "[CB16] Remove unused stuff"
main
Jean Chalard 2014-03-27 09:49:02 +00:00 committed by Android Git Automerger
commit 5a4cb0e3f8
2 changed files with 37 additions and 5 deletions

View File

@ -38,25 +38,38 @@ public final class LastComposedWord {
// or it may be exactly what the user typed if it's in the dictionary or the IME does not have // or it may be exactly what the user typed if it's in the dictionary or the IME does not have
// enough confidence in any suggestion to auto-correct (auto-correct to typed word). // enough confidence in any suggestion to auto-correct (auto-correct to typed word).
public static final int COMMIT_TYPE_DECIDED_WORD = 2; public static final int COMMIT_TYPE_DECIDED_WORD = 2;
// COMMIT_TYPE_CANCEL_AUTO_CORRECT is used upon committing back the old word upon cancelling
// an auto-correction.
public static final int COMMIT_TYPE_CANCEL_AUTO_CORRECT = 3;
public static final String NOT_A_SEPARATOR = ""; public static final String NOT_A_SEPARATOR = "";
public final ArrayList<Event> mEvents;
public final String mTypedWord; public final String mTypedWord;
public final CharSequence mCommittedWord; public final CharSequence mCommittedWord;
public final String mSeparatorString; public final String mSeparatorString;
public final String mPrevWord; public final String mPrevWord;
public final int mCapitalizedMode; public final int mCapitalizedMode;
public final InputPointers mInputPointers =
new InputPointers(Constants.DICTIONARY_MAX_WORD_LENGTH);
private boolean mActive; private boolean mActive;
public static final LastComposedWord NOT_A_COMPOSED_WORD = public static final LastComposedWord NOT_A_COMPOSED_WORD =
new LastComposedWord("", "", NOT_A_SEPARATOR, null, WordComposer.CAPS_MODE_OFF); new LastComposedWord(new ArrayList<Event>(), null, "", "",
NOT_A_SEPARATOR, null, WordComposer.CAPS_MODE_OFF);
// Warning: this is using the passed objects as is and fully expects them to be // Warning: this is using the passed objects as is and fully expects them to be
// immutable. Do not fiddle with their contents after you passed them to this constructor. // immutable. Do not fiddle with their contents after you passed them to this constructor.
public LastComposedWord(final String typedWord, final CharSequence committedWord, public LastComposedWord(final ArrayList<Event> events,
final String separatorString, final String prevWord, final int capitalizedMode) { final InputPointers inputPointers, final String typedWord,
final CharSequence committedWord, final String separatorString,
final String prevWord, final int capitalizedMode) {
if (inputPointers != null) {
mInputPointers.copy(inputPointers);
}
mTypedWord = typedWord; mTypedWord = typedWord;
mEvents = new ArrayList<Event>(events);
mCommittedWord = committedWord; mCommittedWord = committedWord;
mSeparatorString = separatorString; mSeparatorString = separatorString;
mActive = true; mActive = true;

View File

@ -426,8 +426,9 @@ public final class WordComposer {
// Note: currently, we come here whenever we commit a word. If it's a MANUAL_PICK // Note: currently, we come here whenever we commit a word. If it's a MANUAL_PICK
// or a DECIDED_WORD we may cancel the commit later; otherwise, we should deactivate // or a DECIDED_WORD we may cancel the commit later; otherwise, we should deactivate
// the last composed word to ensure this does not happen. // the last composed word to ensure this does not happen.
final LastComposedWord lastComposedWord = new LastComposedWord( final LastComposedWord lastComposedWord = new LastComposedWord(mEvents,
mTypedWord.toString(), committedWord, separatorString, prevWord, mCapitalizedMode); mInputPointers, mTypedWord.toString(), committedWord, separatorString,
prevWord, mCapitalizedMode);
mInputPointers.reset(); mInputPointers.reset();
if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD
&& type != LastComposedWord.COMMIT_TYPE_MANUAL_PICK) { && type != LastComposedWord.COMMIT_TYPE_MANUAL_PICK) {
@ -458,6 +459,24 @@ public final class WordComposer {
public void discardPreviousWordForSuggestion() { public void discardPreviousWordForSuggestion() {
mPreviousWordForSuggestion = null; mPreviousWordForSuggestion = null;
} }
public void resumeSuggestionOnLastComposedWord(final LastComposedWord lastComposedWord,
final String previousWord) {
mEvents.clear();
Collections.copy(mEvents, lastComposedWord.mEvents);
mInputPointers.set(lastComposedWord.mInputPointers);
mTypedWord.setLength(0);
mCombinerChain.reset();
mTypedWord.append(lastComposedWord.mTypedWord);
refreshSize();
mCapitalizedMode = lastComposedWord.mCapitalizedMode;
mAutoCorrection = null; // This will be filled by the next call to updateSuggestion.
mCursorPositionWithinWord = mCodePointSize;
mRejectedBatchModeSuggestion = null;
mIsResumed = true;
mPreviousWordForSuggestion = previousWord;
}
public boolean isBatchMode() { public boolean isBatchMode() {
return mIsBatchMode; return mIsBatchMode;
} }