Optimization (A26)

Change-Id: I1d7790289635729645995fb8c38868259ab1b3be
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 2bbe827..69f37dd 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -238,7 +238,8 @@
             hasAutoCorrection = false;
         } else if (AutoCorrection.suggestionExceedsAutoCorrectionThreshold(suggestionsSet.first(),
                 consideredWord, mAutoCorrectionThreshold)) {
-            hasAutoCorrection = true;
+            hasAutoCorrection = !shouldBlockAutoCorrectionBySafetyNet(typedWord,
+                    suggestionsSet.first().mWord);
         } else {
             hasAutoCorrection = false;
         }
@@ -299,14 +300,6 @@
         // Don't auto-correct words with multiple capital letter
         autoCorrectionAvailable &= !wordComposer.isMostlyCaps();
         autoCorrectionAvailable &= !wordComposer.isResumed();
-        // TODO: this safety net check should be done right after we decide that the suggestion
-        // exceeds the auto-correction threshold. However as long as the |= !allowsToBeAutoCorrected
-        // line is there it can't be done safely in a logical manner.
-        if (allowsToBeAutoCorrected && suggestionsList.size() > 1 && mAutoCorrectionThreshold > 0
-                && Suggest.shouldBlockAutoCorrectionBySafetyNet(typedWord,
-                        suggestionsList.get(1).mWord)) {
-            autoCorrectionAvailable = false;
-        }
         return new SuggestedWords(suggestionsList,
                 // TODO: this first argument is lying. If this is a whitelisted word which is an
                 // actual word, it says typedWordValid = false, which looks wrong. We should either