Add WindowInfosListener to Input
Register a WindowInfosListener in InputDispatcher to allow
it to listen for window info changes rather than SurfaceFlinger
having to talk directly to InputDispatcher.
Test: Existing tests pass
Bug: 188792659
Change-Id: If6ccfb0c8c5af0a7b3777c9002157128568cbb6e
diff --git a/services/inputflinger/dispatcher/InputDispatcher.h b/services/inputflinger/dispatcher/InputDispatcher.h
index 87dd6ee..2436e73 100644
--- a/services/inputflinger/dispatcher/InputDispatcher.h
+++ b/services/inputflinger/dispatcher/InputDispatcher.h
@@ -58,6 +58,7 @@
#include <InputListener.h>
#include <InputReporterInterface.h>
+#include <gui/WindowInfosListener.h>
namespace android::inputdispatcher {
@@ -80,7 +81,7 @@
*
* A 'LockedInterruptible' method may called a 'Locked' method, but NOT vice-versa.
*/
-class InputDispatcher : public android::InputDispatcherInterface {
+class InputDispatcher : public android::InputDispatcherInterface, public gui::WindowInfosListener {
protected:
~InputDispatcher() override;
@@ -142,6 +143,8 @@
void displayRemoved(int32_t displayId) override;
+ void onWindowInfosChanged(const std::vector<gui::WindowInfo>& windowInfos) override;
+
private:
enum class DropReason {
NOT_DROPPED,
@@ -659,6 +662,8 @@
sp<InputReporterInterface> mReporter;
sp<com::android::internal::compat::IPlatformCompatNative> mCompatService;
+
+ void onFirstRef() override;
};
} // namespace android::inputdispatcher