Add ABS_MT_SLOT config to virtual touch screen.

Bug: 244744917
Bug: 233960835
Bug: 233327669

Test: atest VirtualDeviceManagerServiceTest

Change-Id: I1ddf173880dc65c034ce7b6a2aef544f1233c361
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 8197b67..daca153 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 <android/keycodes.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <input/Input.h>
 #include <linux/uinput.h>
 #include <math.h>
 #include <nativehelper/JNIHelp.h>
@@ -271,6 +272,14 @@
                 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));