Merge "Fix possible NPE"
commit
0b3271010f
|
@ -156,7 +156,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
private PositionalInfoForUserDictPendingAddition
|
private PositionalInfoForUserDictPendingAddition
|
||||||
mPositionalInfoForUserDictPendingAddition = null;
|
mPositionalInfoForUserDictPendingAddition = null;
|
||||||
private final WordComposer mWordComposer = new WordComposer();
|
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
|
// 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;
|
private static final int NOT_A_CURSOR_POSITION = -1;
|
||||||
|
@ -2297,25 +2297,27 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
// expect to receive non-words.
|
// expect to receive non-words.
|
||||||
if (!mSettings.getCurrent().mCorrectionEnabled) return null;
|
if (!mSettings.getCurrent().mCorrectionEnabled) return null;
|
||||||
|
|
||||||
|
final Suggest suggest = mSuggest;
|
||||||
final UserHistoryDictionary userHistoryDictionary = mUserHistoryDictionary;
|
final UserHistoryDictionary userHistoryDictionary = mUserHistoryDictionary;
|
||||||
if (userHistoryDictionary != null) {
|
if (suggest == null || userHistoryDictionary == null) {
|
||||||
final String prevWord
|
// Avoid concurrent issue
|
||||||
= mConnection.getNthPreviousWord(mSettings.getCurrent().mWordSeparators, 2);
|
return null;
|
||||||
final String secondWord;
|
|
||||||
if (mWordComposer.wasAutoCapitalized() && !mWordComposer.isMostlyCaps()) {
|
|
||||||
secondWord = suggestion.toLowerCase(mSubtypeSwitcher.getCurrentSubtypeLocale());
|
|
||||||
} else {
|
|
||||||
secondWord = suggestion;
|
|
||||||
}
|
|
||||||
// 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);
|
|
||||||
if (maxFreq == 0) return null;
|
|
||||||
userHistoryDictionary.addToUserHistory(prevWord, secondWord, maxFreq > 0);
|
|
||||||
return prevWord;
|
|
||||||
}
|
}
|
||||||
return null;
|
final String prevWord
|
||||||
|
= mConnection.getNthPreviousWord(mSettings.getCurrent().mWordSeparators, 2);
|
||||||
|
final String secondWord;
|
||||||
|
if (mWordComposer.wasAutoCapitalized() && !mWordComposer.isMostlyCaps()) {
|
||||||
|
secondWord = suggestion.toLowerCase(mSubtypeSwitcher.getCurrentSubtypeLocale());
|
||||||
|
} else {
|
||||||
|
secondWord = suggestion;
|
||||||
|
}
|
||||||
|
// 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(
|
||||||
|
suggest.getUnigramDictionaries(), suggestion);
|
||||||
|
if (maxFreq == 0) return null;
|
||||||
|
userHistoryDictionary.addToUserHistory(prevWord, secondWord, maxFreq > 0);
|
||||||
|
return prevWord;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue