am b608a93c: am 6511376f: am 65582531: Fix a bug in backspace handling for the "Tap again to save"

Merge commit 'b608a93c0f3087b191c88cd75665886b7c52015e'

* commit 'b608a93c0f3087b191c88cd75665886b7c52015e':
  Fix a bug in backspace handling for the "Tap again to save"
main
Ken Wakasa 2010-08-05 16:44:39 -07:00 committed by Android Git Automerger
commit 6be8e35235
2 changed files with 27 additions and 2 deletions

View File

@ -341,6 +341,12 @@ public class CandidateView extends View {
mShowingAddToDictionary = true; mShowingAddToDictionary = true;
} }
public boolean dismissAddToDictionaryHint() {
if (!mShowingAddToDictionary) return false;
clear();
return true;
}
public void scrollPrev() { public void scrollPrev() {
int i = 0; int i = 0;
final int count = Math.min(mSuggestions.size(), MAX_SUGGESTIONS); final int count = Math.min(mSuggestions.size(), MAX_SUGGESTIONS);

View File

@ -1060,6 +1060,9 @@ public class LatinIME extends InputMethodService
public boolean addWordToDictionary(String word) { public boolean addWordToDictionary(String word) {
mUserDictionary.addWord(word, 128); mUserDictionary.addWord(word, 128);
// Suggestion strip should be updated after the operation of adding word to the
// user dictionary
postUpdateSuggestions();
return true; return true;
} }
@ -1211,9 +1214,20 @@ public class LatinIME extends InputMethodService
} else if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) { } else if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) {
ic.deleteSurroundingText(mEnteredText.length(), 0); ic.deleteSurroundingText(mEnteredText.length(), 0);
} else if (deleteChar) { } else if (deleteChar) {
sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL); if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
if (mDeleteCount > DELETE_ACCELERATE_AT) { // Go back to the suggestion mode if the user canceled the
// "Tap again to save".
// NOTE: In gerenal, we don't revert the word when backspacing
// from a manual suggestion pick. We deliberately chose a
// different behavior only in the case of picking the first
// suggestion (typed word). It's intentional to have made this
// inconsistent with backspacing after selecting other suggestions.
revertLastWord(deleteChar);
} else {
sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL); sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL);
if (mDeleteCount > DELETE_ACCELERATE_AT) {
sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL);
}
} }
} }
mJustRevertedSeparator = null; mJustRevertedSeparator = null;
@ -1305,6 +1319,11 @@ public class LatinIME extends InputMethodService
mVoiceInput.incrementTextModificationInsertPunctuationCount(1); mVoiceInput.incrementTextModificationInsertPunctuationCount(1);
} }
// Should dismiss the "Tap again to save" message when handling separator
if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
postUpdateSuggestions();
}
boolean pickedDefault = false; boolean pickedDefault = false;
// Handle separator // Handle separator
InputConnection ic = getCurrentInputConnection(); InputConnection ic = getCurrentInputConnection();