Merge "InputConnectionWrapper never supports null target." into nyc-dev
diff --git a/core/java/android/view/inputmethod/InputConnectionWrapper.java b/core/java/android/view/inputmethod/InputConnectionWrapper.java
index 65c7654..afa72a2 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;
+
 /**
  * <p>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);
     }