Loading services/companion/java/com/android/server/companion/virtual/computercontrol/ComputerControlSessionImpl.java +19 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,19 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub @VisibleForTesting static final long KEY_EVENT_DELAY_MS = 10L; // Vendor and Product IDs for Computer Control virtual input devices. // These values are likely unique within the VIRTUAL bus type, but they are not // guaranteed to be globally unique forever. // TODO: b/443001754 - Remove setVendorId and setProductId in all input devices below, // in favor of reporting dedicated Computer Control metrics. private static final int VENDOR_ID = 0x0000; @VisibleForTesting static final int PRODUCT_ID_DPAD = 0xCC01; @VisibleForTesting static final int PRODUCT_ID_KEYBOARD = 0xCC02; @VisibleForTesting static final int PRODUCT_ID_TOUCHSCREEN = 0xCC03; private final IBinder mAppToken; private final ComputerControlSessionParams mParams; private final String mOwnerPackageName; Loading Loading @@ -203,6 +216,8 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub new VirtualDpadConfig.Builder() .setAssociatedDisplayId(mVirtualDisplayId) .setInputDeviceName(dpadName) .setVendorId(VENDOR_ID) .setProductId(PRODUCT_ID_DPAD) .build(); mVirtualDpad = mVirtualDevice.createVirtualDpad( virtualDpadConfig, new Binder(dpadName)); Loading @@ -212,6 +227,8 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub new VirtualKeyboardConfig.Builder() .setAssociatedDisplayId(mVirtualDisplayId) .setInputDeviceName(keyboardName) .setVendorId(VENDOR_ID) .setProductId(PRODUCT_ID_KEYBOARD) .build(); mVirtualKeyboard = mVirtualDevice.createVirtualKeyboard( virtualKeyboardConfig, new Binder(keyboardName)); Loading @@ -221,6 +238,8 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub new VirtualTouchscreenConfig.Builder(mDisplayWidth, mDisplayHeight) .setAssociatedDisplayId(mVirtualDisplayId) .setInputDeviceName(touchscreenName) .setVendorId(VENDOR_ID) .setProductId(PRODUCT_ID_TOUCHSCREEN) .build(); mVirtualTouchscreen = mVirtualDevice.createVirtualTouchscreen( virtualTouchscreenConfig, new Binder(touchscreenName)); Loading services/tests/servicestests/src/com/android/server/companion/virtual/computercontrol/ComputerControlSessionTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.KEY_EVENT_DELAY_MS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.SWIPE_STEPS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.TOUCH_EVENT_DELAY_MS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.PRODUCT_ID_DPAD; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.PRODUCT_ID_KEYBOARD; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.PRODUCT_ID_TOUCHSCREEN; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -194,6 +197,7 @@ public class ComputerControlSessionTest { VirtualDpadConfig virtualDpadConfig = mVirtualDpadConfigArgumentCaptor.getValue(); assertThat(virtualDpadConfig.getAssociatedDisplayId()).isEqualTo(VIRTUAL_DISPLAY_ID); assertThat(virtualDpadConfig.getInputDeviceName()).contains(mDefaultParams.getName()); assertThat(virtualDpadConfig.getProductId()).isEqualTo(PRODUCT_ID_DPAD); verify(mVirtualDevice).createVirtualKeyboard( mVirtualKeyboardConfigArgumentCaptor.capture(), any()); Loading @@ -201,6 +205,7 @@ public class ComputerControlSessionTest { mVirtualKeyboardConfigArgumentCaptor.getValue(); assertThat(virtualKeyboardConfig.getAssociatedDisplayId()).isEqualTo(VIRTUAL_DISPLAY_ID); assertThat(virtualKeyboardConfig.getInputDeviceName()).contains(mDefaultParams.getName()); assertThat(virtualKeyboardConfig.getProductId()).isEqualTo(PRODUCT_ID_KEYBOARD); verify(mVirtualDevice).createVirtualTouchscreen( mVirtualTouchscreenConfigArgumentCaptor.capture(), any()); Loading @@ -211,6 +216,7 @@ public class ComputerControlSessionTest { assertThat(virtualTouchscreenConfig.getHeight()).isEqualTo(DISPLAY_HEIGHT); assertThat(virtualTouchscreenConfig.getInputDeviceName()).contains( mDefaultParams.getName()); assertThat(virtualTouchscreenConfig.getProductId()).isEqualTo(PRODUCT_ID_TOUCHSCREEN); } @Test Loading Loading
services/companion/java/com/android/server/companion/virtual/computercontrol/ComputerControlSessionImpl.java +19 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,19 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub @VisibleForTesting static final long KEY_EVENT_DELAY_MS = 10L; // Vendor and Product IDs for Computer Control virtual input devices. // These values are likely unique within the VIRTUAL bus type, but they are not // guaranteed to be globally unique forever. // TODO: b/443001754 - Remove setVendorId and setProductId in all input devices below, // in favor of reporting dedicated Computer Control metrics. private static final int VENDOR_ID = 0x0000; @VisibleForTesting static final int PRODUCT_ID_DPAD = 0xCC01; @VisibleForTesting static final int PRODUCT_ID_KEYBOARD = 0xCC02; @VisibleForTesting static final int PRODUCT_ID_TOUCHSCREEN = 0xCC03; private final IBinder mAppToken; private final ComputerControlSessionParams mParams; private final String mOwnerPackageName; Loading Loading @@ -203,6 +216,8 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub new VirtualDpadConfig.Builder() .setAssociatedDisplayId(mVirtualDisplayId) .setInputDeviceName(dpadName) .setVendorId(VENDOR_ID) .setProductId(PRODUCT_ID_DPAD) .build(); mVirtualDpad = mVirtualDevice.createVirtualDpad( virtualDpadConfig, new Binder(dpadName)); Loading @@ -212,6 +227,8 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub new VirtualKeyboardConfig.Builder() .setAssociatedDisplayId(mVirtualDisplayId) .setInputDeviceName(keyboardName) .setVendorId(VENDOR_ID) .setProductId(PRODUCT_ID_KEYBOARD) .build(); mVirtualKeyboard = mVirtualDevice.createVirtualKeyboard( virtualKeyboardConfig, new Binder(keyboardName)); Loading @@ -221,6 +238,8 @@ final class ComputerControlSessionImpl extends IComputerControlSession.Stub new VirtualTouchscreenConfig.Builder(mDisplayWidth, mDisplayHeight) .setAssociatedDisplayId(mVirtualDisplayId) .setInputDeviceName(touchscreenName) .setVendorId(VENDOR_ID) .setProductId(PRODUCT_ID_TOUCHSCREEN) .build(); mVirtualTouchscreen = mVirtualDevice.createVirtualTouchscreen( virtualTouchscreenConfig, new Binder(touchscreenName)); Loading
services/tests/servicestests/src/com/android/server/companion/virtual/computercontrol/ComputerControlSessionTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.KEY_EVENT_DELAY_MS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.SWIPE_STEPS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.TOUCH_EVENT_DELAY_MS; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.PRODUCT_ID_DPAD; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.PRODUCT_ID_KEYBOARD; import static com.android.server.companion.virtual.computercontrol.ComputerControlSessionImpl.PRODUCT_ID_TOUCHSCREEN; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -194,6 +197,7 @@ public class ComputerControlSessionTest { VirtualDpadConfig virtualDpadConfig = mVirtualDpadConfigArgumentCaptor.getValue(); assertThat(virtualDpadConfig.getAssociatedDisplayId()).isEqualTo(VIRTUAL_DISPLAY_ID); assertThat(virtualDpadConfig.getInputDeviceName()).contains(mDefaultParams.getName()); assertThat(virtualDpadConfig.getProductId()).isEqualTo(PRODUCT_ID_DPAD); verify(mVirtualDevice).createVirtualKeyboard( mVirtualKeyboardConfigArgumentCaptor.capture(), any()); Loading @@ -201,6 +205,7 @@ public class ComputerControlSessionTest { mVirtualKeyboardConfigArgumentCaptor.getValue(); assertThat(virtualKeyboardConfig.getAssociatedDisplayId()).isEqualTo(VIRTUAL_DISPLAY_ID); assertThat(virtualKeyboardConfig.getInputDeviceName()).contains(mDefaultParams.getName()); assertThat(virtualKeyboardConfig.getProductId()).isEqualTo(PRODUCT_ID_KEYBOARD); verify(mVirtualDevice).createVirtualTouchscreen( mVirtualTouchscreenConfigArgumentCaptor.capture(), any()); Loading @@ -211,6 +216,7 @@ public class ComputerControlSessionTest { assertThat(virtualTouchscreenConfig.getHeight()).isEqualTo(DISPLAY_HEIGHT); assertThat(virtualTouchscreenConfig.getInputDeviceName()).contains( mDefaultParams.getName()); assertThat(virtualTouchscreenConfig.getProductId()).isEqualTo(PRODUCT_ID_TOUCHSCREEN); } @Test Loading