diff options
author | 2018-09-24 13:18:43 -0700 | |
---|---|---|
committer | 2018-11-27 12:39:33 -0800 | |
commit | 1c4c5599696d049b112c40d629f8c74bb612b01f (patch) | |
tree | d0da6e66f155d1d5e3573e5f4c99d2781d97eb88 /libs/input/IInputFlinger.cpp | |
parent | 720e506fcab38d2f73b84630744ad100c5b6609d (diff) |
Add some tests for native input.
Test some important scenarios for input being driven by
SurfaceControl rather than the WindowManager.
Test: EndToEndNativeInputTest
Bug: 80101428
Bug: 113136004
Bug: 111440400
Change-Id: I46b302774a19c43d12680a8b7e2bb553dfcf4175
Diffstat (limited to 'libs/input/IInputFlinger.cpp')
-rw-r--r-- | libs/input/IInputFlinger.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/libs/input/IInputFlinger.cpp b/libs/input/IInputFlinger.cpp index 47a2c0c347..477e54e708 100644 --- a/libs/input/IInputFlinger.cpp +++ b/libs/input/IInputFlinger.cpp @@ -40,6 +40,20 @@ public: } remote()->transact(BnInputFlinger::SET_INPUT_WINDOWS_TRANSACTION, data, &reply); } + + virtual void registerInputChannel(const sp<InputChannel>& channel) { + Parcel data, reply; + data.writeInterfaceToken(IInputFlinger::getInterfaceDescriptor()); + channel->write(data); + remote()->transact(BnInputFlinger::REGISTER_INPUT_CHANNEL_TRANSACTION, data, &reply); + } + + virtual void unregisterInputChannel(const sp<InputChannel>& channel) { + Parcel data, reply; + data.writeInterfaceToken(IInputFlinger::getInterfaceDescriptor()); + channel->write(data); + remote()->transact(BnInputFlinger::UNREGISTER_INPUT_CHANNEL_TRANSACTION, data, &reply); + } }; IMPLEMENT_META_INTERFACE(InputFlinger, "android.input.IInputFlinger"); @@ -61,6 +75,20 @@ status_t BnInputFlinger::onTransact( setInputWindows(handles); break; } + case REGISTER_INPUT_CHANNEL_TRANSACTION: { + CHECK_INTERFACE(IInputFlinger, data, reply); + sp<InputChannel> channel = new InputChannel(); + channel->read(data); + registerInputChannel(channel); + break; + } + case UNREGISTER_INPUT_CHANNEL_TRANSACTION: { + CHECK_INTERFACE(IInputFlinger, data, reply); + sp<InputChannel> channel = new InputChannel(); + channel->read(data); + unregisterInputChannel(channel); + break; + } default: return BBinder::onTransact(code, data, reply, flags); } |