diff options
author | 2013-09-05 17:56:00 +0900 | |
---|---|---|
committer | 2013-09-09 14:47:26 +0900 | |
commit | cc2751ba03fad6af5da0a7b5d421963e040d690f (patch) | |
tree | 9325e61600e9a93c3ac4d5b5756f8a494c03a63e /java/src | |
parent | 37e0fd2ff04a2a87e421abea8bc407bd312dbfc6 (diff) | |
download | latinime-cc2751ba03fad6af5da0a7b5d421963e040d690f.tar.gz latinime-cc2751ba03fad6af5da0a7b5d421963e040d690f.tar.xz latinime-cc2751ba03fad6af5da0a7b5d421963e040d690f.zip |
Make commitCurrentAutoCorrection asynchronous.
Change-Id: Ida230ca4243347fb3ab9fda7de3a9a18f886cd1c
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index a8a29a1d4..3d29c5a0b 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -2532,11 +2532,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen false /* isPrediction */); } - private void showSuggestionStrip(final SuggestedWords suggestedWords) { - if (suggestedWords.isEmpty()) { - clearSuggestionStrip(); - return; - } + private void setAutoCorrection(final SuggestedWords suggestedWords) { + if (suggestedWords.isEmpty()) return; final String autoCorrection; if (suggestedWords.mWillAutoCorrect) { autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION); @@ -2544,17 +2541,21 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_TYPED_WORD); } mWordComposer.setAutoCorrection(autoCorrection); + } + + private void showSuggestionStrip(final SuggestedWords suggestedWords) { + if (suggestedWords.isEmpty()) { + clearSuggestionStrip(); + return; + } + setAutoCorrection(suggestedWords); final boolean isAutoCorrection = suggestedWords.willAutoCorrect(); setSuggestedWords(suggestedWords, isAutoCorrection); setAutoCorrectionIndicator(isAutoCorrection); setSuggestionStripShown(isSuggestionsStripVisible()); } - private void commitCurrentAutoCorrection(final String separator, final Runnable callback) { - // Complete any pending suggestions query first - if (mHandler.hasPendingUpdateSuggestions()) { - updateSuggestionStrip(); - } + private void completeCommitCurrentAutoCorrection(final String separator) { final String typedAutoCorrection = mWordComposer.getAutoCorrectionOrNull(); final String typedWord = mWordComposer.getTypedWord(); final String autoCorrection = (typedAutoCorrection != null) @@ -2588,9 +2589,22 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen typedWord, autoCorrection)); } } - if (callback != null) { - callback.run(); - } + } + + private void commitCurrentAutoCorrection(final String separator, final Runnable callback) { + getSuggestedWordsOrOlderSuggestionsAsync(Suggest.SESSION_TYPING, + new OnGetSuggestedWordsCallback() { + @Override + public void onGetSuggestedWords(final SuggestedWords suggestedWords) { + if (suggestedWords != null) { + setAutoCorrection(suggestedWords); + } + completeCommitCurrentAutoCorrection(separator); + if (callback != null) { + callback.run(); + } + } + }); } // Called from {@link SuggestionStripView} through the {@link SuggestionStripView#Listener} |