From 5b63c38d1fc9e42348a8a90edf8dce6103f72864 Mon Sep 17 00:00:00 2001 From: Amith Yamasani 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 a136ee7f4..1589168ee 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) {