diff options
author | 2012-06-26 19:46:43 +0900 | |
---|---|---|
committer | 2012-06-26 19:49:01 +0900 | |
commit | ec8b27fe49bd0a149cf7dcd36d1b0d966b03a3b5 (patch) | |
tree | 630daf9148c15d4114c18d109aef4e79285dc474 /java/src | |
parent | 0131170da9ec8c36880b0c31bd066974150f341d (diff) | |
download | latinime-ec8b27fe49bd0a149cf7dcd36d1b0d966b03a3b5.tar.gz latinime-ec8b27fe49bd0a149cf7dcd36d1b0d966b03a3b5.tar.xz latinime-ec8b27fe49bd0a149cf7dcd36d1b0d966b03a3b5.zip |
Cut out a method for clarity
Change-Id: I1dc668698a5cd840297e713a26a525f5e32d35d6
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/Suggest.java | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index cb1ec8f7c..3289d6a23 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -427,26 +427,38 @@ public class Suggest { return true; } - final StringBuilder sb = new StringBuilder(getApproxMaxWordLength()); - if (mIsAllUpperCase) { - sb.append(word.toString().toUpperCase(mLocale)); - } else if (mIsFirstCharCapitalized) { - sb.append(StringUtils.toTitleCase(word.toString(), mLocale)); - } else { - sb.append(word); - } - for (int i = mTrailingSingleQuotesCount - 1; i >= 0; --i) { - sb.appendCodePoint(Keyboard.CODE_SINGLE_QUOTE); - } - suggestions.add(pos, new SuggestedWordInfo(sb, score, wordInfo.mKind)); + final SuggestedWordInfo transformedWordInfo = getTransformedSuggestedWordInfo(wordInfo, + mLocale, mIsAllUpperCase, mIsFirstCharCapitalized, mTrailingSingleQuotesCount); + suggestions.add(pos, transformedWordInfo); if (suggestions.size() > prefMaxSuggestions) { suggestions.remove(prefMaxSuggestions); } else { - LatinImeLogger.onAddSuggestedWord(sb.toString(), dicTypeId, dataTypeForLog); + LatinImeLogger.onAddSuggestedWord(transformedWordInfo.mWord.toString(), dicTypeId, + dataTypeForLog); } return true; } + private static SuggestedWordInfo getTransformedSuggestedWordInfo( + final SuggestedWordInfo wordInfo, final Locale locale, final boolean isAllUpperCase, + final boolean isFirstCharCapitalized, final int trailingSingleQuotesCount) { + if (!isFirstCharCapitalized && !isAllUpperCase && 0 == trailingSingleQuotesCount) { + return wordInfo; + } + final StringBuilder sb = new StringBuilder(getApproxMaxWordLength()); + if (isAllUpperCase) { + sb.append(wordInfo.mWord.toString().toUpperCase(locale)); + } else if (isFirstCharCapitalized) { + sb.append(StringUtils.toTitleCase(wordInfo.mWord.toString(), locale)); + } else { + sb.append(wordInfo.mWord); + } + for (int i = trailingSingleQuotesCount - 1; i >= 0; --i) { + sb.appendCodePoint(Keyboard.CODE_SINGLE_QUOTE); + } + return new SuggestedWordInfo(sb, wordInfo.mScore, wordInfo.mKind); + } + public void close() { final HashSet<Dictionary> dictionaries = new HashSet<Dictionary>(); dictionaries.addAll(mDictionaries.values()); |