summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
author Chavi Weingarten <chaviw@google.com> 2021-08-03 14:48:56 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-08-03 14:48:56 +0000
commitad802be87734cfd20a2aaa30d92343d5f418e788 (patch)
tree6d49087498ec790ff3f0f3ccd1fabd80a00861bb /libs
parenta83715172074b019a53a9875a8393b3e71dcdfa0 (diff)
parentbf023a62aab21b80fb16cf6394fb6a2cbdfdb796 (diff)
Merge "Use WindowInfosListener instead of SF reporting to IF" into sc-v2-dev
Diffstat (limited to 'libs')
-rw-r--r--libs/gui/Android.bp1
-rw-r--r--libs/gui/WindowInfosListenerReporter.cpp8
-rw-r--r--libs/gui/android/gui/IWindowInfosListener.aidl3
-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.h5
-rw-r--r--libs/input/Android.bp2
-rw-r--r--libs/input/android/os/IInputFlinger.aidl7
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);
/**