Export some more logic out of Latin IME
Change-Id: Ib264533a05e9e09347bf254789e6ab5beec92400
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index e4961d6..94aff3f 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1831,7 +1831,7 @@
// length == 1).
if (builder.size() > 1 || typedWord.length() == 1 || !builder.allowsToBeAutoCorrected()
|| mSuggestionsView.isShowingAddToDictionaryHint()) {
- boolean autoCorrectionAvailable = mSuggest.hasAutoCorrection();
+ boolean autoCorrectionAvailable = builder.hasAutoCorrection();
if (mCorrectionMode == Suggest.CORRECTION_FULL
|| mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM) {
autoCorrectionAvailable |= !builder.allowsToBeAutoCorrected();
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 4773ac5..c5b311b 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -83,8 +83,6 @@
private static final boolean DBG = LatinImeLogger.sDBG;
- private boolean mHasAutoCorrection;
-
private Dictionary mMainDict;
private ContactsDictionary mContactsDict;
private WhitelistDictionary mWhiteListDictionary;
@@ -351,15 +349,16 @@
CharSequence whitelistedWord = capitalizeWord(mIsAllUpperCase, mIsFirstCharCapitalized,
mWhiteListDictionary.getWhitelistedWord(consideredWordString));
+ final boolean hasAutoCorrection;
if (CORRECTION_FULL == correctionMode
|| CORRECTION_FULL_BIGRAM == correctionMode) {
final CharSequence autoCorrection =
AutoCorrection.computeAutoCorrectionWord(mUnigramDictionaries, wordComposer,
mSuggestions, mScores, consideredWord, mAutoCorrectionThreshold,
whitelistedWord);
- mHasAutoCorrection = (null != autoCorrection);
+ hasAutoCorrection = (null != autoCorrection);
} else {
- mHasAutoCorrection = false;
+ hasAutoCorrection = false;
}
if (whitelistedWord != null) {
@@ -402,14 +401,12 @@
scoreInfoList.add(new SuggestedWords.SuggestedWordInfo("--", false));
}
return new SuggestedWords.Builder().addWords(mSuggestions, scoreInfoList)
- .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected);
+ .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected)
+ .setHasAutoCorrection(hasAutoCorrection);
}
return new SuggestedWords.Builder().addWords(mSuggestions, null)
- .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected);
- }
-
- public boolean hasAutoCorrection() {
- return mHasAutoCorrection;
+ .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected)
+ .setHasAutoCorrection(hasAutoCorrection);
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java
index c92c720..9549c79 100644
--- a/java/src/com/android/inputmethod/latin/SuggestedWords.java
+++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java
@@ -91,6 +91,7 @@
private boolean mIsPunctuationSuggestions;
private boolean mShouldBlockAutoCorrectionBySafetyNet;
private boolean mAllowsToBeAutoCorrected;
+ private boolean mHasAutoCorrection;
private List<SuggestedWordInfo> mSuggestedWordInfoList =
new ArrayList<SuggestedWordInfo>();
@@ -165,6 +166,11 @@
return this;
}
+ public Builder setHasAutoCorrection(final boolean hasAutoCorrection) {
+ mHasAutoCorrection = hasAutoCorrection;
+ 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 Builder addTypedWordAndPreviousSuggestions(CharSequence typedWord,
@@ -210,6 +216,10 @@
return mAllowsToBeAutoCorrected;
}
+ public boolean hasAutoCorrection() {
+ return mHasAutoCorrection;
+ }
+
@Override
public String toString() {
// Pretty-print method to help debug