From 222f647137917ef602c1e1510c499a42d2e1eb47 Mon Sep 17 00:00:00 2001 From: Tom Ouyang Date: Thu, 5 Mar 2015 15:32:14 -0800 Subject: [PATCH] Restart suggestions when backspacing into a reverted word. This is required for the final corrected word to be learned, as learning only occurs when suggestions are active. Note: This is already happening when backspacing into a non-reverted word Bug: 19619907 Bug: 18465402 Change-Id: I99a1d4f0ca0d62a2cdfa24cc0833ce89391715d9 --- .../inputmethod/latin/inputlogic/InputLogic.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index 92bd60658..934da7ac7 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -1027,6 +1027,20 @@ public final class InputLogic { revertCommit(inputTransaction, inputTransaction.mSettingsValues); StatsUtils.onRevertAutoCorrect(); StatsUtils.onWordCommitUserTyped(lastComposedWord, mWordComposer.isBatchMode()); + // Restart suggestions when backspacing into a reverted word. This is required for + // the final corrected word to be learned, as learning only occurs when suggestions + // are active. + // + // Note: restartSuggestionsOnWordTouchedByCursor is already called for normal + // (non-revert) backspace handling. + if (inputTransaction.mSettingsValues.isSuggestionsEnabledPerUserSettings() + && inputTransaction.mSettingsValues.mSpacingAndPunctuations + .mCurrentLanguageHasSpaces + && !mConnection.isCursorFollowedByWordCharacter( + inputTransaction.mSettingsValues.mSpacingAndPunctuations)) { + restartSuggestionsOnWordTouchedByCursor(inputTransaction.mSettingsValues, + false /* forStartInput */, currentKeyboardScriptId); + } return; } if (mEnteredText != null && mConnection.sameAsTextBeforeCursor(mEnteredText)) {