Offer to add any OOV typed word to the dictionary.
That includes gestures, which used not to work. Bug: 8532637 Change-Id: I04606565d7000faadf954c4a806c39d4d162a2c1
This commit is contained in:
parent
a8d2908284
commit
9310f42a36
3 changed files with 14 additions and 8 deletions
|
@ -72,6 +72,7 @@ import com.android.inputmethod.keyboard.KeyboardActionListener;
|
|||
import com.android.inputmethod.keyboard.KeyboardId;
|
||||
import com.android.inputmethod.keyboard.KeyboardSwitcher;
|
||||
import com.android.inputmethod.keyboard.MainKeyboardView;
|
||||
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
||||
import com.android.inputmethod.latin.Utils.Stats;
|
||||
import com.android.inputmethod.latin.define.ProductionFlag;
|
||||
import com.android.inputmethod.latin.suggestions.SuggestionStripView;
|
||||
|
@ -2174,8 +2175,9 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
|||
// Called from {@link SuggestionStripView} through the {@link SuggestionStripView#Listener}
|
||||
// interface
|
||||
@Override
|
||||
public void pickSuggestionManually(final int index, final String suggestion) {
|
||||
public void pickSuggestionManually(final int index, final SuggestedWordInfo suggestionInfo) {
|
||||
final SuggestedWords suggestedWords = mSuggestedWords;
|
||||
final String suggestion = suggestionInfo.mWord;
|
||||
// If this is a punctuation picked from the suggestion strip, pass it to onCodeInput
|
||||
if (suggestion.length() == 1 && isShowingPunctuationList()) {
|
||||
// Word separators are suggested before the user inputs something.
|
||||
|
@ -2241,7 +2243,8 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
|||
// AND it's in none of our current dictionaries (main, user or otherwise).
|
||||
// Please note that if mSuggest is null, it means that everything is off: suggestion
|
||||
// and correction, so we shouldn't try to show the hint
|
||||
final boolean showingAddToDictionaryHint = index == 0 && mSuggest != null
|
||||
final boolean showingAddToDictionaryHint =
|
||||
SuggestedWordInfo.KIND_TYPED == suggestionInfo.mKind && mSuggest != null
|
||||
// If the suggestion is not in the dictionary, the hint should be shown.
|
||||
&& !AutoCorrection.isValidWord(mSuggest.getUnigramDictionaries(), suggestion, true);
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ import com.android.inputmethod.latin.LatinImeLogger;
|
|||
import com.android.inputmethod.latin.R;
|
||||
import com.android.inputmethod.latin.ResourceUtils;
|
||||
import com.android.inputmethod.latin.SuggestedWords;
|
||||
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
||||
import com.android.inputmethod.latin.Utils;
|
||||
import com.android.inputmethod.latin.define.ProductionFlag;
|
||||
import com.android.inputmethod.research.ResearchLogger;
|
||||
|
@ -72,7 +73,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
|
|||
OnLongClickListener {
|
||||
public interface Listener {
|
||||
public void addWordToUserDictionary(String word);
|
||||
public void pickSuggestionManually(int index, String word);
|
||||
public void pickSuggestionManually(int index, SuggestedWordInfo word);
|
||||
}
|
||||
|
||||
// The maximum number of suggestions available. See {@link Suggest#mPrefMaxSuggestions}.
|
||||
|
@ -656,8 +657,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
|
|||
@Override
|
||||
public boolean onCustomRequest(final int requestCode) {
|
||||
final int index = requestCode;
|
||||
final String word = mSuggestedWords.getWord(index);
|
||||
mListener.pickSuggestionManually(index, word);
|
||||
final SuggestedWordInfo wordInfo = mSuggestedWords.getInfo(index);
|
||||
mListener.pickSuggestionManually(index, wordInfo);
|
||||
dismissMoreSuggestions();
|
||||
return true;
|
||||
}
|
||||
|
@ -807,8 +808,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
|
|||
if (index >= mSuggestedWords.size())
|
||||
return;
|
||||
|
||||
final String word = mSuggestedWords.getWord(index);
|
||||
mListener.pickSuggestionManually(index, word);
|
||||
final SuggestedWordInfo wordInfo = mSuggestedWords.getInfo(index);
|
||||
mListener.pickSuggestionManually(index, wordInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -36,6 +36,7 @@ import android.widget.TextView;
|
|||
|
||||
import com.android.inputmethod.keyboard.Key;
|
||||
import com.android.inputmethod.keyboard.Keyboard;
|
||||
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -255,7 +256,8 @@ public class InputTestsBase extends ServiceTestCase<LatinIME> {
|
|||
}
|
||||
|
||||
protected void pickSuggestionManually(final int index, final String suggestion) {
|
||||
mLatinIME.pickSuggestionManually(index, suggestion);
|
||||
mLatinIME.pickSuggestionManually(index, new SuggestedWordInfo(suggestion, 1,
|
||||
SuggestedWordInfo.KIND_CORRECTION, "main"));
|
||||
}
|
||||
|
||||
// Helper to avoid writing the try{}catch block each time
|
||||
|
|
Loading…
Reference in a new issue