aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2010-01-15 18:21:58 -0800
committerAmith Yamasani <yamasani@google.com>2010-01-25 15:27:43 -0800
commit359f168161074acb11fcd7a443c91fe3cc010e1d (patch)
tree9b2e01c9602868e80f51671b67ef5409992aea53 /src
parent440d1fd333e07673961416f0336dcd1789a82218 (diff)
downloadlatinime-359f168161074acb11fcd7a443c91fe3cc010e1d.tar.gz
latinime-359f168161074acb11fcd7a443c91fe3cc010e1d.tar.xz
latinime-359f168161074acb11fcd7a443c91fe3cc010e1d.zip
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.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/android/inputmethod/latin/Suggest.java13
1 files changed, 12 insertions, 1 deletions
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<CharSequence> 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);