aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java12
-rw-r--r--java/src/com/android/inputmethod/latin/SettingsValues.java6
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java18
-rw-r--r--java/src/com/android/inputmethod/latin/SuggestedWords.java29
4 files changed, 39 insertions, 26 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index f41972e8b..ec408792c 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -930,7 +930,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
false /* typedWordValid */,
false /* hasMinimalSuggestion */,
false /* allowsToBeAutoCorrected */,
- false /* isPunctuationSuggestions */);
+ false /* isPunctuationSuggestions */,
+ false /* shouldBlockAutoCorrectionBySafetyNet */);
// When in fullscreen mode, show completions generated by the application
final SuggestedWords words = builder.build();
final boolean isAutoCorrection = false;
@@ -1769,6 +1770,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// getSuggestedWordBuilder handles gracefully a null value of prevWord
final SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder(mWordComposer,
prevWord, mKeyboardSwitcher.getKeyboard().getProximityInfo(), mCorrectionMode);
+ final SuggestedWords suggestions = builder.build();
// Basically, we update the suggestion strip only when suggestion count > 1. However,
// there is an exception: We update the suggestion strip whenever typed word's length
@@ -1776,9 +1778,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// in most cases, suggestion count is 1 when typed word's length is 1, but we do always
// need to clear the previous state when the user starts typing a word (i.e. typed word's
// length == 1).
- if (builder.size() > 1 || typedWord.length() == 1 || !builder.allowsToBeAutoCorrected()
+ if (suggestions.size() > 1 || typedWord.length() == 1
+ || !suggestions.mAllowsToBeAutoCorrected
|| mSuggestionsView.isShowingAddToDictionaryHint()) {
- showSuggestions(builder.build(), typedWord);
+ showSuggestions(suggestions, typedWord);
} else {
SuggestedWords previousSuggestions = mSuggestionsView.getSuggestions();
if (previousSuggestions == mSettingsValues.mSuggestPuncList) {
@@ -1792,7 +1795,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
false /* typedWordValid */,
false /* hasMinimalSuggestion */,
false /* allowsToBeAutoCorrected */,
- false /* isPunctuationSuggestions */);
+ false /* isPunctuationSuggestions */,
+ false /* shouldBlockAutoCorrectionBySafetyNet */);
showSuggestions(obsoleteSuggestionsBuilder.build(), typedWord);
}
}
diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index 0a4aea140..7ae95326b 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -187,7 +187,8 @@ public class SettingsValues {
false /* typedWordValid */,
false /* hasMinimalSuggestion */,
false /* allowsToBeAutoCorrected */,
- true /* isPunctuationSuggestions */);
+ true /* isPunctuationSuggestions */,
+ false /* shouldBlockAutoCorrectionBySafetyNet */);
return builder.build();
}
@@ -209,7 +210,8 @@ public class SettingsValues {
false /* typedWordValid */,
false /* hasMinimalSuggestion */,
false /* allowsToBeAutoCorrected */,
- true /* isPunctuationSuggestions */);
+ true /* isPunctuationSuggestions */,
+ false /* shouldBlockAutoCorrectionBySafetyNet */);
return builder.build();
}
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 28d3b4437..b02c9738e 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -274,7 +274,8 @@ public class Suggest implements Dictionary.WordCallback {
false /* typedWordValid */,
false /* hasMinimalSuggestion */,
false /* allowsToBeAutoCorrected */,
- false /* isPunctuationSuggestions */);
+ false /* isPunctuationSuggestions */,
+ false /* shouldBlockAutoCorrectionBySafetyNet */);
}
// TODO: cleanup dictionaries looking up and suggestions building with SuggestedWords.Builder
@@ -437,15 +438,20 @@ public class Suggest implements Dictionary.WordCallback {
}
// Don't auto-correct words with multiple capital letter
autoCorrectionAvailable &= !wordComposer.isMostlyCaps();
+ final boolean shouldBlockAutoCorrectionBySatefyNet;
+ if (allowsToBeAutoCorrected && scoreInfoList.size() > 1 && mAutoCorrectionThreshold > 0
+ && Suggest.shouldBlockAutoCorrectionBySafetyNet(typedWord,
+ scoreInfoList.get(1).mWord)) {
+ shouldBlockAutoCorrectionBySatefyNet = true;
+ } else {
+ shouldBlockAutoCorrectionBySatefyNet = false;
+ }
builder = new SuggestedWords.Builder(scoreInfoList,
!allowsToBeAutoCorrected /* typedWordValid */,
autoCorrectionAvailable /* hasMinimalSuggestion */,
allowsToBeAutoCorrected /* allowsToBeAutoCorrected */,
- false /* isPunctuationSuggestions */);
- if (allowsToBeAutoCorrected && builder.size() > 1 && mAutoCorrectionThreshold > 0
- && Suggest.shouldBlockAutoCorrectionBySafetyNet(typedWord, builder.getWord(1))) {
- builder.setShouldBlockAutoCorrectionBySafetyNet();
- }
+ false /* isPunctuationSuggestions */,
+ shouldBlockAutoCorrectionBySatefyNet);
return builder;
}
diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java
index 144e67482..03ff5de7b 100644
--- a/java/src/com/android/inputmethod/latin/SuggestedWords.java
+++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java
@@ -25,21 +25,25 @@ import java.util.List;
public class SuggestedWords {
public static final SuggestedWords EMPTY = new SuggestedWords(false, false, false, false,
- Collections.<SuggestedWordInfo>emptyList());
+ false, Collections.<SuggestedWordInfo>emptyList());
public final boolean mTypedWordValid;
public final boolean mHasAutoCorrectionCandidate;
public final boolean mIsPunctuationSuggestions;
+ public final boolean mAllowsToBeAutoCorrected;
private final List<SuggestedWordInfo> mSuggestedWordInfoList;
- SuggestedWords(boolean typedWordValid,
- boolean hasAutoCorrectionCandidate, boolean isPunctuationSuggestions,
- boolean shouldBlockAutoCorrectionBySafetyNet,
- List<SuggestedWordInfo> suggestedWordInfoList) {
+ SuggestedWords(final boolean typedWordValid,
+ final boolean hasAutoCorrectionCandidate,
+ final boolean isPunctuationSuggestions,
+ final boolean shouldBlockAutoCorrectionBySafetyNet,
+ final boolean allowsToBeAutoCorrected,
+ final List<SuggestedWordInfo> suggestedWordInfoList) {
mTypedWordValid = typedWordValid;
mHasAutoCorrectionCandidate = hasAutoCorrectionCandidate
&& !shouldBlockAutoCorrectionBySafetyNet;
mIsPunctuationSuggestions = isPunctuationSuggestions;
+ mAllowsToBeAutoCorrected = allowsToBeAutoCorrected;
mSuggestedWordInfoList = suggestedWordInfoList;
}
@@ -76,7 +80,7 @@ public class SuggestedWords {
private final boolean mTypedWordValid;
private final boolean mHasMinimalSuggestion;
private final boolean mIsPunctuationSuggestions;
- private boolean mShouldBlockAutoCorrectionBySafetyNet;
+ private final boolean mShouldBlockAutoCorrectionBySafetyNet;
private final boolean mAllowsToBeAutoCorrected;
private final List<SuggestedWordInfo> mSuggestedWordInfoList;
@@ -84,12 +88,14 @@ public class SuggestedWords {
final boolean typedWordValid,
final boolean hasMinimalSuggestion,
final boolean allowsToBeAutoCorrected,
- final boolean isPunctuationSuggestions) {
+ final boolean isPunctuationSuggestions,
+ final boolean shouldBlockAutoCorrectionBySafetyNet) {
mSuggestedWordInfoList = suggestedWordInfoList;
mTypedWordValid = typedWordValid;
mHasMinimalSuggestion = hasMinimalSuggestion;
mAllowsToBeAutoCorrected = allowsToBeAutoCorrected;
mIsPunctuationSuggestions = isPunctuationSuggestions;
+ mShouldBlockAutoCorrectionBySafetyNet = shouldBlockAutoCorrectionBySafetyNet;
}
public static ArrayList<SuggestedWordInfo> getFromCharSequenceList(
@@ -110,11 +116,6 @@ public class SuggestedWords {
return result;
}
- public Builder setShouldBlockAutoCorrectionBySafetyNet() {
- mShouldBlockAutoCorrectionBySafetyNet = true;
- return this;
- }
-
// Should get rid of the first one (what the user typed previously) from suggestions
// and replace it with what the user currently typed.
public static ArrayList<SuggestedWordInfo> getTypedWordAndPreviousSuggestions(
@@ -138,7 +139,7 @@ public class SuggestedWords {
public SuggestedWords build() {
return new SuggestedWords(mTypedWordValid, mHasMinimalSuggestion,
mIsPunctuationSuggestions, mShouldBlockAutoCorrectionBySafetyNet,
- mSuggestedWordInfoList);
+ mAllowsToBeAutoCorrected, mSuggestedWordInfoList);
}
public int size() {
@@ -166,7 +167,7 @@ public class SuggestedWords {
}
public static class SuggestedWordInfo {
- private final CharSequence mWord;
+ public final CharSequence mWord;
private final CharSequence mDebugString;
private final boolean mPreviousSuggestedWord;