From 966efe48891cbdd364d94f1e72fa0435ab8f2b77 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Mon, 9 Jul 2012 13:06:12 +0900
Subject: [PATCH] Fix a bug with suggestion behavior (A81)

Bug: 6788235
Change-Id: I5a4212872e0fd3f9e80168fd3abd5c2b3bc4110f
---
 java/src/com/android/inputmethod/latin/Suggest.java | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index f810eccf4..d7aa87dca 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -174,7 +174,7 @@ public class Suggest {
                 : typedWord;
         LatinImeLogger.onAddSuggestedWord(typedWord, Dictionary.TYPE_USER_TYPED);
 
-        if (wordComposer.size() <= 1 && isCorrectionEnabled) {
+        if (wordComposer.size() <= 1) {
             // At first character typed, search only the bigrams
             if (!TextUtils.isEmpty(prevWordForBigram)) {
                 for (final String key : mDictionaries.keySet()) {
@@ -182,7 +182,7 @@ public class Suggest {
                     suggestionsSet.addAll(dictionary.getBigrams(wordComposer, prevWordForBigram));
                 }
             }
-        } else if (wordComposer.size() > 1) {
+        } else {
             final WordComposer wordComposerForLookup;
             if (trailingSingleQuotesCount > 0) {
                 wordComposerForLookup = new WordComposer(wordComposer);
@@ -216,6 +216,11 @@ public class Suggest {
                 mWhiteListDictionary.getWhitelistedWord(consideredWord);
 
         final boolean hasAutoCorrection;
+        // TODO: using isCorrectionEnabled here is not very good. It's probably useless, because
+        // any attempt to do auto-correction is already shielded with a test for this flag; at the
+        // same time, it feels wrong that the SuggestedWord object includes information about
+        // the current settings. It may also be useful to know, when the setting is off, whether
+        // the word *would* have been auto-corrected.
         if (!isCorrectionEnabled || !allowsToBeAutoCorrected || wordComposer.isMostlyCaps()
                 || wordComposer.isResumed() || !hasMainDictionary()) {
             // If we don't have a main dictionary, we never want to auto-correct. The reason for