diff options
author | 2012-03-09 19:42:20 +0900 | |
---|---|---|
committer | 2012-03-09 20:45:37 +0900 | |
commit | ed9986824e1339855376771ad29fae4de921a029 (patch) | |
tree | 98e6e52fcfa084a890deea031b35f23bbce40dc8 /java/src | |
parent | 022ef7d13b4ed2addcafc061bb6a15fc7e52a598 (diff) | |
download | latinime-ed9986824e1339855376771ad29fae4de921a029.tar.gz latinime-ed9986824e1339855376771ad29fae4de921a029.tar.xz latinime-ed9986824e1339855376771ad29fae4de921a029.zip |
Move some auto-correction logic to where it belongs
Change-Id: I897c5ec3a630a4a6bfc593906df4d3fc7b244482
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 13 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/Suggest.java | 24 |
2 files changed, 20 insertions, 17 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 5b4365902..5e1795a26 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1830,19 +1830,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // length == 1). if (builder.size() > 1 || typedWord.length() == 1 || !builder.allowsToBeAutoCorrected() || mSuggestionsView.isShowingAddToDictionaryHint()) { - boolean autoCorrectionAvailable = builder.hasAutoCorrection(); - if (mCorrectionMode == Suggest.CORRECTION_FULL - || mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM) { - autoCorrectionAvailable |= !builder.allowsToBeAutoCorrected(); - } - // Don't auto-correct words with multiple capital letter - autoCorrectionAvailable &= !mWordComposer.isMostlyCaps(); - builder.setTypedWordValid(!builder.allowsToBeAutoCorrected()).setHasMinimalSuggestion( - autoCorrectionAvailable); - if (Suggest.shouldBlockAutoCorrectionBySafetyNet(builder, mSuggest, - mSettingsValues.mAutoCorrectionThreshold)) { - builder.setShouldBlockAutoCorrectionBySafetyNet(); - } showSuggestions(builder.build(), typedWord); } else { SuggestedWords previousSuggestions = mSuggestionsView.getSuggestions(); diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index f3ba1e5a7..6230b4224 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -411,6 +411,7 @@ public class Suggest implements Dictionary.WordCallback { mSuggestions.add(0, typedWord); StringUtils.removeDupes(mSuggestions); + final SuggestedWords.Builder builder; if (DBG) { final CharSequence autoCorrectionSuggestion = mSuggestions.get(0); final int autoCorrectionSuggestionScore = mScores[0]; @@ -435,13 +436,28 @@ public class Suggest implements Dictionary.WordCallback { for (int i = mScores.length; i < mSuggestions.size(); ++i) { scoreInfoList.add(new SuggestedWords.SuggestedWordInfo("--", false)); } - return new SuggestedWords.Builder().addWords(mSuggestions, scoreInfoList) + builder = new SuggestedWords.Builder().addWords(mSuggestions, scoreInfoList) + .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected) + .setHasAutoCorrection(hasAutoCorrection); + } else { + builder = new SuggestedWords.Builder().addWords(mSuggestions, null) .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected) .setHasAutoCorrection(hasAutoCorrection); } - return new SuggestedWords.Builder().addWords(mSuggestions, null) - .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected) - .setHasAutoCorrection(hasAutoCorrection); + + boolean autoCorrectionAvailable = hasAutoCorrection; + if (correctionMode == Suggest.CORRECTION_FULL + || correctionMode == Suggest.CORRECTION_FULL_BIGRAM) { + autoCorrectionAvailable |= !allowsToBeAutoCorrected; + } + // Don't auto-correct words with multiple capital letter + autoCorrectionAvailable &= !wordComposer.isMostlyCaps(); + builder.setTypedWordValid(!allowsToBeAutoCorrected).setHasMinimalSuggestion( + autoCorrectionAvailable); + if (Suggest.shouldBlockAutoCorrectionBySafetyNet(builder, this, mAutoCorrectionThreshold)) { + builder.setShouldBlockAutoCorrectionBySafetyNet(); + } + return builder; } @Override |