diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin/SuggestedWords.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/SuggestedWords.java | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java index ff8945f71..bc6c52787 100644 --- a/java/src/com/android/inputmethod/latin/SuggestedWords.java +++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java @@ -20,22 +20,25 @@ import android.text.TextUtils; import android.view.inputmethod.CompletionInfo; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; public class SuggestedWords { - public static final SuggestedWords EMPTY = new SuggestedWords(null, false, false, false, null); + public static final SuggestedWords EMPTY = new SuggestedWords(null, false, false, false, false, + null); - public final List<CharSequence> mWords; + private final List<CharSequence> mWords; public final boolean mTypedWordValid; public final boolean mHasAutoCorrectionCandidate; public final boolean mIsPunctuationSuggestions; + public final boolean mShouldBlockAutoCorrectionBySafetyNet; private final List<SuggestedWordInfo> mSuggestedWordInfoList; - private boolean mShouldBlockAutoCorrectionBySafetyNet; - private SuggestedWords(List<CharSequence> words, boolean typedWordValid, + SuggestedWords(List<CharSequence> words, boolean typedWordValid, boolean hasAutoCorrectionCandidate, boolean isPunctuationSuggestions, + boolean shouldBlockAutoCorrectionBySafetyNet, List<SuggestedWordInfo> suggestedWordInfoList) { if (words != null) { mWords = words; @@ -45,8 +48,8 @@ public class SuggestedWords { mTypedWordValid = typedWordValid; mHasAutoCorrectionCandidate = hasAutoCorrectionCandidate; mIsPunctuationSuggestions = isPunctuationSuggestions; + mShouldBlockAutoCorrectionBySafetyNet = shouldBlockAutoCorrectionBySafetyNet; mSuggestedWordInfoList = suggestedWordInfoList; - mShouldBlockAutoCorrectionBySafetyNet = false; } public int size() { @@ -62,24 +65,23 @@ public class SuggestedWords { } public boolean hasAutoCorrectionWord() { - return mHasAutoCorrectionCandidate && size() > 1 && !mTypedWordValid; - } - - public boolean isPunctuationSuggestions() { - return mIsPunctuationSuggestions; - } - - public void setShouldBlockAutoCorrectionBySatefyNet() { - mShouldBlockAutoCorrectionBySafetyNet = true; - } - - public boolean shouldBlockAutoCorrectionBySafetyNet() { - return mShouldBlockAutoCorrectionBySafetyNet; + return mHasAutoCorrectionCandidate && size() > 1 && mTypedWordValid; } public boolean willAutoCorrect() { return !mTypedWordValid && mHasAutoCorrectionCandidate - && !shouldBlockAutoCorrectionBySafetyNet(); + && !mShouldBlockAutoCorrectionBySafetyNet; + } + + @Override + public String toString() { + // Pretty-print method to help debug + return "SuggestedWords.Builder:" + + " mTypedWordValid = " + mTypedWordValid + + " mHasAutoCorrectionCandidate = " + mHasAutoCorrectionCandidate + + " mIsPunctuationSuggestions = " + mIsPunctuationSuggestions + + " mShouldBlockAutoCorrectionBySafetyNet" + mShouldBlockAutoCorrectionBySafetyNet + + " mWords=" + Arrays.toString(mWords.toArray()); } public static class Builder { @@ -87,6 +89,7 @@ public class SuggestedWords { private boolean mTypedWordValid; private boolean mHasMinimalSuggestion; private boolean mIsPunctuationSuggestions; + private boolean mShouldBlockAutoCorrectionBySafetyNet; private List<SuggestedWordInfo> mSuggestedWordInfoList = new ArrayList<SuggestedWordInfo>(); @@ -151,6 +154,11 @@ public class SuggestedWords { return this; } + 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 Builder addTypedWordAndPreviousSuggestions(CharSequence typedWord, @@ -176,7 +184,8 @@ public class SuggestedWords { public SuggestedWords build() { return new SuggestedWords(mWords, mTypedWordValid, mHasMinimalSuggestion, - mIsPunctuationSuggestions, mSuggestedWordInfoList); + mIsPunctuationSuggestions, mShouldBlockAutoCorrectionBySafetyNet, + mSuggestedWordInfoList); } public int size() { @@ -187,18 +196,20 @@ public class SuggestedWords { return mWords.get(pos); } + public boolean isTypedWordValid() { + return mTypedWordValid; + } + @Override public String toString() { // Pretty-print method to help debug - final StringBuilder sb = new StringBuilder("StringBuilder: mTypedWordValid = " - + mTypedWordValid + " ; mHasMinimalSuggestion = " + mHasMinimalSuggestion - + " ; mIsPunctuationSuggestions = " + mIsPunctuationSuggestions - + " --- "); - for (CharSequence s : mWords) { - sb.append(s); - sb.append(" ; "); - } - return sb.toString(); + return "SuggestedWords.Builder:" + + " mTypedWordValid = " + mTypedWordValid + + " mHasMinimalSuggestion = " + mHasMinimalSuggestion + + " mIsPunctuationSuggestions = " + mIsPunctuationSuggestions + + " mShouldBlockAutoCorrectionBySafetyNet" + + mShouldBlockAutoCorrectionBySafetyNet + + " mWords=" + Arrays.toString(mWords.toArray()); } } |