diff --git a/core/java/android/view/inputmethod/InputConnectionWrapper.java b/core/java/android/view/inputmethod/InputConnectionWrapper.java index 65c7654c671b4..afa72a21eadab 100644 --- a/core/java/android/view/inputmethod/InputConnectionWrapper.java +++ b/core/java/android/view/inputmethod/InputConnectionWrapper.java @@ -16,33 +16,47 @@ package android.view.inputmethod; +import android.annotation.NonNull; import android.os.Bundle; import android.os.Handler; import android.view.KeyEvent; +import static com.android.internal.util.Preconditions.checkNotNull; + /** *

Wrapper class for proxying calls to another InputConnection. Subclass * and have fun! */ public class InputConnectionWrapper implements InputConnection { + @NonNull private InputConnection mTarget; final boolean mMutable; - - public InputConnectionWrapper(InputConnection target, boolean mutable) { + + /** + * Initializes the wrapper for the given {@link InputConnection}. + * @param target the {@link InputConnection} to be wrapped. + * @param mutable {@code true} if the wrapper is to be mutable. + * @throws NullPointerException if {@code target} is {@code null}. + */ + public InputConnectionWrapper(@NonNull InputConnection target, boolean mutable) { + checkNotNull(target); mMutable = mutable; mTarget = target; } /** * Change the target of the input connection. + * @param target the {@link InputConnection} to be wrapped. + * @throws NullPointerException if {@code target} is {@code null}. */ - public void setTarget(InputConnection target) { + public void setTarget(@NonNull InputConnection target) { + checkNotNull(target); if (mTarget != null && !mMutable) { throw new SecurityException("not mutable"); } mTarget = target; } - + public CharSequence getTextBeforeCursor(int n, int flags) { return mTarget.getTextBeforeCursor(n, flags); }