diff options
author | 2015-04-13 16:30:22 -0700 | |
---|---|---|
committer | 2015-04-13 16:30:22 -0700 | |
commit | db96122787a57632136566e2448c21aa96879955 (patch) | |
tree | 050b57985a51d3dda40cc4095c95d454a6360022 | |
parent | 40f0f61bb365b5073f1d9fdb56a393c5df5ef4b0 (diff) | |
download | latinime-db96122787a57632136566e2448c21aa96879955.tar.gz latinime-db96122787a57632136566e2448c21aa96879955.tar.xz latinime-db96122787a57632136566e2448c21aa96879955.zip |
Fix the NPE on selection string on unlearnWord
Bug: 20150386
Change-Id: I2ed69aba7b1fdaba1e2ac07b8218a265dfe23e09
-rw-r--r-- | java/src/com/android/inputmethod/latin/RichInputConnection.java | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java index 49c47d775..a123d282b 100644 --- a/java/src/com/android/inputmethod/latin/RichInputConnection.java +++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java @@ -48,6 +48,7 @@ import com.android.inputmethod.latin.utils.SpannableStringUtils; import com.android.inputmethod.latin.utils.TextRange; import javax.annotation.Nonnull; +import javax.annotation.Nullable; /** * Enrichment class for InputConnection to simplify interaction and add functionality. @@ -288,6 +289,7 @@ public final class RichInputConnection implements PrivateCommandPerformer { } } + @Nullable public CharSequence getSelectedText(final int flags) { return isConnected() ? mIC.getSelectedText(flags) : null; } diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index 4bee94ad4..324ae3a19 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -1089,8 +1089,11 @@ public final class InputLogic { // If there is a selection, remove it. // We also need to unlearn the selected text. final CharSequence selection = mConnection.getSelectedText(0 /* 0 for no styles */); - unlearnWord(selection.toString(), inputTransaction.mSettingsValues, - Constants.EVENT_BACKSPACE); + if (!TextUtils.isEmpty(selection)) { + unlearnWord(selection.toString(), inputTransaction.mSettingsValues, + Constants.EVENT_BACKSPACE); + hasUnlearnedWordBeingDeleted = true; + } final int numCharsDeleted = mConnection.getExpectedSelectionEnd() - mConnection.getExpectedSelectionStart(); mConnection.setSelection(mConnection.getExpectedSelectionEnd(), |