Fix a bug where quotes and dashes are considered letters

Bug: 6174065
Change-Id: I702760d44ead0eeb60d06360aa3bb03c2ec73325
main
Jean Chalard 2012-03-15 17:58:25 +09:00
parent 2be7a37acf
commit 6ec1209a33
2 changed files with 20 additions and 2 deletions

View File

@ -2059,10 +2059,12 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
if (ic == null) return false;
CharSequence before = ic.getTextBeforeCursor(1, 0);
CharSequence after = ic.getTextAfterCursor(1, 0);
if (!TextUtils.isEmpty(before) && !mSettingsValues.isWordSeparator(before.charAt(0))) {
if (!TextUtils.isEmpty(before) && !mSettingsValues.isWordSeparator(before.charAt(0))
&& !mSettingsValues.isSymbolExcludedFromWordSeparators(before.charAt(0))) {
return true;
}
if (!TextUtils.isEmpty(after) && !mSettingsValues.isWordSeparator(after.charAt(0))) {
if (!TextUtils.isEmpty(after) && !mSettingsValues.isWordSeparator(after.charAt(0))
&& !mSettingsValues.isSymbolExcludedFromWordSeparators(after.charAt(0))) {
return true;
}
return false;

View File

@ -554,6 +554,22 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> {
EXPECTED_RESULT, mTextView.getText().toString());
}
public void testAutoCorrectionWithSingleQuoteInside() {
final String WORD_TO_TYPE = "you'f ";
final String EXPECTED_RESULT = "you'd ";
type(WORD_TO_TYPE);
assertEquals("auto-correction with single quote inside",
EXPECTED_RESULT, mTextView.getText().toString());
}
public void testAutoCorrectionWithSingleQuotesAround() {
final String WORD_TO_TYPE = "'tgis' ";
final String EXPECTED_RESULT = "'this' ";
type(WORD_TO_TYPE);
assertEquals("auto-correction with single quotes around",
EXPECTED_RESULT, mTextView.getText().toString());
}
// A helper class to ease span tests
private static class Span {
final SpannableStringBuilder mInputText;