Export some more logic out of Latin IME

Change-Id: Ib264533a05e9e09347bf254789e6ab5beec92400
This commit is contained in:
Jean Chalard 2012-03-09 17:53:20 +09:00
parent df9fce5df1
commit 67af2a2415
3 changed files with 18 additions and 11 deletions

View file

@ -1831,7 +1831,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// 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();

View file

@ -83,8 +83,6 @@ public class Suggest implements Dictionary.WordCallback {
private static final boolean DBG = LatinImeLogger.sDBG;
private boolean mHasAutoCorrection;
private Dictionary mMainDict;
private ContactsDictionary mContactsDict;
private WhitelistDictionary mWhiteListDictionary;
@ -351,15 +349,16 @@ public class Suggest implements Dictionary.WordCallback {
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 @@ public class Suggest implements Dictionary.WordCallback {
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

View file

@ -91,6 +91,7 @@ public class SuggestedWords {
private boolean mIsPunctuationSuggestions;
private boolean mShouldBlockAutoCorrectionBySafetyNet;
private boolean mAllowsToBeAutoCorrected;
private boolean mHasAutoCorrection;
private List<SuggestedWordInfo> mSuggestedWordInfoList =
new ArrayList<SuggestedWordInfo>();
@ -165,6 +166,11 @@ public class SuggestedWords {
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 @@ public class SuggestedWords {
return mAllowsToBeAutoCorrected;
}
public boolean hasAutoCorrection() {
return mHasAutoCorrection;
}
@Override
public String toString() {
// Pretty-print method to help debug