diff options
3 files changed, 7 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index 36a9c80717f2..f813997a8fec 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java @@ -1259,9 +1259,9 @@ public class InputManagerService extends IInputManager.Stub * @param dragAndDropChannel The input channel associated with the system drag window. * @return true if drag and drop was successfully started, false otherwise. */ - public boolean startDragAndDrop(@NonNull InputChannel fromChannel, + public boolean startDragAndDrop(@NonNull IBinder fromChannelToken, @NonNull InputChannel dragAndDropChannel) { - return mNative.transferTouchGesture(fromChannel.getToken(), dragAndDropChannel.getToken(), + return mNative.transferTouchGesture(fromChannelToken, dragAndDropChannel.getToken(), true /* isDragDrop */); } diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java index 8ae1cf0e0709..88e8064edc0e 100644 --- a/services/core/java/com/android/server/wm/WindowManagerInternal.java +++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java @@ -380,7 +380,7 @@ public abstract class WindowManagerInternal { InputChannel source) { return state.register(display) .thenApply(unused -> - service.startDragAndDrop(source, state.getInputChannel())); + service.startDragAndDrop(source.getToken(), state.getInputChannel())); } /** diff --git a/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java index 8cdb574a967b..e5650068c8fb 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java @@ -152,8 +152,8 @@ public class DragDropControllerTests extends WindowTestsBase { // Use a new TestIWindow so we don't collect events for other windows final WindowState window = createWindow( null, TYPE_BASE_APPLICATION, activity, name, ownerId, false, new TestIWindow()); - window.mInputChannel = new InputChannel(); - window.mInputChannelToken = window.mInputChannel.getToken(); + InputChannel channel = new InputChannel(); + window.openInputChannel(channel); window.mHasSurface = true; mWm.mWindowMap.put(window.mClient.asBinder(), window); mWm.mInputToWindowMap.put(window.mInputChannelToken, window); @@ -178,7 +178,7 @@ public class DragDropControllerTests extends WindowTestsBase { TEST_PID, TEST_UID); mWindow = createDropTargetWindow("Drag test window", 0); doReturn(mWindow).when(mDisplayContent).getTouchableWinAtPointLocked(0, 0); - when(mWm.mInputManager.startDragAndDrop(any(InputChannel.class), + when(mWm.mInputManager.startDragAndDrop(any(IBinder.class), any(InputChannel.class))).thenReturn(true); mWm.mWindowMap.put(mWindow.mClient.asBinder(), mWindow); @@ -707,8 +707,7 @@ public class DragDropControllerTests extends WindowTestsBase { .setFormat(PixelFormat.TRANSLUCENT) .build(); - assertTrue(mWm.mInputManager.startDragAndDrop(new InputChannel(), - new InputChannel())); + assertTrue(mWm.mInputManager.startDragAndDrop(new Binder(), new InputChannel())); mToken = mTarget.performDrag(TEST_PID, 0, mWindow.mClient, flag, surface, 0, 0, 0, 0, 0, 0, 0, data); assertNotNull(mToken); |