InputDispatcher: Track InputChannels by IBinder token.
In the context of passing input through SurfaceFlinger we need to change the way InputWindowHandles are passed back to the WindowManager. In the past the InputDispatcher and the WindowManager have been in the same process. This is taken advantange of by having the InputDispatcher pass back the same object to the WindowManager (say in interceptKeyBeforeQueueing) which was passed in from the WindowManager originally (in setInputWindows) this means if the WindowManager needs to assosciate a WindowState with a given InputWindowHandle it could just piggy back some information on a subclass of the object and cast it when receiving back from the Input subsystem. Since the objects will be parcelled across IPC boundaries now and the WM will not be the caller of setInputWindows, this mechanism won't work. Instead we ask the WindowManager to provide an IBinder token at registration time, which we can parcel through the process as a UUID. We provide this token back to Policy callbacks to enable the WindowManager to look up it's local state. Bug: 80101428 Bug: 113136004 Bug: 111440400 Test: Manual Change-Id: Ia828eb61082240f38d82f89e04956da108f636de
Loading
Please register or sign in to comment