Fix the NPE on selection string on unlearnWord

Bug: 20150386
Change-Id: I2ed69aba7b1fdaba1e2ac07b8218a265dfe23e09
main
Mohammadinamul Sheik 2015-04-13 16:30:22 -07:00
parent 40f0f61bb3
commit db96122787
2 changed files with 7 additions and 2 deletions

View File

@ -48,6 +48,7 @@ import com.android.inputmethod.latin.utils.SpannableStringUtils;
import com.android.inputmethod.latin.utils.TextRange; import com.android.inputmethod.latin.utils.TextRange;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/** /**
* Enrichment class for InputConnection to simplify interaction and add functionality. * 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) { public CharSequence getSelectedText(final int flags) {
return isConnected() ? mIC.getSelectedText(flags) : null; return isConnected() ? mIC.getSelectedText(flags) : null;
} }

View File

@ -1089,8 +1089,11 @@ public final class InputLogic {
// If there is a selection, remove it. // If there is a selection, remove it.
// We also need to unlearn the selected text. // We also need to unlearn the selected text.
final CharSequence selection = mConnection.getSelectedText(0 /* 0 for no styles */); final CharSequence selection = mConnection.getSelectedText(0 /* 0 for no styles */);
if (!TextUtils.isEmpty(selection)) {
unlearnWord(selection.toString(), inputTransaction.mSettingsValues, unlearnWord(selection.toString(), inputTransaction.mSettingsValues,
Constants.EVENT_BACKSPACE); Constants.EVENT_BACKSPACE);
hasUnlearnedWordBeingDeleted = true;
}
final int numCharsDeleted = mConnection.getExpectedSelectionEnd() final int numCharsDeleted = mConnection.getExpectedSelectionEnd()
- mConnection.getExpectedSelectionStart(); - mConnection.getExpectedSelectionStart();
mConnection.setSelection(mConnection.getExpectedSelectionEnd(), mConnection.setSelection(mConnection.getExpectedSelectionEnd(),