Merge "Fix bug in calculateSweetSpotType()"
diff --git a/java/res/values-en/whitelist.xml b/java/res/values-en/whitelist.xml
index 4078b4d..f929cec 100644
--- a/java/res/values-en/whitelist.xml
+++ b/java/res/values-en/whitelist.xml
@@ -30,9 +30,707 @@
         <item>ill</item>
         <item>I\'ll</item>
 
+        <!-- Following entries came from AutoText -->
+        <!-- TODO: Trim down these entries by removing ones getting auto-corrected by the typing
+                error correction algorithms. -->
+        <item>255</item>
+        <item>abouta</item>
+        <item>about a</item>
+
+        <item>255</item>
+        <item>aboutit</item>
+        <item>about it</item>
+
+        <item>255</item>
+        <item>aboutthe</item>
+        <item>about the</item>
+
+        <item>255</item>
+        <item>acheive</item>
+        <item>achieve</item>
+
+        <item>255</item>
+        <item>acheived</item>
+        <item>achieved</item>
+
+        <item>255</item>
+        <item>acheiving</item>
+        <item>achieving</item>
+
+        <item>255</item>
+        <item>acomodate</item>
+        <item>accommodate</item>
+
+        <item>255</item>
+        <item>accomodate</item>
+        <item>accommodate</item>
+
+        <item>255</item>
+        <item>acn</item>
+        <item>can</item>
+
+        <item>255</item>
+        <item>adn</item>
+        <item>and</item>
+
+        <item>255</item>
+        <item>agian</item>
+        <item>again</item>
+
+        <item>255</item>
+        <item>ahd</item>
+        <item>had</item>
+
+        <item>255</item>
+        <item>ahve</item>
+        <item>have</item>
+
+        <item>255</item>
+        <item>aint</item>
+        <item>ain\'t</item>
+
+        <item>255</item>
+        <item>alot</item>
+        <item>a lot</item>
+
+        <item>255</item>
+        <item>amde</item>
+        <item>made</item>
+
+        <item>255</item>
+        <item>amke</item>
+        <item>make</item>
+
+        <item>255</item>
+        <item>andone</item>
+        <item>and one</item>
+
+        <item>255</item>
+        <item>andteh</item>
+        <item>and the</item>
+
+        <item>255</item>
+        <item>anothe</item>
+        <item>another</item>
+
+        <item>255</item>
+        <item>arent</item>
+        <item>aren\'t</item>
+
+        <item>255</item>
+        <item>asthe</item>
+        <item>as the</item>
+
+        <item>255</item>
+        <item>atthe</item>
+        <item>at the</item>
+
+        <item>255</item>
+        <item>bakc</item>
+        <item>back</item>
+
+        <item>255</item>
+        <item>beacuse</item>
+        <item>because</item>
+
+        <item>255</item>
+        <item>becasue</item>
+        <item>because</item>
+
+        <item>255</item>
+        <item>becaus</item>
+        <item>because</item>
+
+        <item>255</item>
+        <item>becausea</item>
+        <item>because a</item>
+
+        <item>255</item>
+        <item>becauseof</item>
+        <item>because of</item>
+
+        <item>255</item>
+        <item>becausethe</item>
+        <item>because the</item>
+
+        <item>255</item>
+        <item>becauseyou</item>
+        <item>because you</item>
+
+        <item>255</item>
+        <item>becuase</item>
+        <item>because</item>
+
+        <item>255</item>
+        <item>becuse</item>
+        <item>because</item>
+
+        <item>255</item>
+        <item>beleive</item>
+        <item>believe</item>
+
+        <item>255</item>
+        <item>butthe</item>
+        <item>but the</item>
+
+        <item>255</item>
+        <item>cant</item>
+        <item>can\'t</item>
+
+        <item>255</item>
+        <item>certian</item>
+        <item>certain</item>
+
+        <item>255</item>
+        <item>changable</item>
+        <item>changeable</item>
+
+        <item>255</item>
+        <item>chekc</item>
+        <item>check</item>
+
+        <item>255</item>
+        <item>chnage</item>
+        <item>change</item>
+
+        <item>255</item>
+        <item>couldnt</item>
+        <item>couldn\'t</item>
+
+        <item>255</item>
+        <item>couldthe</item>
+        <item>could the</item>
+
+        <item>255</item>
+        <item>couldve</item>
+        <item>could\'ve</item>
+
+        <item>255</item>
+        <item>cna</item>
+        <item>can</item>
+
+        <item>255</item>
+        <item>committment</item>
+        <item>commitment</item>
+
+        <item>255</item>
+        <item>committments</item>
+        <item>commitments</item>
+
+        <item>255</item>
+        <item>companys</item>
+        <item>company\'s</item>
+
+        <item>255</item>
+        <item>cxan</item>
+        <item>can</item>
+
+        <item>255</item>
+        <item>didint</item>
+        <item>didn\'t</item>
+
+        <item>255</item>
+        <item>didnot</item>
+        <item>did not</item>
+
+        <item>255</item>
+        <item>didnt</item>
+        <item>didn\'t</item>
+
+        <item>255</item>
+        <item>doesnt</item>
+        <item>doesn\'t</item>
+
+        <item>255</item>
+        <item>dont</item>
+        <item>don\'t</item>
+
+        <item>255</item>
+        <item>eyt</item>
+        <item>yet</item>
+
+        <item>255</item>
+        <item>fidn</item>
+        <item>find</item>
+
+        <item>255</item>
+        <item>fora</item>
+        <item>for a</item>
+
+        <item>255</item>
+        <item>freind</item>
+        <item>friend</item>
+
+        <item>255</item>
+        <item>friday</item>
+        <item>Friday</item>
+
+        <item>255</item>
+        <item>hadbeen</item>
+        <item>had been</item>
+
+        <item>255</item>
+        <item>hadnt</item>
+        <item>hadn\'t</item>
+
+        <item>255</item>
+        <item>haev</item>
+        <item>have</item>
+
+        <item>255</item>
+        <item>hasbeen</item>
+        <item>has been</item>
+
+        <item>255</item>
+        <item>hasnt</item>
+        <item>hasn\'t</item>
+
+        <item>255</item>
+        <item>havent</item>
+        <item>haven\'t</item>
+
+        <item>255</item>
+        <item>hed</item>
+        <item>he\'d</item>
+
+        <item>255</item>
+        <item>hel</item>
+        <item>he\'ll</item>
+
+        <item>255</item>
+        <item>heres</item>
+        <item>here\'s</item>
+
+        <item>255</item>
+        <item>hes</item>
+        <item>he\'s</item>
+
+        <item>255</item>
+        <item>hlep</item>
+        <item>help</item>
+
+        <item>255</item>
+        <item>howd</item>
+        <item>how\'d</item>
+
+        <item>255</item>
+        <item>howll</item>
+        <item>how\'ll</item>
+
+        <item>255</item>
+        <item>hows</item>
+        <item>how\'s</item>
+
+        <item>255</item>
+        <item>howve</item>
+        <item>how\'ve</item>
+
+        <item>255</item>
+        <item>hte</item>
+        <item>the</item>
+
+        <item>255</item>
+        <item>htis</item>
+        <item>this</item>
+
+        <item>255</item>
+        <item>hvae</item>
+        <item>have</item>
+
+        <item>255</item>
+        <item>i</item>
+        <item>I</item>
+
+        <item>255</item>
+        <item>il</item>
+        <item>I\'ll</item>
+
+        <item>255</item>
+        <item>im</item>
+        <item>I\'m</item>
+
+        <item>255</item>
+        <item>i\'m</item>
+        <item>I\'m</item>
+
+        <item>255</item>
+        <item>i\'ll</item>
+        <item>I\'ll</item>
+
+        <item>255</item>
+        <item>i\'ve</item>
+        <item>I\'ve</item>
+
+        <item>255</item>
+        <item>inteh</item>
+        <item>in the</item>
+
+        <item>255</item>
+        <item>isnt</item>
+        <item>isn\'t</item>
+
+        <item>255</item>
+        <item>isthe</item>
+        <item>is the</item>
+
+        <item>255</item>
+        <item>itd</item>
+        <item>it\'d</item>
+
+        <item>255</item>
+        <item>itis</item>
+        <item>it is</item>
+
+        <item>255</item>
+        <item>itll</item>
+        <item>it\'ll</item>
+
+        <item>255</item>
+        <item>itsa</item>
+        <item>it\'s a</item>
+
+        <item>255</item>
+        <item>ive</item>
+        <item>I\'ve</item>
+
         <item>255</item>
         <item>lets</item>
         <item>let\'s</item>
 
+        <item>255</item>
+        <item>maam</item>
+        <item>ma\'am</item>
+
+        <item>255</item>
+        <item>mkae</item>
+        <item>make</item>
+
+        <item>255</item>
+        <item>mkaes</item>
+        <item>makes</item>
+
+        <item>255</item>
+        <item>monday</item>
+        <item>Monday</item>
+
+        <item>255</item>
+        <item>mustnt</item>
+        <item>mustn\'t</item>
+
+        <item>255</item>
+        <item>neednt</item>
+        <item>needn\'t</item>
+
+        <item>255</item>
+        <item>oclock</item>
+        <item>o\'clock</item>
+
+        <item>255</item>
+        <item>ofits</item>
+        <item>of its</item>
+
+        <item>255</item>
+        <item>ofthe</item>
+        <item>of the</item>
+
+        <item>255</item>
+        <item>omre</item>
+        <item>more</item>
+
+        <item>255</item>
+        <item>oneof</item>
+        <item>one of</item>
+
+        <item>255</item>
+        <item>otehr</item>
+        <item>other</item>
+
+        <item>255</item>
+        <item>outof</item>
+        <item>out of</item>
+
+        <item>255</item>
+        <item>overthe</item>
+        <item>over the</item>
+
+        <item>255</item>
+        <item>owrk</item>
+        <item>work</item>
+
+        <item>255</item>
+        <item>percentof</item>
+        <item>percent of</item>
+
+        <item>255</item>
+        <item>recieve</item>
+        <item>receive</item>
+
+        <item>255</item>
+        <item>recieved</item>
+        <item>received</item>
+
+        <item>255</item>
+        <item>recieving</item>
+        <item>receiving</item>
+
+        <item>255</item>
+        <item>saidthat</item>
+        <item>said that</item>
+
+        <item>255</item>
+        <item>saidthe</item>
+        <item>said the</item>
+
+        <item>255</item>
+        <item>saturday</item>
+        <item>Saturday</item>
+
+        <item>255</item>
+        <item>seh</item>
+        <item>she</item>
+
+        <item>255</item>
+        <item>shant</item>
+        <item>shan\'t</item>
+
+        <item>255</item>
+        <item>she\'</item>
+        <item>she\'ll</item>
+
+        <item>255</item>
+        <item>shel</item>
+        <item>she\'ll</item>
+
+        <item>255</item>
+        <item>shes</item>
+        <item>she\'s</item>
+
+        <item>255</item>
+        <item>shouldent</item>
+        <item>shouldn\'t</item>
+
+        <item>255</item>
+        <item>shouldnt</item>
+        <item>shouldn\'t</item>
+
+        <item>255</item>
+        <item>shouldve</item>
+        <item>should\'ve</item>
+
+        <item>255</item>
+        <item>sunday</item>
+        <item>Sunday</item>
+
+        <item>255</item>
+        <item>tahn</item>
+        <item>than</item>
+
+        <item>255</item>
+        <item>taht</item>
+        <item>that</item>
+
+        <item>255</item>
+        <item>teh</item>
+        <item>the</item>
+
+        <item>255</item>
+        <item>thatd</item>
+        <item>that\'d</item>
+
+        <item>255</item>
+        <item>thatll</item>
+        <item>that\'ll</item>
+
+        <item>255</item>
+        <item>thats</item>
+        <item>that\'s</item>
+
+        <item>255</item>
+        <item>thatthe</item>
+        <item>that the</item>
+
+        <item>255</item>
+        <item>theres</item>
+        <item>there\'s</item>
+
+        <item>255</item>
+        <item>theyd</item>
+        <item>they\'d</item>
+
+        <item>255</item>
+        <item>theyll</item>
+        <item>they\'ll</item>
+
+        <item>255</item>
+        <item>theyre</item>
+        <item>they\'re</item>
+
+        <item>255</item>
+        <item>theyve</item>
+        <item>they\'ve</item>
+
+        <item>255</item>
+        <item>thier</item>
+        <item>their</item>
+
+        <item>255</item>
+        <item>thsi</item>
+        <item>this</item>
+
+        <item>255</item>
+        <item>thursday</item>
+        <item>Thursday</item>
+
+        <item>255</item>
+        <item>tothe</item>
+        <item>to the</item>
+
+        <item>255</item>
+        <item>tuesday</item>
+        <item>Tuesday</item>
+
+        <item>255</item>
+        <item>UnitedStates</item>
+        <item>United States</item>
+
+        <item>255</item>
+        <item>unitedstates</item>
+        <item>United States</item>
+
+        <item>255</item>
+        <item>visavis</item>
+        <item>vis-a-vis</item>
+
+        <item>255</item>
+        <item>wasnt</item>
+        <item>wasn\'t</item>
+
+        <item>255</item>
+        <item>wednesday</item>
+        <item>Wednesday</item>
+
+        <item>255</item>
+        <item>wierd</item>
+        <item>weird</item>
+
+        <item>255</item>
+        <item>wel</item>
+        <item>we\'ll</item>
+
+        <item>255</item>
+        <item>wer</item>
+        <item>we\'re</item>
+
+        <item>255</item>
+        <item>werent</item>
+        <item>weren\'t</item>
+
+        <item>255</item>
+        <item>weve</item>
+        <item>we\'ve</item>
+
+        <item>255</item>
+        <item>whatd</item>
+        <item>what\'d</item>
+
+        <item>255</item>
+        <item>whatll</item>
+        <item>what\'ll</item>
+
+        <item>255</item>
+        <item>whatm</item>
+        <item>what\'m</item>
+
+        <item>255</item>
+        <item>whatre</item>
+        <item>what\'re</item>
+
+        <item>255</item>
+        <item>whats</item>
+        <item>what\'s</item>
+
+        <item>255</item>
+        <item>whens</item>
+        <item>when\'s</item>
+
+        <item>255</item>
+        <item>whered</item>
+        <item>where\'d</item>
+
+        <item>255</item>
+        <item>wherell</item>
+        <item>where\'ll</item>
+
+        <item>255</item>
+        <item>wheres</item>
+        <item>where\'s</item>
+
+        <item>255</item>
+        <item>whod</item>
+        <item>who\'d</item>
+
+        <item>255</item>
+        <item>wholl</item>
+        <item>who\'ll</item>
+
+        <item>255</item>
+        <item>whos</item>
+        <item>who\'s</item>
+
+        <item>255</item>
+        <item>whove</item>
+        <item>who\'ve</item>
+
+        <item>255</item>
+        <item>whyd</item>
+        <item>why\'d</item>
+
+        <item>255</item>
+        <item>whyll</item>
+        <item>why\'ll</item>
+
+        <item>255</item>
+        <item>whys</item>
+        <item>why\'s</item>
+
+        <item>255</item>
+        <item>whyve</item>
+        <item>why\'ve</item>
+
+        <item>255</item>
+        <item>witha</item>
+        <item>with a</item>
+
+        <item>255</item>
+        <item>wont</item>
+        <item>won\'t</item>
+
+        <item>255</item>
+        <item>wouldnt</item>
+        <item>wouldn\'t</item>
+
+        <item>255</item>
+        <item>wouldve</item>
+        <item>would\'ve</item>
+
+        <item>255</item>
+        <item>yall</item>
+        <item>y\'all</item>
+
+        <item>255</item>
+        <item>youd</item>
+        <item>you\'d</item>
+
+        <item>255</item>
+        <item>youll</item>
+        <item>you\'ll</item>
+
+        <item>255</item>
+        <item>youre</item>
+        <item>you\'re</item>
+
+        <item>255</item>
+        <item>youve</item>
+        <item>you\'ve</item>
     </string-array>
 </resources>
diff --git a/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java b/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java
index f33a462..36ffe2d 100644
--- a/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java
+++ b/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java
@@ -57,7 +57,7 @@
 
     private static SuggestedWords.Builder getTypedSuggestions(
             Suggest suggest, KeyboardSwitcher keyboardSwitcher, WordComposer word) {
-        return suggest.getSuggestedWordBuilder(keyboardSwitcher.getKeyboardView(), word, null,
+        return suggest.getSuggestedWordBuilder(word, null,
                 keyboardSwitcher.getLatinKeyboard().getProximityInfo());
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/AutoCorrection.java b/java/src/com/android/inputmethod/latin/AutoCorrection.java
index e6ae2c5..fc97710 100644
--- a/java/src/com/android/inputmethod/latin/AutoCorrection.java
+++ b/java/src/com/android/inputmethod/latin/AutoCorrection.java
@@ -50,7 +50,7 @@
     public void updateAutoCorrectionStatus(Map<String, Dictionary> dictionaries,
             WordComposer wordComposer, ArrayList<CharSequence> suggestions, int[] sortedScores,
             CharSequence typedWord, double autoCorrectionThreshold, int correctionMode,
-            CharSequence quickFixedWord, CharSequence whitelistedWord) {
+            CharSequence whitelistedWord) {
         if (hasAutoCorrectionForWhitelistedWord(whitelistedWord)) {
             mHasAutoCorrection = true;
             mAutoCorrectionWord = whitelistedWord;
@@ -58,9 +58,6 @@
                 dictionaries, wordComposer, suggestions, typedWord, correctionMode)) {
             mHasAutoCorrection = true;
             mAutoCorrectionWord = typedWord;
-        } else if (hasAutoCorrectionForQuickFix(quickFixedWord)) {
-            mHasAutoCorrection = true;
-            mAutoCorrectionWord = quickFixedWord;
         } else if (hasAutoCorrectionForBinaryDictionary(wordComposer, suggestions, correctionMode,
                 sortedScores, typedWord, autoCorrectionThreshold)) {
             mHasAutoCorrection = true;
@@ -109,10 +106,6 @@
                 || correctionMode == Suggest.CORRECTION_FULL_BIGRAM);
     }
 
-    private static boolean hasAutoCorrectionForQuickFix(CharSequence quickFixedWord) {
-        return quickFixedWord != null;
-    }
-
     private boolean hasAutoCorrectionForBinaryDictionary(WordComposer wordComposer,
             ArrayList<CharSequence> suggestions, int correctionMode, int[] sortedScores,
             CharSequence typedWord, double autoCorrectionThreshold) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index dfb4d06..777881c 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -550,7 +550,6 @@
         if (mSettingsValues.mAutoCorrectEnabled) {
             mSuggest.setAutoCorrectionThreshold(mSettingsValues.mAutoCorrectionThreshold);
         }
-        updateAutoTextEnabled();
 
         mUserDictionary = new UserDictionary(this, localeStr);
         mSuggest.setUserDictionary(mUserDictionary);
@@ -734,7 +733,6 @@
 
         loadSettings();
         updateCorrectionMode();
-        updateAutoTextEnabled();
         updateSuggestionVisibility(mPrefs, mResources);
 
         if (mSuggest != null && mSettingsValues.mAutoCorrectEnabled) {
@@ -1673,8 +1671,7 @@
         }
         // getSuggestedWordBuilder handles gracefully a null value of prevWord
         final SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder(
-                mKeyboardSwitcher.getKeyboardView(), wordComposer, prevWord,
-                mKeyboardSwitcher.getLatinKeyboard().getProximityInfo());
+                wordComposer, prevWord, mKeyboardSwitcher.getLatinKeyboard().getProximityInfo());
 
         boolean autoCorrectionAvailable = !mInputTypeNoAutoCorrect && mSuggest.hasAutoCorrection();
         final CharSequence typedWord = wordComposer.getTypedWord();
@@ -1907,9 +1904,8 @@
 
         final CharSequence prevWord = EditingUtils.getThisWord(getCurrentInputConnection(),
                 mSettingsValues.mWordSeparators);
-        SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder(
-                mKeyboardSwitcher.getKeyboardView(), sEmptyWordComposer, prevWord,
-                mKeyboardSwitcher.getLatinKeyboard().getProximityInfo());
+        SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder(sEmptyWordComposer,
+                prevWord, mKeyboardSwitcher.getLatinKeyboard().getProximityInfo());
 
         if (builder.size() > 0) {
             // Explicitly supply an empty typed word (the no-second-arg version of
@@ -2214,18 +2210,6 @@
         }
     }
 
-    private void updateAutoTextEnabled() {
-        if (mSuggest == null) return;
-        // We want to use autotext if the settings are asking for auto corrections, and if
-        // the input language is the same as the system language (because autotext will only
-        // work in the system language so if we are entering text in a different language we
-        // do not want it on).
-        // We used to look at the "quick fixes" option instead of mAutoCorrectEnabled, but
-        // this option was redundant and confusing and therefore removed.
-        mSuggest.setQuickFixesEnabled(mSettingsValues.mAutoCorrectEnabled
-                && SubtypeSwitcher.getInstance().isSystemLanguageSameAsInputLanguage());
-    }
-
     private void updateSuggestionVisibility(final SharedPreferences prefs, final Resources res) {
         final String suggestionVisiblityStr = prefs.getString(
                 Settings.PREF_SHOW_SUGGESTIONS_SETTING,
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 16dccf8..208fd13 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -17,10 +17,8 @@
 package com.android.inputmethod.latin;
 
 import android.content.Context;
-import android.text.AutoText;
 import android.text.TextUtils;
 import android.util.Log;
-import android.view.View;
 
 import com.android.inputmethod.keyboard.ProximityInfo;
 
@@ -97,8 +95,6 @@
 
     private static final int PREF_MAX_BIGRAMS = 60;
 
-    private boolean mQuickFixesEnabled;
-
     private double mAutoCorrectionThreshold;
     private int[] mScores = new int[mPrefMaxSuggestions];
     private int[] mBigramScores = new int[PREF_MAX_BIGRAMS];
@@ -160,6 +156,7 @@
             final Locale locale) {
         mMainDict = null;
         new Thread("InitializeBinaryDictionary") {
+            @Override
             public void run() {
                 final Dictionary newMainDict = DictionaryFactory.createDictionaryFromManager(
                         context, locale, dictionaryResId);
@@ -170,11 +167,6 @@
         }.start();
     }
 
-
-    public void setQuickFixesEnabled(boolean enabled) {
-        mQuickFixesEnabled = enabled;
-    }
-
     public int getCorrectionMode() {
         return mCorrectionMode;
     }
@@ -256,14 +248,13 @@
     /**
      * Returns a object which represents suggested words that match the list of character codes
      * passed in. This object contents will be overwritten the next time this function is called.
-     * @param view a view for retrieving the context for AutoText
      * @param wordComposer contains what is currently being typed
      * @param prevWordForBigram previous word (used only for bigram)
      * @return suggested words object.
      */
-    public SuggestedWords getSuggestions(final View view, final WordComposer wordComposer,
+    public SuggestedWords getSuggestions(final WordComposer wordComposer,
             final CharSequence prevWordForBigram, final ProximityInfo proximityInfo) {
-        return getSuggestedWordBuilder(view, wordComposer, prevWordForBigram,
+        return getSuggestedWordBuilder(wordComposer, prevWordForBigram,
                 proximityInfo).build();
     }
 
@@ -295,7 +286,7 @@
     }
 
     // TODO: cleanup dictionaries looking up and suggestions building with SuggestedWords.Builder
-    public SuggestedWords.Builder getSuggestedWordBuilder(final View view,
+    public SuggestedWords.Builder getSuggestedWordBuilder(
             final WordComposer wordComposer, CharSequence prevWordForBigram,
             final ProximityInfo proximityInfo) {
         LatinImeLogger.onStartSuggestion(prevWordForBigram);
@@ -336,6 +327,7 @@
                     }
                 } else {
                     // Word entered: return only bigrams that match the first char of the typed word
+                    @SuppressWarnings("null")
                     final char currentChar = typedWord.charAt(0);
                     // TODO: Must pay attention to locale when changing case.
                     final char currentCharUpper = Character.toUpperCase(currentChar);
@@ -363,34 +355,14 @@
                 dictionary.getWords(wordComposer, this, proximityInfo);
             }
         }
-        CharSequence autoText = null;
         final String typedWordString = typedWord == null ? null : typedWord.toString();
-        if (typedWord != null) {
-            // Apply quick fix only for the typed word.
-            if (mQuickFixesEnabled) {
-                final String lowerCaseTypedWord = typedWordString.toLowerCase();
-                // Is there an AutoText (also known as Quick Fixes) correction?
-                // Capitalize as needed
-                autoText = capitalizeWord(mIsAllUpperCase, mIsFirstCharCapitalized, AutoText.get(
-                        lowerCaseTypedWord, 0, lowerCaseTypedWord.length(), view));
-                if (DBG) {
-                    if (autoText != null) {
-                        Log.d(TAG, "Auto corrected by AUTOTEXT: " + typedWord + " -> " + autoText);
-                    }
-                }
-            }
-        }
 
         CharSequence whitelistedWord = capitalizeWord(mIsAllUpperCase, mIsFirstCharCapitalized,
                 mWhiteListDictionary.getWhiteListedWord(typedWordString));
 
         mAutoCorrection.updateAutoCorrectionStatus(mUnigramDictionaries, wordComposer,
                 mSuggestions, mScores, typedWord, mAutoCorrectionThreshold, mCorrectionMode,
-                autoText, whitelistedWord);
-
-        if (autoText != null) {
-            mSuggestions.add(0, autoText);
-        }
+                whitelistedWord);
 
         if (whitelistedWord != null) {
             mSuggestions.add(0, whitelistedWord);
diff --git a/tests/src/com/android/inputmethod/latin/SuggestHelper.java b/tests/src/com/android/inputmethod/latin/SuggestHelper.java
index 48fe817..43b8cf6 100644
--- a/tests/src/com/android/inputmethod/latin/SuggestHelper.java
+++ b/tests/src/com/android/inputmethod/latin/SuggestHelper.java
@@ -49,7 +49,6 @@
     }
 
     private void init() {
-        mSuggest.setQuickFixesEnabled(false);
         mSuggest.setCorrectionMode(Suggest.CORRECTION_FULL);
         mKeyDetector.setKeyboard(mKeyboard, 0, 0);
         mKeyDetector.setProximityCorrectionEnabled(true);
@@ -94,13 +93,13 @@
 
     // TODO: This may be slow, but is OK for test so far.
     public SuggestedWords getSuggestions(CharSequence typed) {
-        return mSuggest.getSuggestions(null, createWordComposer(typed), null,
+        return mSuggest.getSuggestions(createWordComposer(typed), null,
                 mKeyboard.getProximityInfo());
     }
 
     public CharSequence getFirstSuggestion(CharSequence typed) {
         WordComposer word = createWordComposer(typed);
-        SuggestedWords suggestions = mSuggest.getSuggestions(null, word, null,
+        SuggestedWords suggestions = mSuggest.getSuggestions(word, null,
                 mKeyboard.getProximityInfo());
         // Note that suggestions.getWord(0) is the word user typed.
         return suggestions.size() > 1 ? suggestions.getWord(1) : null;
@@ -108,7 +107,7 @@
 
     public CharSequence getAutoCorrection(CharSequence typed) {
         WordComposer word = createWordComposer(typed);
-        SuggestedWords suggestions = mSuggest.getSuggestions(null, word, null,
+        SuggestedWords suggestions = mSuggest.getSuggestions(word, null,
                 mKeyboard.getProximityInfo());
         // Note that suggestions.getWord(0) is the word user typed.
         return (suggestions.size() > 1 && mSuggest.hasAutoCorrection())
@@ -117,7 +116,7 @@
 
     public int getSuggestIndex(CharSequence typed, CharSequence expected) {
         WordComposer word = createWordComposer(typed);
-        SuggestedWords suggestions = mSuggest.getSuggestions(null, word, null,
+        SuggestedWords suggestions = mSuggest.getSuggestions(word, null,
                 mKeyboard.getProximityInfo());
         // Note that suggestions.getWord(0) is the word user typed.
         for (int i = 1; i < suggestions.size(); i++) {
@@ -130,14 +129,14 @@
     private void getBigramSuggestions(CharSequence previous, CharSequence typed) {
         if (!TextUtils.isEmpty(previous) && (typed.length() > 1)) {
             WordComposer firstChar = createWordComposer(Character.toString(typed.charAt(0)));
-            mSuggest.getSuggestions(null, firstChar, previous, mKeyboard.getProximityInfo());
+            mSuggest.getSuggestions(firstChar, previous, mKeyboard.getProximityInfo());
         }
     }
 
     public CharSequence getBigramFirstSuggestion(CharSequence previous, CharSequence typed) {
         WordComposer word = createWordComposer(typed);
         getBigramSuggestions(previous, typed);
-        SuggestedWords suggestions = mSuggest.getSuggestions(null, word, previous,
+        SuggestedWords suggestions = mSuggest.getSuggestions(word, previous,
                 mKeyboard.getProximityInfo());
         return suggestions.size() > 1 ? suggestions.getWord(1) : null;
     }
@@ -145,7 +144,7 @@
     public CharSequence getBigramAutoCorrection(CharSequence previous, CharSequence typed) {
         WordComposer word = createWordComposer(typed);
         getBigramSuggestions(previous, typed);
-        SuggestedWords suggestions = mSuggest.getSuggestions(null, word, previous,
+        SuggestedWords suggestions = mSuggest.getSuggestions(word, previous,
                 mKeyboard.getProximityInfo());
         return (suggestions.size() > 1 && mSuggest.hasAutoCorrection())
                 ? suggestions.getWord(1) : null;
@@ -155,7 +154,7 @@
             CharSequence expected) {
         WordComposer word = createWordComposer(typed);
         getBigramSuggestions(previous, typed);
-        SuggestedWords suggestions = mSuggest.getSuggestions(null, word, previous,
+        SuggestedWords suggestions = mSuggest.getSuggestions(word, previous,
                 mKeyboard.getProximityInfo());
         for (int i = 1; i < suggestions.size(); i++) {
             if (TextUtils.equals(suggestions.getWord(i), expected))
diff --git a/tests/src/com/android/inputmethod/latin/UserBigramSuggestHelper.java b/tests/src/com/android/inputmethod/latin/UserBigramSuggestHelper.java
index a7d532e..7efd5d0 100644
--- a/tests/src/com/android/inputmethod/latin/UserBigramSuggestHelper.java
+++ b/tests/src/com/android/inputmethod/latin/UserBigramSuggestHelper.java
@@ -58,7 +58,7 @@
         flushUserBigrams();
         if (!TextUtils.isEmpty(previous) && !TextUtils.isEmpty(Character.toString(typed))) {
             WordComposer firstChar = createWordComposer(Character.toString(typed));
-            mSuggest.getSuggestions(null, firstChar, previous, mKeyboard.getProximityInfo());
+            mSuggest.getSuggestions(firstChar, previous, mKeyboard.getProximityInfo());
             boolean reloading = mUserBigram.reloadDictionaryIfRequired();
             if (reloading) mUserBigram.waitForDictionaryLoading();
             mUserBigram.getBigrams(firstChar, previous, mSuggest);