From 1f6323ddfbafacfbcda9e1b8a32214211db35728 Mon Sep 17 00:00:00 2001 From: Zixuan Qu Date: Tue, 27 Sep 2022 19:17:57 +0000 Subject: [PATCH] Add ABS_MT_SLOT config to virtual touch screen. Cherry-picked-from: ag/19908041 Bug: 244744917 Bug: 233960835 Bug: 233327669 Test: atest VirtualDeviceManagerServiceTest Change-Id: I58f0302e4df3415cff74646d7424c699d98cbca7 --- ..._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 8197b67355d4a..daca1531d41ff 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));