From 359f168161074acb11fcd7a443c91fe3cc010e1d Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Fri, 15 Jan 2010 18:21:58 -0800 Subject: [PATCH] Fix for #2373295 : Capitalize suggestions when typing a capitalized word. When the user starts typing a word with a capital, whether automatically due to sentence beginning or since the user pressed shift, then all suggestions presented are capitalized as well, to be more WYSIWYG. --- src/com/android/inputmethod/latin/Suggest.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/com/android/inputmethod/latin/Suggest.java b/src/com/android/inputmethod/latin/Suggest.java index 002f23064..c3fe99635 100755 --- a/src/com/android/inputmethod/latin/Suggest.java +++ b/src/com/android/inputmethod/latin/Suggest.java @@ -26,6 +26,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import com.android.inputmethod.latin.WordComposer; + /** * This class loads a dictionary and provides a list of suggestions for a given sequence of * characters. This includes corrections and completions. @@ -55,6 +57,7 @@ public class Suggest implements Dictionary.WordCallback { private boolean mHaveCorrection; private CharSequence mOriginalWord; private String mLowerOriginalWord; + private boolean mCapitalize; private int mCorrectionMode = CORRECTION_BASIC; @@ -156,6 +159,7 @@ public class Suggest implements Dictionary.WordCallback { public List getSuggestions(View view, WordComposer wordComposer, boolean includeTypedWordIfValid) { mHaveCorrection = false; + mCapitalize = wordComposer.isCapitalized(); collectGarbage(); Arrays.fill(mPriorities, 0); @@ -300,7 +304,14 @@ public class Suggest implements Dictionary.WordCallback { StringBuilder sb = poolSize > 0 ? (StringBuilder) mStringPool.remove(poolSize - 1) : new StringBuilder(32); sb.setLength(0); - sb.append(word, offset, length); + if (mCapitalize) { + sb.append(Character.toUpperCase(word[offset])); + if (length > 1) { + sb.append(word, offset + 1, length - 1); + } + } else { + sb.append(word, offset, length); + } mSuggestions.add(pos, sb); if (mSuggestions.size() > prefMaxSuggestions) { CharSequence garbage = mSuggestions.remove(prefMaxSuggestions);