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

Commit 0b327101 authored by Satoshi Kataoka's avatar Satoshi Kataoka Committed by Android (Google) Code Review
Browse files

Merge "Fix possible NPE"

parents d17b69ec a17dccbf
Loading
Loading
Loading
Loading
+21 −19
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
    private PositionalInfoForUserDictPendingAddition
            mPositionalInfoForUserDictPendingAddition = null;
    private final WordComposer mWordComposer = new WordComposer();
    private RichInputConnection mConnection = new RichInputConnection(this);
    private final RichInputConnection mConnection = new RichInputConnection(this);

    // Keep track of the last selection range to decide if we need to show word alternatives
    private static final int NOT_A_CURSOR_POSITION = -1;
@@ -2297,8 +2297,12 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
        // expect to receive non-words.
        if (!mSettings.getCurrent().mCorrectionEnabled) return null;

        final Suggest suggest = mSuggest;
        final UserHistoryDictionary userHistoryDictionary = mUserHistoryDictionary;
        if (userHistoryDictionary != null) {
        if (suggest == null || userHistoryDictionary == null) {
            // Avoid concurrent issue
            return null;
        }
        final String prevWord
                = mConnection.getNthPreviousWord(mSettings.getCurrent().mWordSeparators, 2);
        final String secondWord;
@@ -2310,13 +2314,11 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
        // We demote unrecognized words (frequency < 0, below) by specifying them as "invalid".
        // We don't add words with 0-frequency (assuming they would be profanity etc.).
        final int maxFreq = AutoCorrection.getMaxFrequency(
                    mSuggest.getUnigramDictionaries(), suggestion);
                suggest.getUnigramDictionaries(), suggestion);
        if (maxFreq == 0) return null;
        userHistoryDictionary.addToUserHistory(prevWord, secondWord, maxFreq > 0);
        return prevWord;
    }
        return null;
    }

    /**
     * Check if the cursor is actually at the end of a word. If so, restart suggestions on this