Don't auto-correct when there are digits.

Bug: 6667462
Change-Id: I796655f57c71c9f50ae6e38dd08b71df3998dbcf
main
Jean Chalard 2012-07-27 23:13:28 +09:00
parent e3f26dd21e
commit e7c471a52f
2 changed files with 14 additions and 1 deletions

View File

@ -233,7 +233,7 @@ public class Suggest {
// the current settings. It may also be useful to know, when the setting is off, whether // the current settings. It may also be useful to know, when the setting is off, whether
// the word *would* have been auto-corrected. // the word *would* have been auto-corrected.
if (!isCorrectionEnabled || !allowsToBeAutoCorrected || !wordComposer.isComposingWord() if (!isCorrectionEnabled || !allowsToBeAutoCorrected || !wordComposer.isComposingWord()
|| suggestionsSet.isEmpty() || suggestionsSet.isEmpty() || wordComposer.hasDigits()
|| wordComposer.isMostlyCaps() || wordComposer.isResumed() || wordComposer.isMostlyCaps() || wordComposer.isResumed()
|| !hasMainDictionary()) { || !hasMainDictionary()) {
// If we don't have a main dictionary, we never want to auto-correct. The reason for // If we don't have a main dictionary, we never want to auto-correct. The reason for

View File

@ -41,6 +41,7 @@ public class WordComposer {
// Cache these values for performance // Cache these values for performance
private int mCapsCount; private int mCapsCount;
private int mDigitsCount;
private boolean mAutoCapitalized; private boolean mAutoCapitalized;
private int mTrailingSingleQuotesCount; private int mTrailingSingleQuotesCount;
private int mCodePointSize; private int mCodePointSize;
@ -65,6 +66,7 @@ public class WordComposer {
mTypedWord = new StringBuilder(source.mTypedWord); mTypedWord = new StringBuilder(source.mTypedWord);
mInputPointers.copy(source.mInputPointers); mInputPointers.copy(source.mInputPointers);
mCapsCount = source.mCapsCount; mCapsCount = source.mCapsCount;
mDigitsCount = source.mDigitsCount;
mIsFirstCharCapitalized = source.mIsFirstCharCapitalized; mIsFirstCharCapitalized = source.mIsFirstCharCapitalized;
mAutoCapitalized = source.mAutoCapitalized; mAutoCapitalized = source.mAutoCapitalized;
mTrailingSingleQuotesCount = source.mTrailingSingleQuotesCount; mTrailingSingleQuotesCount = source.mTrailingSingleQuotesCount;
@ -80,6 +82,7 @@ public class WordComposer {
mTypedWord.setLength(0); mTypedWord.setLength(0);
mAutoCorrection = null; mAutoCorrection = null;
mCapsCount = 0; mCapsCount = 0;
mDigitsCount = 0;
mIsFirstCharCapitalized = false; mIsFirstCharCapitalized = false;
mTrailingSingleQuotesCount = 0; mTrailingSingleQuotesCount = 0;
mIsResumed = false; mIsResumed = false;
@ -141,6 +144,7 @@ public class WordComposer {
mIsFirstCharCapitalized = isFirstCharCapitalized( mIsFirstCharCapitalized = isFirstCharCapitalized(
newIndex, primaryCode, mIsFirstCharCapitalized); newIndex, primaryCode, mIsFirstCharCapitalized);
if (Character.isUpperCase(primaryCode)) mCapsCount++; if (Character.isUpperCase(primaryCode)) mCapsCount++;
if (Character.isDigit(primaryCode)) mDigitsCount++;
if (Keyboard.CODE_SINGLE_QUOTE == primaryCode) { if (Keyboard.CODE_SINGLE_QUOTE == primaryCode) {
++mTrailingSingleQuotesCount; ++mTrailingSingleQuotesCount;
} else { } else {
@ -213,6 +217,7 @@ public class WordComposer {
mTypedWord.deleteCharAt(stringBuilderLength - 1); mTypedWord.deleteCharAt(stringBuilderLength - 1);
} }
if (Character.isUpperCase(lastChar)) mCapsCount--; if (Character.isUpperCase(lastChar)) mCapsCount--;
if (Character.isDigit(lastChar)) mDigitsCount--;
refreshSize(); refreshSize();
} }
// We may have deleted the last one. // We may have deleted the last one.
@ -267,6 +272,13 @@ public class WordComposer {
return mCapsCount > 1; return mCapsCount > 1;
} }
/**
* Returns true if we have digits in the composing word.
*/
public boolean hasDigits() {
return mDigitsCount > 0;
}
/** /**
* Saves the reason why the word is capitalized - whether it was automatic or * Saves the reason why the word is capitalized - whether it was automatic or
* due to the user hitting shift in the middle of a sentence. * due to the user hitting shift in the middle of a sentence.
@ -322,6 +334,7 @@ public class WordComposer {
lastComposedWord.deactivate(); lastComposedWord.deactivate();
} }
mCapsCount = 0; mCapsCount = 0;
mDigitsCount = 0;
mIsBatchMode = false; mIsBatchMode = false;
mTypedWord.setLength(0); mTypedWord.setLength(0);
mTrailingSingleQuotesCount = 0; mTrailingSingleQuotesCount = 0;