Merge "[IL48] Move onEndBatchInputAsyncInternal to InputLogic."

main
Jean Chalard 2013-12-27 08:06:48 +00:00 committed by Android (Google) Code Review
commit d05ea8bd82
2 changed files with 43 additions and 35 deletions

View File

@ -216,7 +216,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
postUpdateSuggestionStrip(); postUpdateSuggestionStrip();
break; break;
case MSG_ON_END_BATCH_INPUT: case MSG_ON_END_BATCH_INPUT:
latinIme.onEndBatchInputAsyncInternal((SuggestedWords) msg.obj); latinIme.mInputLogic.onEndBatchInputAsyncInternal(latinIme.mSettings.getCurrent(),
(SuggestedWords) msg.obj, latinIme.mKeyboardSwitcher);
break; break;
case MSG_RESET_CACHES: case MSG_RESET_CACHES:
latinIme.mInputLogic.retryResetCaches(latinIme.mSettings.getCurrent(), latinIme.mInputLogic.retryResetCaches(latinIme.mSettings.getCurrent(),
@ -1435,40 +1436,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
} }
} }
// This method must run on the UI Thread.
public void onEndBatchInputAsyncInternal(final SuggestedWords suggestedWords) {
final String batchInputText = suggestedWords.isEmpty() ? null : suggestedWords.getWord(0);
if (TextUtils.isEmpty(batchInputText)) {
return;
}
mInputLogic.mConnection.beginBatchEdit();
if (SpaceState.PHANTOM == mInputLogic.mSpaceState) {
mInputLogic.promotePhantomSpace(mSettings.getCurrent());
}
if (mSettings.getCurrent().mPhraseGestureEnabled) {
// Find the last space
final int indexOfLastSpace = batchInputText.lastIndexOf(Constants.CODE_SPACE) + 1;
if (0 != indexOfLastSpace) {
mInputLogic.mConnection.commitText(batchInputText.substring(0, indexOfLastSpace),
1);
showSuggestionStrip(suggestedWords.getSuggestedWordsForLastWordOfPhraseGesture());
}
final String lastWord = batchInputText.substring(indexOfLastSpace);
mInputLogic.mWordComposer.setBatchInputWord(lastWord);
mInputLogic.mConnection.setComposingText(lastWord, 1);
} else {
mInputLogic.mWordComposer.setBatchInputWord(batchInputText);
mInputLogic.mConnection.setComposingText(batchInputText, 1);
}
mInputLogic.mConnection.endBatchEdit();
if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
ResearchLogger.latinIME_onEndBatchInput(batchInputText, 0, suggestedWords);
}
// Space state must be updated before calling updateShiftState
mInputLogic.mSpaceState = SpaceState.PHANTOM;
mKeyboardSwitcher.updateShiftState();
}
// Called from PointerTracker through the KeyboardActionListener interface // Called from PointerTracker through the KeyboardActionListener interface
@Override @Override
public void onFinishSlidingInput() { public void onFinishSlidingInput() {

View File

@ -1508,6 +1508,47 @@ public final class InputLogic {
} }
} }
/**
* Do the final processing after a batch input has ended. This commits the word to the editor.
* @param settingsValues the current values of the settings.
* @param suggestedWords suggestedWords to use.
*/
public void onEndBatchInputAsyncInternal(final SettingsValues settingsValues,
final SuggestedWords suggestedWords,
// TODO: remove this argument
final KeyboardSwitcher keyboardSwitcher) {
final String batchInputText = suggestedWords.isEmpty() ? null : suggestedWords.getWord(0);
if (TextUtils.isEmpty(batchInputText)) {
return;
}
mConnection.beginBatchEdit();
if (SpaceState.PHANTOM == mSpaceState) {
promotePhantomSpace(settingsValues);
}
if (settingsValues.mPhraseGestureEnabled) {
// Find the last space
final int indexOfLastSpace = batchInputText.lastIndexOf(Constants.CODE_SPACE) + 1;
if (0 != indexOfLastSpace) {
mConnection.commitText(batchInputText.substring(0, indexOfLastSpace), 1);
mLatinIME.showSuggestionStrip(
suggestedWords.getSuggestedWordsForLastWordOfPhraseGesture());
}
final String lastWord = batchInputText.substring(indexOfLastSpace);
mWordComposer.setBatchInputWord(lastWord);
mConnection.setComposingText(lastWord, 1);
} else {
mWordComposer.setBatchInputWord(batchInputText);
mConnection.setComposingText(batchInputText, 1);
}
mConnection.endBatchEdit();
if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
ResearchLogger.latinIME_onEndBatchInput(batchInputText, 0, suggestedWords);
}
// Space state must be updated before calling updateShiftState
mSpaceState = SpaceState.PHANTOM;
keyboardSwitcher.updateShiftState();
}
/** /**
* Commit the typed string to the editor. * Commit the typed string to the editor.
* *