aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-03-09 19:42:20 +0900
committerJean Chalard <jchalard@google.com>2012-03-09 20:45:37 +0900
commited9986824e1339855376771ad29fae4de921a029 (patch)
tree98e6e52fcfa084a890deea031b35f23bbce40dc8 /java/src
parent022ef7d13b4ed2addcafc061bb6a15fc7e52a598 (diff)
downloadlatinime-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.java13
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java24
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