API Review: InputConnection error handling is inconsistent

Make BaseInputConnection also throws IllegalArgumentException as API
defined.

Test: atest BaseInputConnectionTest#testInvalidGetTextBeforeOrAfterCursorRequest

BUG: 172313372
Change-Id: Ia99a7e0b6a652bc3995529780ba910fd370d3f5f
This commit is contained in:
Lan Wei
2020-11-03 20:56:26 +08:00
parent a401308ab7
commit 2b83476a43

View File

@@ -43,6 +43,8 @@ import android.view.KeyEvent;
import android.view.OnReceiveContentCallback;
import android.view.View;
import com.android.internal.util.Preconditions;
class ComposingText implements NoCopySpan {
}
@@ -504,7 +506,7 @@ public class BaseInputConnection implements InputConnection {
*/
@Nullable
public CharSequence getTextBeforeCursor(@IntRange(from = 0) int length, int flags) {
if (length < 0) return null;
Preconditions.checkArgumentNonnegative(length);
final Editable content = getEditable();
if (content == null) return null;
@@ -563,7 +565,7 @@ public class BaseInputConnection implements InputConnection {
*/
@Nullable
public CharSequence getTextAfterCursor(@IntRange(from = 0) int length, int flags) {
if (length < 0) return null;
Preconditions.checkArgumentNonnegative(length);
final Editable content = getEditable();
if (content == null) return null;
@@ -600,7 +602,8 @@ public class BaseInputConnection implements InputConnection {
@Nullable
public SurroundingText getSurroundingText(
@IntRange(from = 0) int beforeLength, @IntRange(from = 0) int afterLength, int flags) {
if (beforeLength < 0 || afterLength < 0) return null;
Preconditions.checkArgumentNonnegative(beforeLength);
Preconditions.checkArgumentNonnegative(afterLength);
final Editable content = getEditable();
if (content == null) return null;