OSDN Git Service

InputConnectionWrapper never supports null target.
authorYohei Yukawa <yukawa@google.com>
Mon, 29 Feb 2016 20:45:49 +0000 (12:45 -0800)
committerYohei Yukawa <yukawa@google.com>
Mon, 29 Feb 2016 20:45:49 +0000 (12:45 -0800)
commit90bd36363c5738b3f526aa1f1d44f432236300a0
tree5f4788c678b9a8a013200b5e4d77e5a8cc6eddb0
parent1db8850b793109da0fc4a65ec837b1a329072b07
InputConnectionWrapper never supports null target.

This CL makes it clear that InputConnectionWrapper does not support null
target.  In other words, the semantics of null InputConnection can never
be emulated by a non-null InputConnectionWrapper.

This is particularly problematic when app developers are just forwarding
the return value of super.onCreateInputConnection() to
InputConnectionWrapper or its subclass, because there are many chance
that super.onCreateInputConnection() starts returning null, e.g. when:
  A. the application is extending a Framework class, and the Framework
     class is updated by OTA.
  B. the application is extending system WebView, and the WebView is
     updated.
  C. the application is extending a 3rd party library, and the app
     developer creates a new build with a new version of the 3rd party
     library.

To make it easy to catch these kind of bugs, this CL lets the
constructor of InputMethodWrapper throw NullPointerException when target
is null.  Bugs like crbug.com/571229 should be caught by developers
more easily.

Bug: 27407697
Change-Id: I83875bea886d4784f9507c930050efc29708d9db
core/java/android/view/inputmethod/InputConnectionWrapper.java