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.main
parent
4ff60be170
commit
0c05902e33
|
@ -1438,7 +1438,7 @@ public class LatinIME extends InputMethodService
|
||||||
|
|
||||||
((LatinKeyboard) mInputView.getKeyboard()).setPreferredLetters(nextLettersFrequencies);
|
((LatinKeyboard) mInputView.getKeyboard()).setPreferredLetters(nextLettersFrequencies);
|
||||||
|
|
||||||
boolean correctionAvailable = mSuggest.hasMinimalCorrection();
|
boolean correctionAvailable = !mInputTypeNoAutoCorrect && mSuggest.hasMinimalCorrection();
|
||||||
//|| mCorrectionMode == mSuggest.CORRECTION_FULL;
|
//|| mCorrectionMode == mSuggest.CORRECTION_FULL;
|
||||||
CharSequence typedWord = mWord.getTypedWord();
|
CharSequence typedWord = mWord.getTypedWord();
|
||||||
// If we're in basic correct
|
// If we're in basic correct
|
||||||
|
@ -1519,7 +1519,9 @@ public class LatinIME extends InputMethodService
|
||||||
mJustAccepted = true;
|
mJustAccepted = true;
|
||||||
pickSuggestion(suggestion);
|
pickSuggestion(suggestion);
|
||||||
// Add the word to the auto dictionary if it's not a known word
|
// Add the word to the auto dictionary if it's not a known word
|
||||||
|
if (index == 0) {
|
||||||
checkAddToDictionary(suggestion, AutoDictionary.FREQUENCY_FOR_PICKED);
|
checkAddToDictionary(suggestion, AutoDictionary.FREQUENCY_FOR_PICKED);
|
||||||
|
}
|
||||||
TextEntryState.acceptedSuggestion(mComposing.toString(), suggestion);
|
TextEntryState.acceptedSuggestion(mComposing.toString(), suggestion);
|
||||||
// Follow it with a space
|
// Follow it with a space
|
||||||
if (mAutoSpace) {
|
if (mAutoSpace) {
|
||||||
|
@ -1565,8 +1567,13 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkAddToDictionary(CharSequence suggestion, int frequencyDelta) {
|
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)
|
if (mAutoDictionary.isValidWord(suggestion)
|
||||||
|| !mSuggest.isValidWord(suggestion.toString().toLowerCase())) {
|
|| (!mSuggest.isValidWord(suggestion.toString())
|
||||||
|
&& !mSuggest.isValidWord(suggestion.toString().toLowerCase()))) {
|
||||||
mAutoDictionary.addWord(suggestion.toString(), frequencyDelta);
|
mAutoDictionary.addWord(suggestion.toString(), frequencyDelta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -346,11 +346,10 @@ public class Suggest implements Dictionary.WordCallback {
|
||||||
if (word == null || word.length() == 0) {
|
if (word == null || word.length() == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return (mCorrectionMode == CORRECTION_FULL && mMainDict.isValidWord(word))
|
return mMainDict.isValidWord(word)
|
||||||
|| (mCorrectionMode > CORRECTION_NONE &&
|
|| (mUserDictionary != null && mUserDictionary.isValidWord(word))
|
||||||
((mUserDictionary != null && mUserDictionary.isValidWord(word)))
|
|
||||||
|| (mAutoDictionary != null && mAutoDictionary.isValidWord(word))
|
|| (mAutoDictionary != null && mAutoDictionary.isValidWord(word))
|
||||||
|| (mContactsDictionary != null && mContactsDictionary.isValidWord(word)));
|
|| (mContactsDictionary != null && mContactsDictionary.isValidWord(word));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void collectGarbage() {
|
private void collectGarbage() {
|
||||||
|
|
Loading…
Reference in New Issue