Merge "[IL48] Move onEndBatchInputAsyncInternal to InputLogic."
commit
d05ea8bd82
|
@ -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() {
|
||||||
|
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue