Fix a bug with some text fields
Not sure when this happens exactly, but it is possible that
InputConnection#getTextBeforeCursor returns null. This
happens for example upon rotating the screen with the
composing field empty in Gmail.
In this case, StringBuilder#append will convert the null
pointer into the string "null", which is sure better than a
crash, but can have a number of bad side-effects, like
auto-caps not working.
Bug: 7533034
Change-Id: Ia1cfab432c13a12ff1c2f013c59bac05a587f553
diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java
index 2144136..75b67bf 100644
--- a/java/src/com/android/inputmethod/latin/RichInputConnection.java
+++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java
@@ -145,7 +145,8 @@
mCurrentCursorPosition = newCursorPosition;
mComposingText.setLength(0);
mCommittedTextBeforeComposingText.setLength(0);
- mCommittedTextBeforeComposingText.append(getTextBeforeCursor(DEFAULT_TEXT_CACHE_SIZE, 0));
+ final CharSequence textBeforeCursor = getTextBeforeCursor(DEFAULT_TEXT_CACHE_SIZE, 0);
+ if (null != textBeforeCursor) mCommittedTextBeforeComposingText.append(textBeforeCursor);
mCharAfterTheCursor = getTextAfterCursor(1, 0);
if (null != mIC) {
mIC.finishComposingText();