Pass the value we really want to pass to update functions (A67)

Change-Id: Ica9b875d119dea2f8dc237fd63e5b4eaa5e1c400
This commit is contained in:
Jean Chalard 2012-07-05 16:41:16 +09:00
parent 60dbe0be43
commit 146bd2e456

View File

@ -219,6 +219,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// isComposing is always true // isComposing is always true
public void postUpdateSuggestions(final boolean isComposing) { public void postUpdateSuggestions(final boolean isComposing) {
// TODO: remove this test
if (!isComposing) throw new RuntimeException("We are not composing a word");
cancelUpdateSuggestionStrip(); cancelUpdateSuggestionStrip();
sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTIONS), mDelayUpdateSuggestions); sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTIONS), mDelayUpdateSuggestions);
} }
@ -243,6 +245,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// isComposing is always false // isComposing is always false
public void postUpdateBigramPredictions(final boolean isComposing) { public void postUpdateBigramPredictions(final boolean isComposing) {
// TODO: remove this test
if (isComposing) throw new RuntimeException("We are composing a word");
cancelUpdateSuggestionStrip(); cancelUpdateSuggestionStrip();
sendMessageDelayed(obtainMessage(MSG_SET_BIGRAM_PREDICTIONS), mDelayUpdateSuggestions); sendMessageDelayed(obtainMessage(MSG_SET_BIGRAM_PREDICTIONS), mDelayUpdateSuggestions);
} }
@ -1400,10 +1404,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// isComposingWord() any more. // isComposingWord() any more.
if (!mWordComposer.isComposingWord()) { if (!mWordComposer.isComposingWord()) {
// Not composing word any more, so we can show bigrams. // Not composing word any more, so we can show bigrams.
mHandler.postUpdateBigramPredictions(false); mHandler.postUpdateBigramPredictions(mWordComposer.isComposingWord());
} else { } else {
// Still composing a word, so we still have letters to deduce a suggestion from. // Still composing a word, so we still have letters to deduce a suggestion from.
mHandler.postUpdateSuggestions(true); mHandler.postUpdateSuggestions(mWordComposer.isComposingWord());
} }
} else { } else {
mConnection.deleteSurroundingText(1, 0); mConnection.deleteSurroundingText(1, 0);
@ -1547,7 +1551,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
getCurrentAutoCapsState() != Constants.TextUtils.CAP_MODE_OFF); getCurrentAutoCapsState() != Constants.TextUtils.CAP_MODE_OFF);
} }
mConnection.setComposingText(getTextWithUnderline(mWordComposer.getTypedWord()), 1); mConnection.setComposingText(getTextWithUnderline(mWordComposer.getTypedWord()), 1);
mHandler.postUpdateSuggestions(true); // We just added a character, so isComposingWord() is true
mHandler.postUpdateSuggestions(mWordComposer.isComposingWord());
} else { } else {
final boolean swapWeakSpace = maybeStripSpace(primaryCode, final boolean swapWeakSpace = maybeStripSpace(primaryCode,
spaceState, KeyboardActionListener.SUGGESTION_STRIP_COORDINATE == x); spaceState, KeyboardActionListener.SUGGESTION_STRIP_COORDINATE == x);
@ -1561,7 +1566,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// We may need to update predictions, if the "add to dictionary" hint was displayed // We may need to update predictions, if the "add to dictionary" hint was displayed
// for example. // for example.
if (null != mSuggestionsView) mSuggestionsView.dismissAddToDictionaryHint(); if (null != mSuggestionsView) mSuggestionsView.dismissAddToDictionaryHint();
mHandler.postUpdateBigramPredictions(false); // Here we know we are not composing a word: if we were, then we can't come here because
// isComposingWord is still true; if we weren't, and we now are, then isComposingWord
// has been turned to true, so we can't come here either.
mHandler.postUpdateBigramPredictions(mWordComposer.isComposingWord());
} }
Utils.Stats.onNonSeparator((char)primaryCode, x, y); Utils.Stats.onNonSeparator((char)primaryCode, x, y);
} }
@ -1604,7 +1612,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mHandler.startDoubleSpacesTimer(); mHandler.startDoubleSpacesTimer();
if (!mConnection.isCursorTouchingWord(mCurrentSettings)) { if (!mConnection.isCursorTouchingWord(mCurrentSettings)) {
mHandler.postUpdateBigramPredictions(false); // We know mWordComposer.isComposingWord() is false here, since if it was true,
// we committed the text, making it false.
mHandler.postUpdateBigramPredictions(mWordComposer.isComposingWord());
} }
} else { } else {
if (swapWeakSpace) { if (swapWeakSpace) {
@ -1889,7 +1899,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mSuggestionsView.showAddToDictionaryHint(suggestion, mCurrentSettings.mHintToSaveText); mSuggestionsView.showAddToDictionaryHint(suggestion, mCurrentSettings.mHintToSaveText);
} else { } else {
// If we're not showing the "Touch again to save", then show predictions. // If we're not showing the "Touch again to save", then show predictions.
mHandler.postUpdateBigramPredictions(false); // We just called commitChosenWord, which ensures mWordComposer#isComposingWord()
// returns false.
mHandler.postUpdateBigramPredictions(mWordComposer.isComposingWord());
} }
} }
@ -1981,7 +1993,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
ResearchLogger.latinIME_deleteSurroundingText(length); ResearchLogger.latinIME_deleteSurroundingText(length);
} }
mConnection.setComposingText(word, 1); mConnection.setComposingText(word, 1);
mHandler.postUpdateSuggestions(true); // We just set a composing word, so isComposingWord() is true
mHandler.postUpdateSuggestions(mWordComposer.isComposingWord());
} }
private void revertCommit() { private void revertCommit() {
@ -2026,7 +2039,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// separator. // separator.
mLastComposedWord = LastComposedWord.NOT_A_COMPOSED_WORD; mLastComposedWord = LastComposedWord.NOT_A_COMPOSED_WORD;
// We have a separator between the word and the cursor: we should show predictions. // We have a separator between the word and the cursor: we should show predictions.
mHandler.postUpdateBigramPredictions(false); // We know we are not composing a word here (there is even a test that throws an exception
// in debug mode in here)
mHandler.postUpdateBigramPredictions(mWordComposer.isComposingWord());
} }
public boolean isWordSeparator(int code) { public boolean isWordSeparator(int code) {
@ -2052,9 +2067,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// we are currently composing. If we are not composing anything, we may want to display // we are currently composing. If we are not composing anything, we may want to display
// predictions or punctuation signs (which is done by updateBigramPredictions anyway). // predictions or punctuation signs (which is done by updateBigramPredictions anyway).
if (mWordComposer.isComposingWord()) { if (mWordComposer.isComposingWord()) {
mHandler.postUpdateSuggestions(true); mHandler.postUpdateSuggestions(mWordComposer.isComposingWord());
} else { } else {
mHandler.postUpdateBigramPredictions(false); mHandler.postUpdateBigramPredictions(mWordComposer.isComposingWord());
} }
} }