diff options
author | 2014-04-16 21:13:51 +0900 | |
---|---|---|
committer | 2014-04-17 16:41:26 +0900 | |
commit | 649dcba5a8c94ffa4d340e0549a92b167b038ada (patch) | |
tree | ea274a7851275ab659bdba37b96c63bf726f9cf9 /java/src | |
parent | 1ee443d848f7e8ce8b3696e4d6e4a6afa1ce2d47 (diff) | |
download | latinime-649dcba5a8c94ffa4d340e0549a92b167b038ada.tar.gz latinime-649dcba5a8c94ffa4d340e0549a92b167b038ada.tar.xz latinime-649dcba5a8c94ffa4d340e0549a92b167b038ada.zip |
Avoid lower-case version of capitalized words in user hist
Bug: 14096825
Change-Id: Ib6cc8fc31e90862e0b05f5a06757a73069726b74
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java index 7cb218fbe..0b6258a7f 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java +++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java @@ -421,7 +421,19 @@ public class DictionaryFacilitatorForSuggest { final String suggestionLowerCase = suggestion.toLowerCase(dictionaries.mLocale); final String secondWord; if (wasAutoCapitalized) { - secondWord = suggestionLowerCase; + if (isValidWord(suggestion, false /* ignoreCase */) + && !isValidWord(suggestionLowerCase, false /* ignoreCase */)) { + // If the word was auto-capitalized and exists only as a capitalized word in the + // dictionary, then we must not downcase it before registering it. For example, + // the name of the contacts in start-of-sentence position would come here with the + // wasAutoCapitalized flag: if we downcase it, we'd register a lower-case version + // of that contact's name which would end up popping in suggestions. + secondWord = suggestion; + } else { + // If however the word is not in the dictionary, or exists as a lower-case word + // only, then we consider that was a lower-case word that had been auto-capitalized. + secondWord = suggestionLowerCase; + } } else { // HACK: We'd like to avoid adding the capitalized form of common words to the User // History dictionary in order to avoid suggesting them until the dictionary |