From ec8b27fe49bd0a149cf7dcd36d1b0d966b03a3b5 Mon Sep 17 00:00:00 2001 From: Jean Chalard <jchalard@google.com> Date: Tue, 26 Jun 2012 19:46:43 +0900 Subject: [PATCH] Cut out a method for clarity Change-Id: I1dc668698a5cd840297e713a26a525f5e32d35d6 --- .../android/inputmethod/latin/Suggest.java | 38 ++++++++++++------- 1 file 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 cb1ec8f7cd..3289d6a23e 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()); -- GitLab