From d4044b43d7afe9f8ab81e136912962640d5fca39 Mon Sep 17 00:00:00 2001 From: Zixuan Qu Date: Thu, 8 Sep 2022 04:49:15 +0000 Subject: Add ABS_MT_SLOT config to virtual touch screen. Bug: 244744917 Bug: 233960835 Bug: 233327669 Test: atest VirtualDeviceManagerServiceTest Change-Id: I1ddf173880dc65c034ce7b6a2aef544f1233c361 --- .../jni/com_android_server_companion_virtual_InputController.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/core/jni/com_android_server_companion_virtual_InputController.cpp b/services/core/jni/com_android_server_companion_virtual_InputController.cpp index 8197b67355d4..daca1531d41f 100644 --- a/services/core/jni/com_android_server_companion_virtual_InputController.cpp +++ b/services/core/jni/com_android_server_companion_virtual_InputController.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -271,6 +272,14 @@ static int openUinput(const char* readableName, jint vendorId, jint productId, c ALOGE("Error creating touchscreen uinput pressure axis: %s", strerror(errno)); return -errno; } + uinput_abs_setup slotAbsSetup; + slotAbsSetup.code = ABS_MT_SLOT; + slotAbsSetup.absinfo.maximum = MAX_POINTERS; + slotAbsSetup.absinfo.minimum = 0; + if (ioctl(fd, UI_ABS_SETUP, &slotAbsSetup) != 0) { + ALOGE("Error creating touchscreen uinput slots: %s", strerror(errno)); + return -errno; + } } if (ioctl(fd, UI_DEV_SETUP, &setup) != 0) { ALOGE("Error creating uinput device: %s", strerror(errno)); -- cgit v1.2.3-59-g8ed1b