aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorKen Wakasa <kwakasa@google.com>2010-08-05 16:37:47 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-08-05 16:37:47 -0700
commit6511376ff6f06aba15cdd1ab598a96924bae16ad (patch)
treec748af9a314aff78e23d57d63c84c4f901ac48b5 /java/src
parent7faf89f8015ebf4b1873b7e42c93c8149ec4316b (diff)
parent6558253160e2039c87f424bd814f402ecd31de3b (diff)
downloadlatinime-6511376ff6f06aba15cdd1ab598a96924bae16ad.tar.gz
latinime-6511376ff6f06aba15cdd1ab598a96924bae16ad.tar.xz
latinime-6511376ff6f06aba15cdd1ab598a96924bae16ad.zip
am 65582531: Fix a bug in backspace handling for the "Tap again to save"
Merge commit '6558253160e2039c87f424bd814f402ecd31de3b' into gingerbread * commit '6558253160e2039c87f424bd814f402ecd31de3b': Fix a bug in backspace handling for the "Tap again to save"
Diffstat (limited to 'java/src')
-rwxr-xr-xjava/src/com/android/inputmethod/latin/CandidateView.java6
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java23
2 files changed, 27 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index 3a199bbaf..4dc61d4a4 100755
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -333,6 +333,12 @@ public class CandidateView extends View {
mShowingAddToDictionary = true;
}
+ public boolean dismissAddToDictionaryHint() {
+ if (!mShowingAddToDictionary) return false;
+ clear();
+ return true;
+ }
+
public void scrollPrev() {
int i = 0;
final int count = mSuggestions.size();
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index b4ed80c1f..15b537f94 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -913,6 +913,9 @@ public class LatinIME extends InputMethodService
public boolean addWordToDictionary(String word) {
mUserDictionary.addWord(word, 128);
+ // Suggestion strip should be updated after the operation of adding word to the
+ // user dictionary
+ postUpdateSuggestions();
return true;
}
@@ -1058,9 +1061,20 @@ public class LatinIME extends InputMethodService
} else if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) {
ic.deleteSurroundingText(mEnteredText.length(), 0);
} else if (deleteChar) {
- sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL);
- if (mDeleteCount > DELETE_ACCELERATE_AT) {
+ if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
+ // 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);
+ if (mDeleteCount > DELETE_ACCELERATE_AT) {
+ sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL);
+ }
}
}
mJustRevertedSeparator = null;
@@ -1136,6 +1150,11 @@ public class LatinIME extends InputMethodService
mVoiceInput.incrementTextModificationInsertPunctuationCount(1);
}
+ // Should dismiss the "Tap again to save" message when handling separator
+ if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
+ postUpdateSuggestions();
+ }
+
boolean pickedDefault = false;
// Handle separator
InputConnection ic = getCurrentInputConnection();