From 5b63c38d1fc9e42348a8a90edf8dce6103f72864 Mon Sep 17 00:00:00 2001
From: Amith Yamasani <yamasani@google.com>
Date: Mon, 7 Dec 2009 11:42:09 -0800
Subject: [PATCH] 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.
---
 src/com/android/inputmethod/latin/ExpandableDictionary.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/com/android/inputmethod/latin/ExpandableDictionary.java b/src/com/android/inputmethod/latin/ExpandableDictionary.java
index a136ee7f42..1589168ee4 100644
--- a/src/com/android/inputmethod/latin/ExpandableDictionary.java
+++ b/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -105,8 +105,8 @@ public class ExpandableDictionary extends Dictionary {
         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) {
-- 
GitLab