aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohammadinamul Sheik <inamul@google.com>2015-04-13 16:30:22 -0700
committerMohammadinamul Sheik <inamul@google.com>2015-04-13 16:30:22 -0700
commitdb96122787a57632136566e2448c21aa96879955 (patch)
tree050b57985a51d3dda40cc4095c95d454a6360022
parent40f0f61bb365b5073f1d9fdb56a393c5df5ef4b0 (diff)
downloadlatinime-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.java2
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java7
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(),