Fix 2306814: Too aggressive suggesting names from my contacts list.
When there is more than one instance of a name in the Contacts, it
gets a very high weightage and can override corrections for very
high frequency words such as "the".
This fix prevents multiple occurences from increasing the frequency
of a contact and also from bumping it above 255, which is the frequency
of "the", "is", etc.
diff --git a/src/com/android/inputmethod/latin/ExpandableDictionary.java b/src/com/android/inputmethod/latin/ExpandableDictionary.java
index a136ee7..1589168 100644
--- a/src/com/android/inputmethod/latin/ExpandableDictionary.java
+++ b/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -105,8 +105,8 @@
if (wordLength == depth + 1) {
// Terminate this word
childNode.terminal = true;
- childNode.frequency += frequency; // If there are multiple similar words
- if (childNode.frequency > 256) childNode.frequency = 256;
+ childNode.frequency = Math.max(frequency, childNode.frequency);
+ if (childNode.frequency > 255) childNode.frequency = 255;
return;
}
if (childNode.children == null) {