diff options
Diffstat (limited to 'java')
5 files changed, 709 insertions, 62 deletions
diff --git a/java/res/values-en/whitelist.xml b/java/res/values-en/whitelist.xml index 4078b4db4..f929cec23 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 f33a46277..36ffe2dce 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 @@ public class RecorrectionSuggestionEntries { 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 e6ae2c5c7..fc9771065 100644 --- a/java/src/com/android/inputmethod/latin/AutoCorrection.java +++ b/java/src/com/android/inputmethod/latin/AutoCorrection.java @@ -50,7 +50,7 @@ public class AutoCorrection { 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 @@ public class AutoCorrection { 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 @@ public class AutoCorrection { || 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 645a8bb1e..83b79f74c 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -550,7 +550,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (mSettingsValues.mAutoCorrectEnabled) { mSuggest.setAutoCorrectionThreshold(mSettingsValues.mAutoCorrectionThreshold); } - updateAutoTextEnabled(); mUserDictionary = new UserDictionary(this, localeStr); mSuggest.setUserDictionary(mUserDictionary); @@ -734,7 +733,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar loadSettings(); updateCorrectionMode(); - updateAutoTextEnabled(); updateSuggestionVisibility(mPrefs, mResources); if (mSuggest != null && mSettingsValues.mAutoCorrectEnabled) { @@ -1672,8 +1670,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } // 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(); @@ -1906,9 +1903,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar 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 @@ -2213,18 +2209,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } } - 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 16dccf824..208fd13ec 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 @@ public class Suggest implements Dictionary.WordCallback { 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 @@ public class Suggest implements Dictionary.WordCallback { final Locale locale) { mMainDict = null; new Thread("InitializeBinaryDictionary") { + @Override public void run() { final Dictionary newMainDict = DictionaryFactory.createDictionaryFromManager( context, locale, dictionaryResId); @@ -170,11 +167,6 @@ public class Suggest implements Dictionary.WordCallback { }.start(); } - - public void setQuickFixesEnabled(boolean enabled) { - mQuickFixesEnabled = enabled; - } - public int getCorrectionMode() { return mCorrectionMode; } @@ -256,14 +248,13 @@ public class Suggest implements Dictionary.WordCallback { /** * 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 @@ public class Suggest implements Dictionary.WordCallback { } // 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 @@ public class Suggest implements Dictionary.WordCallback { } } 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 @@ public class Suggest implements Dictionary.WordCallback { 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); |