Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec8b27fe authored by Jean Chalard's avatar Jean Chalard
Browse files

Cut out a method for clarity

Change-Id: I1dc668698a5cd840297e713a26a525f5e32d35d6
parent 0131170d
Loading
Loading
Loading
Loading
+25 −13
Original line number Diff line number Diff line
@@ -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());