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

Commit 67af2a24 authored by Jean Chalard's avatar Jean Chalard
Browse files

Export some more logic out of Latin IME

Change-Id: Ib264533a05e9e09347bf254789e6ab5beec92400
parent df9fce5d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1831,7 +1831,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        // length == 1).
        if (builder.size() > 1 || typedWord.length() == 1 || !builder.allowsToBeAutoCorrected()
                || mSuggestionsView.isShowingAddToDictionaryHint()) {
            boolean autoCorrectionAvailable = mSuggest.hasAutoCorrection();
            boolean autoCorrectionAvailable = builder.hasAutoCorrection();
            if (mCorrectionMode == Suggest.CORRECTION_FULL
                    || mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM) {
                autoCorrectionAvailable |= !builder.allowsToBeAutoCorrected();
+7 −10
Original line number Diff line number Diff line
@@ -83,8 +83,6 @@ public class Suggest implements Dictionary.WordCallback {

    private static final boolean DBG = LatinImeLogger.sDBG;

    private boolean mHasAutoCorrection;

    private Dictionary mMainDict;
    private ContactsDictionary mContactsDict;
    private WhitelistDictionary mWhiteListDictionary;
@@ -351,15 +349,16 @@ public class Suggest implements Dictionary.WordCallback {
        CharSequence whitelistedWord = capitalizeWord(mIsAllUpperCase, mIsFirstCharCapitalized,
                mWhiteListDictionary.getWhitelistedWord(consideredWordString));

        final boolean hasAutoCorrection;
        if (CORRECTION_FULL == correctionMode
                || CORRECTION_FULL_BIGRAM == correctionMode) {
            final CharSequence autoCorrection =
                    AutoCorrection.computeAutoCorrectionWord(mUnigramDictionaries, wordComposer,
                            mSuggestions, mScores, consideredWord, mAutoCorrectionThreshold,
                            whitelistedWord);
            mHasAutoCorrection = (null != autoCorrection);
            hasAutoCorrection = (null != autoCorrection);
        } else {
            mHasAutoCorrection = false;
            hasAutoCorrection = false;
        }

        if (whitelistedWord != null) {
@@ -402,14 +401,12 @@ public class Suggest implements Dictionary.WordCallback {
                scoreInfoList.add(new SuggestedWords.SuggestedWordInfo("--", false));
            }
            return new SuggestedWords.Builder().addWords(mSuggestions, scoreInfoList)
                    .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected);
                    .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected)
                    .setHasAutoCorrection(hasAutoCorrection);
        }
        return new SuggestedWords.Builder().addWords(mSuggestions, null)
                .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected);
    }

    public boolean hasAutoCorrection() {
        return mHasAutoCorrection;
                .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected)
                .setHasAutoCorrection(hasAutoCorrection);
    }

    @Override
+10 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ public class SuggestedWords {
        private boolean mIsPunctuationSuggestions;
        private boolean mShouldBlockAutoCorrectionBySafetyNet;
        private boolean mAllowsToBeAutoCorrected;
        private boolean mHasAutoCorrection;
        private List<SuggestedWordInfo> mSuggestedWordInfoList =
                new ArrayList<SuggestedWordInfo>();

@@ -165,6 +166,11 @@ public class SuggestedWords {
            return this;
        }

        public Builder setHasAutoCorrection(final boolean hasAutoCorrection) {
            mHasAutoCorrection = hasAutoCorrection;
            return this;
        }

        // Should get rid of the first one (what the user typed previously) from suggestions
        // and replace it with what the user currently typed.
        public Builder addTypedWordAndPreviousSuggestions(CharSequence typedWord,
@@ -210,6 +216,10 @@ public class SuggestedWords {
            return mAllowsToBeAutoCorrected;
        }

        public boolean hasAutoCorrection() {
            return mHasAutoCorrection;
        }

        @Override
        public String toString() {
            // Pretty-print method to help debug