Support trackpad 'click'

Bug: 331179939
Test: click the trackpad
Change-Id: I2b3572d5d02de5a0c5aaee9da9fdaf9376532462
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachine.java b/java/framework/src/android/system/virtualmachine/VirtualMachine.java
index d54bd44..d1570c3 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachine.java
+++ b/java/framework/src/android/system/virtualmachine/VirtualMachine.java
@@ -1142,9 +1142,29 @@
 
         int x = (int) event.getRawX();
         int y = (int) event.getRawY();
+        if (event.getAction() == MotionEvent.ACTION_BUTTON_PRESS
+                || event.getAction() == MotionEvent.ACTION_BUTTON_RELEASE) {
+            short BTN_LEFT = 0x110;
+            short keyCode;
+            switch (event.getActionButton()) {
+                case MotionEvent.BUTTON_PRIMARY:
+                    keyCode = BTN_LEFT;
+                    break;
+                default:
+                    Log.d(TAG, event.toString());
+                    return false;
+            }
+            return writeEventsToSock(
+                    mMouseSock,
+                    Arrays.asList(
+                            new InputEvent(
+                                    EV_KEY,
+                                    keyCode,
+                                    event.getAction() == MotionEvent.ACTION_BUTTON_PRESS ? 1 : 0),
+                            new InputEvent(EV_SYN, SYN_REPORT, 0)));
+        }
         boolean down = event.getAction() != MotionEvent.ACTION_UP;
-
-        // TODO(b/347253952): support multi-touch and button click
+        // TODO(b/347253952): support multi-touch
         return writeEventsToSock(
                 mTrackpadSock,
                 Arrays.asList(