Loading java/src/com/android/inputmethod/latin/LatinIME.java +8 −0 Original line number Diff line number Diff line Loading @@ -1922,6 +1922,14 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mVoiceProxy.flushAndLogAllTextModificationCounters(index, suggestion, mSettingsValues.mWordSeparators); if (SPACE_STATE_PHANTOM == mSpaceState && suggestion.length() > 0) { int firstChar = Character.codePointAt(suggestion, 0); if ((!mSettingsValues.isWeakSpaceStripper(firstChar)) && (!mSettingsValues.isWeakSpaceSwapper(firstChar))) { sendKeyCodePoint(Keyboard.CODE_SPACE); } } if (mInputAttributes.mApplicationSpecifiedCompletionOn && mApplicationSpecifiedCompletions != null && index >= 0 && index < mApplicationSpecifiedCompletions.length) { Loading tests/src/com/android/inputmethod/latin/InputLogicTests.java +26 −1 Original line number Diff line number Diff line Loading @@ -404,7 +404,32 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> { type(WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then space then type", WORD1_TO_TYPE + WORD2_TO_TYPE, assertEquals("manual pick then space then type", EXPECTED_RESULT, mTextView.getText().toString()); } public void testManualPickThenManualPick() { final String WORD1_TO_TYPE = "this"; final String WORD2_TO_PICK = "is"; final String EXPECTED_RESULT = "this is"; type(WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE); // Here we fake picking a word through bigram prediction. This test is taking // advantage of the fact that Latin IME blindly trusts the caller of #pickSuggestionManually // to actually pass the right string. mLatinIME.pickSuggestionManually(1, WORD2_TO_PICK); assertEquals("manual pick then manual pick", EXPECTED_RESULT, mTextView.getText().toString()); } public void testManualPickThenManualPickWithPunctAtStart() { final String WORD1_TO_TYPE = "this"; final String WORD2_TO_PICK = "!is"; final String EXPECTED_RESULT = "this!is"; type(WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(1, WORD2_TO_PICK); assertEquals("manual pick then manual pick a word with punct at start", EXPECTED_RESULT, mTextView.getText().toString()); } Loading Loading
java/src/com/android/inputmethod/latin/LatinIME.java +8 −0 Original line number Diff line number Diff line Loading @@ -1922,6 +1922,14 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mVoiceProxy.flushAndLogAllTextModificationCounters(index, suggestion, mSettingsValues.mWordSeparators); if (SPACE_STATE_PHANTOM == mSpaceState && suggestion.length() > 0) { int firstChar = Character.codePointAt(suggestion, 0); if ((!mSettingsValues.isWeakSpaceStripper(firstChar)) && (!mSettingsValues.isWeakSpaceSwapper(firstChar))) { sendKeyCodePoint(Keyboard.CODE_SPACE); } } if (mInputAttributes.mApplicationSpecifiedCompletionOn && mApplicationSpecifiedCompletions != null && index >= 0 && index < mApplicationSpecifiedCompletions.length) { Loading
tests/src/com/android/inputmethod/latin/InputLogicTests.java +26 −1 Original line number Diff line number Diff line Loading @@ -404,7 +404,32 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> { type(WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE); type(WORD2_TO_TYPE); assertEquals("manual pick then space then type", WORD1_TO_TYPE + WORD2_TO_TYPE, assertEquals("manual pick then space then type", EXPECTED_RESULT, mTextView.getText().toString()); } public void testManualPickThenManualPick() { final String WORD1_TO_TYPE = "this"; final String WORD2_TO_PICK = "is"; final String EXPECTED_RESULT = "this is"; type(WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE); // Here we fake picking a word through bigram prediction. This test is taking // advantage of the fact that Latin IME blindly trusts the caller of #pickSuggestionManually // to actually pass the right string. mLatinIME.pickSuggestionManually(1, WORD2_TO_PICK); assertEquals("manual pick then manual pick", EXPECTED_RESULT, mTextView.getText().toString()); } public void testManualPickThenManualPickWithPunctAtStart() { final String WORD1_TO_TYPE = "this"; final String WORD2_TO_PICK = "!is"; final String EXPECTED_RESULT = "this!is"; type(WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(0, WORD1_TO_TYPE); mLatinIME.pickSuggestionManually(1, WORD2_TO_PICK); assertEquals("manual pick then manual pick a word with punct at start", EXPECTED_RESULT, mTextView.getText().toString()); } Loading