Merge "InputConnectionWrapper never supports null target." into nyc-dev

am: 82197c33a2

* commit '82197c33a23a130acd93dcf54e70138a7e7ba970':
  InputConnectionWrapper never supports null target.
This commit is contained in:
Yohei Yukawa
2016-02-29 21:25:29 +00:00
committed by android-build-merger

View File

@@ -16,33 +16,47 @@
package android.view.inputmethod; package android.view.inputmethod;
import android.annotation.NonNull;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.view.KeyEvent; import android.view.KeyEvent;
import static com.android.internal.util.Preconditions.checkNotNull;
/** /**
* <p>Wrapper class for proxying calls to another InputConnection. Subclass * <p>Wrapper class for proxying calls to another InputConnection. Subclass
* and have fun! * and have fun!
*/ */
public class InputConnectionWrapper implements InputConnection { public class InputConnectionWrapper implements InputConnection {
@NonNull
private InputConnection mTarget; private InputConnection mTarget;
final boolean mMutable; 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; mMutable = mutable;
mTarget = target; mTarget = target;
} }
/** /**
* Change the target of the input connection. * 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) { if (mTarget != null && !mMutable) {
throw new SecurityException("not mutable"); throw new SecurityException("not mutable");
} }
mTarget = target; mTarget = target;
} }
public CharSequence getTextBeforeCursor(int n, int flags) { public CharSequence getTextBeforeCursor(int n, int flags) {
return mTarget.getTextBeforeCursor(n, flags); return mTarget.getTextBeforeCursor(n, flags);
} }