From 24a63b5537ea4872ec10676d147ddccabda6a1f6 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Wed, 11 Jul 2012 18:43:26 +0900
Subject: [PATCH] Simplification (A116)

Change-Id: I97cf92a7b0dabc251dd241b24978ea00d1e5f047
---
 .../android/inputmethod/latin/AutoCorrection.java  |  3 ++-
 .../src/com/android/inputmethod/latin/Suggest.java | 14 ++++++--------
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/AutoCorrection.java b/java/src/com/android/inputmethod/latin/AutoCorrection.java
index c78974dac1..a663374048 100644
--- a/java/src/com/android/inputmethod/latin/AutoCorrection.java
+++ b/java/src/com/android/inputmethod/latin/AutoCorrection.java
@@ -92,7 +92,8 @@ public class AutoCorrection {
     public static boolean suggestionExceedsAutoCorrectionThreshold(SuggestedWordInfo suggestion,
             CharSequence consideredWord, float autoCorrectionThreshold) {
         if (null != suggestion) {
-            //final int autoCorrectionSuggestionScore = sortedScores[0];
+            // Shortlist a whitelisted word
+            if (suggestion.mKind == SuggestedWordInfo.KIND_WHITELIST) return true;
             final int autoCorrectionSuggestionScore = suggestion.mScore;
             // TODO: when the normalized score of the first suggestion is nearly equals to
             //       the normalized score of the second suggestion, behave less aggressive.
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 071daea38a..7dbba94542 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -205,6 +205,12 @@ public class Suggest {
 
         final CharSequence whitelistedWord =
                 mWhiteListDictionary.getWhitelistedWord(consideredWord);
+        if (whitelistedWord != null) {
+            // MAX_SCORE ensures this will be considered strong enough to be auto-corrected
+            suggestionsSet.add(new SuggestedWordInfo(whitelistedWord,
+                    SuggestedWordInfo.MAX_SCORE, SuggestedWordInfo.KIND_WHITELIST,
+                    Dictionary.TYPE_WHITELIST));
+        }
 
         final boolean hasAutoCorrection;
         // TODO: using isCorrectionEnabled here is not very good. It's probably useless, because
@@ -222,8 +228,6 @@ public class Suggest {
             // would always auto-correct to "Will" which is unwanted. Hence, no main dict => no
             // auto-correct.
             hasAutoCorrection = false;
-        } else if (null != whitelistedWord) {
-            hasAutoCorrection = true;
         } else if (suggestionsSet.isEmpty()) {
             hasAutoCorrection = false;
         } else if (AutoCorrection.suggestionExceedsAutoCorrectionThreshold(suggestionsSet.first(),
@@ -233,12 +237,6 @@ public class Suggest {
             hasAutoCorrection = false;
         }
 
-        if (whitelistedWord != null) {
-            suggestionsSet.add(new SuggestedWordInfo(whitelistedWord,
-                    SuggestedWordInfo.MAX_SCORE, SuggestedWordInfo.KIND_WHITELIST,
-                    Dictionary.TYPE_WHITELIST));
-        }
-
         final ArrayList<SuggestedWordInfo> suggestionsContainer =
                 new ArrayList<SuggestedWordInfo>(suggestionsSet);
         final int suggestionsCount = suggestionsContainer.size();
-- 
GitLab