Merge "Update the fallback logic in BaseInputConnection#getSurroundingText()" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ad97628537
@@ -608,7 +608,12 @@ public class BaseInputConnection implements InputConnection {
|
||||
Preconditions.checkArgumentNonnegative(afterLength);
|
||||
|
||||
final Editable content = getEditable();
|
||||
if (content == null) return null;
|
||||
// If {@link #getEditable()} is null or {@code mEditable} is equal to {@link #getEditable()}
|
||||
// (a.k.a, a fake editable), it means we cannot get valid content from the editable, so
|
||||
// fallback to retrieve surrounding text from other APIs.
|
||||
if (content == null || mEditable == content) {
|
||||
return InputConnection.super.getSurroundingText(beforeLength, afterLength, flags);
|
||||
}
|
||||
|
||||
int selStart = Selection.getSelectionStart(content);
|
||||
int selEnd = Selection.getSelectionEnd(content);
|
||||
|
||||
@@ -325,16 +325,16 @@ public interface InputConnection {
|
||||
|
||||
CharSequence textBeforeCursor = getTextBeforeCursor(beforeLength, flags);
|
||||
if (textBeforeCursor == null) {
|
||||
textBeforeCursor = "";
|
||||
return null;
|
||||
}
|
||||
CharSequence textAfterCursor = getTextAfterCursor(afterLength, flags);
|
||||
if (textAfterCursor == null) {
|
||||
return null;
|
||||
}
|
||||
CharSequence selectedText = getSelectedText(flags);
|
||||
if (selectedText == null) {
|
||||
selectedText = "";
|
||||
}
|
||||
CharSequence textAfterCursor = getTextAfterCursor(afterLength, flags);
|
||||
if (textAfterCursor == null) {
|
||||
textAfterCursor = "";
|
||||
}
|
||||
CharSequence surroundingText =
|
||||
TextUtils.concat(textBeforeCursor, selectedText, textAfterCursor);
|
||||
return new SurroundingText(surroundingText, textBeforeCursor.length(),
|
||||
|
||||
Reference in New Issue
Block a user