From 2b83476a43796d47d3575b30e6ef7cec440e0506 Mon Sep 17 00:00:00 2001 From: Lan Wei Date: Tue, 3 Nov 2020 20:56:26 +0800 Subject: [PATCH] API Review: InputConnection error handling is inconsistent Make BaseInputConnection also throws IllegalArgumentException as API defined. Test: atest BaseInputConnectionTest#testInvalidGetTextBeforeOrAfterCursorRequest BUG: 172313372 Change-Id: Ia99a7e0b6a652bc3995529780ba910fd370d3f5f --- .../android/view/inputmethod/BaseInputConnection.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/java/android/view/inputmethod/BaseInputConnection.java b/core/java/android/view/inputmethod/BaseInputConnection.java index 62b1b1f8cf53e..144228f06f1cf 100644 --- a/core/java/android/view/inputmethod/BaseInputConnection.java +++ b/core/java/android/view/inputmethod/BaseInputConnection.java @@ -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;