am dd5e1d15: Merge "Remove mCommittedWordSavedForSuggestionResuming (A4)"

* commit 'dd5e1d157b6bd8d7642dfd1dd855c97adc9f4b67':
  Remove mCommittedWordSavedForSuggestionResuming (A4)
main
Jean Chalard 2012-01-26 02:17:33 -08:00 committed by Android Git Automerger
commit 7498ef4d0e
2 changed files with 15 additions and 25 deletions

View File

@ -2165,7 +2165,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// "ic" must not be null // "ic" must not be null
private void cancelAutoCorrect(final InputConnection ic) { private void cancelAutoCorrect(final InputConnection ic) {
mWordComposer.resumeSuggestionOnKeptWord(); mWordComposer.resumeSuggestionOnLastComposedWord(mLastComposedWord);
final String originallyTypedWord = mWordComposer.getTypedWord(); final String originallyTypedWord = mWordComposer.getTypedWord();
final CharSequence autoCorrectedTo = mWordComposer.getAutoCorrectionOrNull(); final CharSequence autoCorrectedTo = mWordComposer.getAutoCorrectionOrNull();
final int cancelLength = autoCorrectedTo.length(); final int cancelLength = autoCorrectedTo.length();
@ -2205,7 +2205,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// Note: in the interest of code simplicity, we may want to just call // Note: in the interest of code simplicity, we may want to just call
// restartSuggestionsOnWordBeforeCursorIfAtEndOfWord instead, but retrieving // restartSuggestionsOnWordBeforeCursorIfAtEndOfWord instead, but retrieving
// the old WordComposer allows to reuse the actual typed coordinates. // the old WordComposer allows to reuse the actual typed coordinates.
mWordComposer.resumeSuggestionOnKeptWord(); mWordComposer.resumeSuggestionOnLastComposedWord(mLastComposedWord);
// We resume suggestion, and then we want to set the composing text to the content // We resume suggestion, and then we want to set the composing text to the content
// of the word composer again. But since we just manually picked a word, there is // of the word composer again. But since we just manually picked a word, there is
// no composing text at the moment, so we have to delete the word before we set a // no composing text at the moment, so we have to delete the word before we set a

View File

@ -67,8 +67,6 @@ public class WordComposer {
// The currently typing word. May not be null. // The currently typing word. May not be null.
private CharacterStore mCurrentWord; private CharacterStore mCurrentWord;
// The information being kept for resuming suggestion. May be null if wiped.
private CharacterStore mCommittedWordSavedForSuggestionResuming;
private int mCapsCount; private int mCapsCount;
@ -83,7 +81,6 @@ public class WordComposer {
public WordComposer() { public WordComposer() {
mCurrentWord = new CharacterStore(); mCurrentWord = new CharacterStore();
mCommittedWordSavedForSuggestionResuming = null;
mTrailingSingleQuotesCount = 0; mTrailingSingleQuotesCount = 0;
} }
@ -93,7 +90,6 @@ public class WordComposer {
public void init(WordComposer source) { public void init(WordComposer source) {
mCurrentWord = new CharacterStore(source.mCurrentWord); mCurrentWord = new CharacterStore(source.mCurrentWord);
mCommittedWordSavedForSuggestionResuming = source.mCommittedWordSavedForSuggestionResuming;
mCapsCount = source.mCapsCount; mCapsCount = source.mCapsCount;
mIsFirstCharCapitalized = source.mIsFirstCharCapitalized; mIsFirstCharCapitalized = source.mIsFirstCharCapitalized;
mAutoCapitalized = source.mAutoCapitalized; mAutoCapitalized = source.mAutoCapitalized;
@ -105,7 +101,6 @@ public class WordComposer {
*/ */
public void reset() { public void reset() {
mCurrentWord.reset(); mCurrentWord.reset();
mCommittedWordSavedForSuggestionResuming = null;
mCapsCount = 0; mCapsCount = 0;
mIsFirstCharCapitalized = false; mIsFirstCharCapitalized = false;
mTrailingSingleQuotesCount = 0; mTrailingSingleQuotesCount = 0;
@ -201,7 +196,6 @@ public class WordComposer {
int codePoint = word.charAt(i); int codePoint = word.charAt(i);
addKeyInfo(codePoint, keyboard, keyDetector); addKeyInfo(codePoint, keyboard, keyDetector);
} }
mCommittedWordSavedForSuggestionResuming = null;
} }
/** /**
@ -331,7 +325,6 @@ public class WordComposer {
// `type' should be one of the LastComposedWord.COMMIT_TYPE_* constants above. // `type' should be one of the LastComposedWord.COMMIT_TYPE_* constants above.
public LastComposedWord commitWord(final int type) { public LastComposedWord commitWord(final int type) {
mCommittedWordSavedForSuggestionResuming = mCurrentWord;
// Note: currently, we come here whenever we commit a word. If it's any *other* kind than // Note: currently, we come here whenever we commit a word. If it's any *other* kind than
// DECIDED_WORD, we should reset mAutoCorrection so that we don't attempt to cancel later. // DECIDED_WORD, we should reset mAutoCorrection so that we don't attempt to cancel later.
// If it's a DECIDED_WORD, it may be an actual auto-correction by the IME, or what the user // If it's a DECIDED_WORD, it may be an actual auto-correction by the IME, or what the user
@ -339,29 +332,26 @@ public class WordComposer {
// Ideally we would also null it when it was a DECIDED_WORD that was not an auto-correct. // Ideally we would also null it when it was a DECIDED_WORD that was not an auto-correct.
// As it happens these two cases should behave differently, because the former can be // As it happens these two cases should behave differently, because the former can be
// canceled while the latter can't. Currently, we figure this out in // canceled while the latter can't. Currently, we figure this out in
// #didAutoCorrectToAnotherWord with #equals(). It would be marginally cleaner to do it // LastComposedWord#didAutoCorrectToAnotherWord with #equals(). It would be marginally
// here, but it would be slower (since we would #equals() for each commit, instead of // cleaner to do it here, but it would be slower (since we would #equals() for each commit,
// only on cancel), and ultimately we want to figure it out even earlier anyway. // instead of only on cancel), and ultimately we want to figure it out even earlier anyway.
if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD) {
// Only ever revert an auto-correct.
mCommittedWordSavedForSuggestionResuming.mAutoCorrection = null;
}
final LastComposedWord lastComposedWord = new LastComposedWord(type, mCurrentWord.mCodes, final LastComposedWord lastComposedWord = new LastComposedWord(type, mCurrentWord.mCodes,
mCurrentWord.mXCoordinates, mCurrentWord.mYCoordinates, mCurrentWord.mXCoordinates, mCurrentWord.mYCoordinates,
mCurrentWord.mTypedWord.toString(), mCurrentWord.mTypedWord.toString(),
null == mCurrentWord.mAutoCorrection (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD)
|| (null == mCurrentWord.mAutoCorrection)
? null : mCurrentWord.mAutoCorrection.toString()); ? null : mCurrentWord.mAutoCorrection.toString());
// TODO: improve performance by swapping buffers instead of creating a new object. // TODO: improve performance by swapping buffers instead of creating a new object.
mCurrentWord = new CharacterStore(); mCurrentWord = new CharacterStore();
return lastComposedWord; return lastComposedWord;
} }
public boolean hasWordKeptForSuggestionResuming() { public void resumeSuggestionOnLastComposedWord(final LastComposedWord lastComposedWord) {
return null != mCommittedWordSavedForSuggestionResuming; mCurrentWord.mCodes = lastComposedWord.mCodes;
} mCurrentWord.mXCoordinates = lastComposedWord.mXCoordinates;
mCurrentWord.mYCoordinates = lastComposedWord.mYCoordinates;
public void resumeSuggestionOnKeptWord() { mCurrentWord.mTypedWord.setLength(0);
mCurrentWord = mCommittedWordSavedForSuggestionResuming; mCurrentWord.mTypedWord.append(lastComposedWord.mTypedWord);
mCommittedWordSavedForSuggestionResuming = null; mCurrentWord.mAutoCorrection = lastComposedWord.mAutoCorrection;
} }
} }