Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16d4a5ec authored by Biswarup Pal's avatar Biswarup Pal Committed by Android (Google) Code Review
Browse files

Merge "Send high-res scroll events from VirtualMouse" into main

parents 8310ae8b 08c9caf3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -411,6 +411,13 @@ cc_aconfig_library {
    host_supported: true,
}

cc_aconfig_library {
    name: "android.companion.virtualdevice.flags-aconfig-cc-test",
    aconfig_declarations: "android.companion.virtualdevice.flags-aconfig",
    host_supported: true,
    mode: "test",
}

java_aconfig_library {
    name: "android.companion.virtualdevice.flags-aconfig-java",
    aconfig_declarations: "android.companion.virtualdevice.flags-aconfig",
+7 −0
Original line number Diff line number Diff line
@@ -103,3 +103,10 @@ flag {
    description: "API for on-demand rotation of virtual displays"
    bug: "291748430"
}

flag {
    namespace: "virtual_devices"
    name: "high_resolution_scroll"
    description: "Enable high resolution scroll"
    bug: "335160780"
}
+1 −0
Original line number Diff line number Diff line
@@ -210,6 +210,7 @@ cc_defaults {
        "android.system.suspend-V1-ndk",
        "server_configurable_flags",
        "service.incremental",
        "android.companion.virtualdevice.flags-aconfig-cc",
    ],

    static_libs: [
+7 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <android-base/unique_fd.h>
#include <android/input.h>
#include <android/keycodes.h>
#include <android_companion_virtualdevice_flags.h>
#include <errno.h>
#include <fcntl.h>
#include <input/Input.h>
@@ -37,6 +38,8 @@ using android::base::unique_fd;

namespace android {

namespace vd_flags = android::companion::virtualdevice::flags;

static constexpr jlong INVALID_PTR = 0;

enum class DeviceType {
@@ -88,6 +91,10 @@ static unique_fd openUinput(const char* readableName, jint vendorId, jint produc
            ioctl(fd, UI_SET_RELBIT, REL_Y);
            ioctl(fd, UI_SET_RELBIT, REL_WHEEL);
            ioctl(fd, UI_SET_RELBIT, REL_HWHEEL);
            if (vd_flags::high_resolution_scroll()) {
                ioctl(fd, UI_SET_RELBIT, REL_WHEEL_HI_RES);
                ioctl(fd, UI_SET_RELBIT, REL_HWHEEL_HI_RES);
            }
            break;
        case DeviceType::TOUCHSCREEN:
            ioctl(fd, UI_SET_EVBIT, EV_ABS);