Capitalization for "Quick Fixes" words doesn't work
bug: 3151706 Change-Id: I7770a1d26edb1ea72ee93396181953a724dcc4bfmain
parent
b325e811b6
commit
200ece7907
|
@ -337,8 +337,25 @@ public class Suggest implements Dictionary.WordCallback {
|
||||||
String suggestedWord = mSuggestions.get(i).toString().toLowerCase();
|
String suggestedWord = mSuggestions.get(i).toString().toLowerCase();
|
||||||
CharSequence autoText =
|
CharSequence autoText =
|
||||||
AutoText.get(suggestedWord, 0, suggestedWord.length(), view);
|
AutoText.get(suggestedWord, 0, suggestedWord.length(), view);
|
||||||
// Is there an AutoText correction?
|
// Is there an AutoText (also known as Quick Fixes) correction?
|
||||||
boolean canAdd = autoText != null;
|
boolean canAdd = autoText != null;
|
||||||
|
// Capitalize as needed
|
||||||
|
final int autoTextLength = autoText != null ? autoText.length() : 0;
|
||||||
|
if (autoTextLength > 0 && (mIsAllUpperCase || mIsFirstCharCapitalized)) {
|
||||||
|
int poolSize = mStringPool.size();
|
||||||
|
StringBuilder sb = poolSize > 0 ? (StringBuilder) mStringPool.remove(
|
||||||
|
poolSize - 1) : new StringBuilder(getApproxMaxWordLength());
|
||||||
|
sb.setLength(0);
|
||||||
|
if (mIsAllUpperCase) {
|
||||||
|
sb.append(autoText.toString().toUpperCase());
|
||||||
|
} else if (mIsFirstCharCapitalized) {
|
||||||
|
sb.append(Character.toUpperCase(autoText.charAt(0)));
|
||||||
|
if (autoTextLength > 1) {
|
||||||
|
sb.append(autoText.subSequence(1, autoTextLength));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
autoText = sb.toString();
|
||||||
|
}
|
||||||
// Is that correction already the current prediction (or original word)?
|
// Is that correction already the current prediction (or original word)?
|
||||||
canAdd &= !TextUtils.equals(autoText, mSuggestions.get(i));
|
canAdd &= !TextUtils.equals(autoText, mSuggestions.get(i));
|
||||||
// Is that correction already the next predicted word?
|
// Is that correction already the next predicted word?
|
||||||
|
@ -461,8 +478,7 @@ public class Suggest implements Dictionary.WordCallback {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.arraycopy(priorities, pos, priorities, pos + 1,
|
System.arraycopy(priorities, pos, priorities, pos + 1, prefMaxSuggestions - pos - 1);
|
||||||
prefMaxSuggestions - pos - 1);
|
|
||||||
priorities[pos] = freq;
|
priorities[pos] = freq;
|
||||||
int poolSize = mStringPool.size();
|
int poolSize = mStringPool.size();
|
||||||
StringBuilder sb = poolSize > 0 ? (StringBuilder) mStringPool.remove(poolSize - 1)
|
StringBuilder sb = poolSize > 0 ? (StringBuilder) mStringPool.remove(poolSize - 1)
|
||||||
|
|
Loading…
Reference in New Issue