diff options
| author | 2021-08-03 14:48:56 +0000 | |
|---|---|---|
| committer | 2021-08-03 14:48:56 +0000 | |
| commit | ad802be87734cfd20a2aaa30d92343d5f418e788 (patch) | |
| tree | 6d49087498ec790ff3f0f3ccd1fabd80a00861bb /libs | |
| parent | a83715172074b019a53a9875a8393b3e71dcdfa0 (diff) | |
| parent | bf023a62aab21b80fb16cf6394fb6a2cbdfdb796 (diff) | |
Merge "Use WindowInfosListener instead of SF reporting to IF" into sc-v2-dev
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/gui/Android.bp | 1 | ||||
| -rw-r--r-- | libs/gui/WindowInfosListenerReporter.cpp | 8 | ||||
| -rw-r--r-- | libs/gui/android/gui/IWindowInfosListener.aidl | 3 | ||||
| -rw-r--r-- | libs/gui/android/gui/IWindowInfosReportedListener.aidl (renamed from libs/input/android/os/ISetInputWindowsListener.aidl) | 6 | ||||
| -rw-r--r-- | libs/gui/include/gui/WindowInfosListenerReporter.h | 5 | ||||
| -rw-r--r-- | libs/input/Android.bp | 2 | ||||
| -rw-r--r-- | libs/input/android/os/IInputFlinger.aidl | 7 |
7 files changed, 16 insertions, 16 deletions
diff --git a/libs/gui/Android.bp b/libs/gui/Android.bp index 5cf7a5fe53..326da3a7b5 100644 --- a/libs/gui/Android.bp +++ b/libs/gui/Android.bp @@ -68,6 +68,7 @@ cc_library_static { "android/gui/FocusRequest.aidl", "android/gui/InputApplicationInfo.aidl", "android/gui/IWindowInfosListener.aidl", + "android/gui/IWindowInfosReportedListener.aidl", "android/gui/WindowInfo.aidl", "WindowInfo.cpp", ], diff --git a/libs/gui/WindowInfosListenerReporter.cpp b/libs/gui/WindowInfosListenerReporter.cpp index 834e2b8433..c00a4389ad 100644 --- a/libs/gui/WindowInfosListenerReporter.cpp +++ b/libs/gui/WindowInfosListenerReporter.cpp @@ -19,6 +19,7 @@ namespace android { +using gui::IWindowInfosReportedListener; using gui::WindowInfo; using gui::WindowInfosListener; @@ -64,7 +65,8 @@ status_t WindowInfosListenerReporter::removeWindowInfosListener( } binder::Status WindowInfosListenerReporter::onWindowInfosChanged( - const std::vector<WindowInfo>& windowInfos) { + const std::vector<WindowInfo>& windowInfos, + const sp<IWindowInfosReportedListener>& windowInfosReportedListener) { std::unordered_set<sp<WindowInfosListener>, ISurfaceComposer::SpHash<WindowInfosListener>> windowInfosListeners; @@ -79,6 +81,10 @@ binder::Status WindowInfosListenerReporter::onWindowInfosChanged( listener->onWindowInfosChanged(windowInfos); } + if (windowInfosReportedListener) { + windowInfosReportedListener->onWindowInfosReported(); + } + return binder::Status::ok(); } diff --git a/libs/gui/android/gui/IWindowInfosListener.aidl b/libs/gui/android/gui/IWindowInfosListener.aidl index 500d928a5a..d4553ca82d 100644 --- a/libs/gui/android/gui/IWindowInfosListener.aidl +++ b/libs/gui/android/gui/IWindowInfosListener.aidl @@ -16,10 +16,11 @@ package android.gui; +import android.gui.IWindowInfosReportedListener; import android.gui.WindowInfo; /** @hide */ oneway interface IWindowInfosListener { - void onWindowInfosChanged(in WindowInfo[] windowInfos); + void onWindowInfosChanged(in WindowInfo[] windowInfos, in @nullable IWindowInfosReportedListener windowInfosReportedListener); } diff --git a/libs/input/android/os/ISetInputWindowsListener.aidl b/libs/gui/android/gui/IWindowInfosReportedListener.aidl index bb58fb671b..0e4cce61a2 100644 --- a/libs/input/android/os/ISetInputWindowsListener.aidl +++ b/libs/gui/android/gui/IWindowInfosReportedListener.aidl @@ -14,10 +14,10 @@ * limitations under the License. */ -package android.os; +package android.gui; /** @hide */ -oneway interface ISetInputWindowsListener +oneway interface IWindowInfosReportedListener { - void onSetInputWindowsFinished(); + void onWindowInfosReported(); } diff --git a/libs/gui/include/gui/WindowInfosListenerReporter.h b/libs/gui/include/gui/WindowInfosListenerReporter.h index 3e346de069..7cb96e0a30 100644 --- a/libs/gui/include/gui/WindowInfosListenerReporter.h +++ b/libs/gui/include/gui/WindowInfosListenerReporter.h @@ -17,6 +17,7 @@ #pragma once #include <android/gui/BnWindowInfosListener.h> +#include <android/gui/IWindowInfosReportedListener.h> #include <binder/IBinder.h> #include <gui/ISurfaceComposer.h> #include <gui/WindowInfosListener.h> @@ -29,8 +30,8 @@ class ISurfaceComposer; class WindowInfosListenerReporter : public gui::BnWindowInfosListener { public: static sp<WindowInfosListenerReporter> getInstance(); - - binder::Status onWindowInfosChanged(const std::vector<gui::WindowInfo>& windowInfos) override; + binder::Status onWindowInfosChanged(const std::vector<gui::WindowInfo>& windowInfos, + const sp<gui::IWindowInfosReportedListener>&) override; status_t addWindowInfosListener(const sp<gui::WindowInfosListener>& windowInfosListener, const sp<ISurfaceComposer>&); diff --git a/libs/input/Android.bp b/libs/input/Android.bp index 02cf9ebc26..e73c3b8518 100644 --- a/libs/input/Android.bp +++ b/libs/input/Android.bp @@ -83,7 +83,6 @@ cc_library { "android/os/IInputFlinger.aidl", "android/os/InputEventInjectionResult.aidl", "android/os/InputEventInjectionSync.aidl", - "android/os/ISetInputWindowsListener.aidl", ], export_shared_lib_headers: ["libbinder"], @@ -119,7 +118,6 @@ cc_library { "InputTransport.cpp", "android/os/IInputConstants.aidl", "android/os/IInputFlinger.aidl", - "android/os/ISetInputWindowsListener.aidl", ], static_libs: [ "libhostgraphics", diff --git a/libs/input/android/os/IInputFlinger.aidl b/libs/input/android/os/IInputFlinger.aidl index 43b262f238..00ebd4d34f 100644 --- a/libs/input/android/os/IInputFlinger.aidl +++ b/libs/input/android/os/IInputFlinger.aidl @@ -19,17 +19,10 @@ package android.os; import android.InputChannel; import android.gui.FocusRequest; import android.gui.WindowInfo; -import android.os.ISetInputWindowsListener; /** @hide */ interface IInputFlinger { - // SurfaceFlinger is the caller of this method, it uses the listener callback to ensure the - // ordering when needed. - // SurfaceFlinger calls this only every VSync, so overflow of binder's oneway buffer - // shouldn't be a concern. - oneway void setInputWindows(in WindowInfo[] windowInfoHandles, - in @nullable ISetInputWindowsListener setInputWindowsListener); InputChannel createInputChannel(in @utf8InCpp String name); void removeInputChannel(in IBinder connectionToken); /** |