[IL48] Move onEndBatchInputAsyncInternal to InputLogic.

Bug: 8636060
Change-Id: Idfabf7231a80e21786ce1910b5140bb3dddcac7d
This commit is contained in:
Jean Chalard 2013-12-25 20:08:52 +09:00
parent 4a144b9b4d
commit c654fe57b1
2 changed files with 43 additions and 35 deletions

View file

@ -215,7 +215,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
postUpdateSuggestionStrip();
break;
case MSG_ON_END_BATCH_INPUT:
latinIme.onEndBatchInputAsyncInternal((SuggestedWords) msg.obj);
latinIme.mInputLogic.onEndBatchInputAsyncInternal(latinIme.mSettings.getCurrent(),
(SuggestedWords) msg.obj, latinIme.mKeyboardSwitcher);
break;
case MSG_RESET_CACHES:
latinIme.mInputLogic.retryResetCaches(latinIme.mSettings.getCurrent(),
@ -1428,40 +1429,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
@Override
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.
*