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

Commit 0c05902e authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Don't auto-add when in suggest-only mode. Bug: 2521344

Also don't highlight quickfixes when in suggest-only mode
In general, reduce the situations where words are auto-added. It was
too eagerly adding even words that were in the dictionary.
parent 4ff60be1
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1438,7 +1438,7 @@ public class LatinIME extends InputMethodService

        ((LatinKeyboard) mInputView.getKeyboard()).setPreferredLetters(nextLettersFrequencies);

        boolean correctionAvailable = mSuggest.hasMinimalCorrection();
        boolean correctionAvailable = !mInputTypeNoAutoCorrect && mSuggest.hasMinimalCorrection();
        //|| mCorrectionMode == mSuggest.CORRECTION_FULL;
        CharSequence typedWord = mWord.getTypedWord();
        // If we're in basic correct
@@ -1519,7 +1519,9 @@ public class LatinIME extends InputMethodService
        mJustAccepted = true;
        pickSuggestion(suggestion);
        // Add the word to the auto dictionary if it's not a known word
        if (index == 0) {
            checkAddToDictionary(suggestion, AutoDictionary.FREQUENCY_FOR_PICKED);
        }
        TextEntryState.acceptedSuggestion(mComposing.toString(), suggestion);
        // Follow it with a space
        if (mAutoSpace) {
@@ -1565,8 +1567,13 @@ public class LatinIME extends InputMethodService
    }

    private void checkAddToDictionary(CharSequence suggestion, int frequencyDelta) {
        // Only auto-add to dictionary if auto-correct is ON. Otherwise we'll be
        // adding words in situations where the user or application really didn't
        // want corrections enabled or learned.
        if (!(mCorrectionMode == Suggest.CORRECTION_FULL)) return;
        if (mAutoDictionary.isValidWord(suggestion)
                || !mSuggest.isValidWord(suggestion.toString().toLowerCase())) {
                || (!mSuggest.isValidWord(suggestion.toString())
                    && !mSuggest.isValidWord(suggestion.toString().toLowerCase()))) {
            mAutoDictionary.addWord(suggestion.toString(), frequencyDelta);
        }
    }
+4 −5
Original line number Diff line number Diff line
@@ -346,11 +346,10 @@ public class Suggest implements Dictionary.WordCallback {
        if (word == null || word.length() == 0) {
            return false;
        }
        return (mCorrectionMode == CORRECTION_FULL && mMainDict.isValidWord(word)) 
                || (mCorrectionMode > CORRECTION_NONE && 
                    ((mUserDictionary != null && mUserDictionary.isValidWord(word)))
        return mMainDict.isValidWord(word)
                || (mUserDictionary != null && mUserDictionary.isValidWord(word))
                || (mAutoDictionary != null && mAutoDictionary.isValidWord(word))
                     || (mContactsDictionary != null && mContactsDictionary.isValidWord(word)));
                || (mContactsDictionary != null && mContactsDictionary.isValidWord(word));
    }
    
    private void collectGarbage() {