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

Commit a17dccbf authored by Satoshi Kataoka's avatar Satoshi Kataoka
Browse files

Fix possible NPE

Bug: 8457109
Change-Id: I321fbef53e20a7c36ef4bd9f544b50abe6a52be9
parent fb658d6c
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