[IL47] Inline getSuggestedWordsGestureLocked

This method is confusing with the *Locked convention, and
the two-step call creates a useless callback object. This is
better inlined both for readability and for performance.

Bug: 8636060
Change-Id: I7c427c3ca4e831388a6d54de6728b32206a45d80
This commit is contained in:
Jean Chalard 2013-12-25 18:35:32 +09:00
parent 71a3e96382
commit 4a144b9b4d

View file

@ -1334,13 +1334,21 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// Batch input has ended or canceled while the message was being delivered.
return;
}
getSuggestedWordsGestureLocked(batchPointers, sequenceNumber,
mLatinIme.mInputLogic.mWordComposer.setBatchInputPointers(batchPointers);
getSuggestedWords(Suggest.SESSION_GESTURE, sequenceNumber,
new OnGetSuggestedWordsCallback() {
@Override
public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
public void onGetSuggestedWords(SuggestedWords suggestedWords) {
// We're now inside the callback. This always runs on the
// InputUpdater thread, no matter what thread updateBatchInput
// was called on.
if (suggestedWords.isEmpty()) {
// Use old suggestions if we don't have any new ones.
// Previous suggestions are found in InputLogic#mSuggestedWords.
// Since these are the most recent ones and we just recomputed
// new ones to update them, then the previous ones are there.
suggestedWords = mLatinIme.mInputLogic.mSuggestedWords;
}
mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip(
suggestedWords,
forEnd /* dismissGestureFloatingPreviewText */);
@ -1397,27 +1405,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
updateBatchInput(batchPointers, sequenceNumber, true /* forEnd */);
}
// {@link LatinIME#getSuggestedWords(int)} method calls with same session id have to
// be synchronized.
private void getSuggestedWordsGestureLocked(final InputPointers batchPointers,
final int sequenceNumber, final OnGetSuggestedWordsCallback callback) {
mLatinIme.mInputLogic.mWordComposer.setBatchInputPointers(batchPointers);
getSuggestedWords(Suggest.SESSION_GESTURE, sequenceNumber,
new OnGetSuggestedWordsCallback() {
@Override
public void onGetSuggestedWords(SuggestedWords suggestedWords) {
if (suggestedWords.isEmpty()) {
// Previous suggestions are found in InputLogic#mSuggestedWords.
// Since these are the most recent ones and we just recomputed new
// ones to update them, it means the previous ones are there.
callback.onGetSuggestedWords(mLatinIme.mInputLogic.mSuggestedWords);
} else {
callback.onGetSuggestedWords(suggestedWords);
}
}
});
}
public void getSuggestedWords(final int sessionId, final int sequenceNumber,
final OnGetSuggestedWordsCallback callback) {
mHandler.obtainMessage(MSG_GET_SUGGESTED_WORDS, sessionId, sequenceNumber, callback)