Don't auto-correct when there are digits.
Bug: 6667462 Change-Id: I796655f57c71c9f50ae6e38dd08b71df3998dbcfmain
parent
e3f26dd21e
commit
e7c471a52f
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue