summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sakar Khattar <sakark@google.com> 2021-02-03 19:18:05 +0000
committer Sakar Khattar <sakark@google.com> 2021-03-04 21:38:45 +0000
commitbe69476bc5f29b84247d4e8eeb30e872782ce730 (patch)
tree13a145fb4e6504a337f6bcfb8dd66cd1da6b59dc
parent637ddadc693ff08370d27dad66765c35770b272e (diff)
Copy SurfaceControl object for inprocess calls from WindowlessWindowManager to WindowManager
Test: Manually tested on device via SurfaceControlViewHost.setView()->WindowlessWindowManager.addToDisplay() Bug: b/171914211 (for original change on rvc-wear-dev) Change-Id: I474949b53c570e01ba678e088a5001618ff0b26e (cherry picked from commit 9eec64f031a1a1992461251ed3451fc48fd59224)
-rw-r--r--core/java/android/view/WindowlessWindowManager.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java
index 7cc2db1c0dab..72d403e1f867 100644
--- a/core/java/android/view/WindowlessWindowManager.java
+++ b/core/java/android/view/WindowlessWindowManager.java
@@ -149,8 +149,15 @@ public class WindowlessWindowManager implements IWindowSession {
if (((attrs.inputFeatures &
WindowManager.LayoutParams.INPUT_FEATURE_NO_INPUT_CHANNEL) == 0)) {
try {
- mRealWm.grantInputChannel(displayId, sc, window, mHostInputToken, attrs.flags,
+ if(mRealWm instanceof IWindowSession.Stub) {
+ mRealWm.grantInputChannel(displayId,
+ new SurfaceControl(sc, "WindowlessWindowManager.addToDisplay"),
+ window, mHostInputToken, attrs.flags, attrs.privateFlags, attrs.type,
+ outInputChannel);
+ } else {
+ mRealWm.grantInputChannel(displayId, sc, window, mHostInputToken, attrs.flags,
attrs.privateFlags, attrs.type, outInputChannel);
+ }
} catch (RemoteException e) {
Log.e(TAG, "Failed to grant input to surface: ", e);
}
@@ -293,8 +300,14 @@ public class WindowlessWindowManager implements IWindowSession {
if ((attrChanges & WindowManager.LayoutParams.FLAGS_CHANGED) != 0
&& state.mInputChannelToken != null) {
try {
- mRealWm.updateInputChannel(state.mInputChannelToken, state.mDisplayId, sc,
- attrs.flags, attrs.privateFlags, state.mInputRegion);
+ if(mRealWm instanceof IWindowSession.Stub) {
+ mRealWm.updateInputChannel(state.mInputChannelToken, state.mDisplayId,
+ new SurfaceControl(sc, "WindowlessWindowManager.relayout"),
+ attrs.flags, attrs.privateFlags, state.mInputRegion);
+ } else {
+ mRealWm.updateInputChannel(state.mInputChannelToken, state.mDisplayId, sc,
+ attrs.flags, attrs.privateFlags, state.mInputRegion);
+ }
} catch (RemoteException e) {
Log.e(TAG, "Failed to update surface input channel: ", e);
}