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

Commit 449befc4 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou Committed by Android (Google) Code Review
Browse files

Merge "Use VIRTUAL_KEYBOARD_ID for injected events"

parents c00f64be 0d8ed6e8
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ static constexpr bool DEBUG_FOCUS = false;
#include <android-base/chrono_utils.h>
#include <android-base/stringprintf.h>
#include <binder/Binder.h>
#include <input/InputDevice.h>
#include <log/log.h>
#include <openssl/hmac.h>
#include <openssl/rand.h>
@@ -3204,22 +3205,22 @@ int32_t InputDispatcher::injectInputEvent(const InputEvent* event, int32_t injec
    std::queue<EventEntry*> injectedEntries;
    switch (event->getType()) {
        case AINPUT_EVENT_TYPE_KEY: {
            KeyEvent keyEvent;
            keyEvent.initialize(*static_cast<const KeyEvent*>(event));
            int32_t action = keyEvent.getAction();
            const KeyEvent& incomingKey = static_cast<const KeyEvent&>(*event);
            int32_t action = incomingKey.getAction();
            if (!validateKeyEvent(action)) {
                return INPUT_EVENT_INJECTION_FAILED;
            }

            int32_t flags = keyEvent.getFlags();
            int32_t keyCode = keyEvent.getKeyCode();
            int32_t metaState = keyEvent.getMetaState();
            accelerateMetaShortcuts(keyEvent.getDeviceId(), action,
            int32_t flags = incomingKey.getFlags();
            int32_t keyCode = incomingKey.getKeyCode();
            int32_t metaState = incomingKey.getMetaState();
            accelerateMetaShortcuts(VIRTUAL_KEYBOARD_ID, action,
                                    /*byref*/ keyCode, /*byref*/ metaState);
            keyEvent.initialize(keyEvent.getDeviceId(), keyEvent.getSource(),
                                keyEvent.getDisplayId(), INVALID_HMAC, action, flags, keyCode,
                                keyEvent.getScanCode(), metaState, keyEvent.getRepeatCount(),
                                keyEvent.getDownTime(), keyEvent.getEventTime());
            KeyEvent keyEvent;
            keyEvent.initialize(VIRTUAL_KEYBOARD_ID, incomingKey.getSource(),
                                incomingKey.getDisplayId(), INVALID_HMAC, action, flags, keyCode,
                                incomingKey.getScanCode(), metaState, incomingKey.getRepeatCount(),
                                incomingKey.getDownTime(), incomingKey.getEventTime());

            if (flags & AKEY_EVENT_FLAG_VIRTUAL_HARD_KEY) {
                policyFlags |= POLICY_FLAG_VIRTUAL;
@@ -3237,11 +3238,10 @@ int32_t InputDispatcher::injectInputEvent(const InputEvent* event, int32_t injec
            mLock.lock();
            KeyEntry* injectedEntry =
                    new KeyEntry(SYNTHESIZED_EVENT_SEQUENCE_NUM, keyEvent.getEventTime(),
                                 keyEvent.getDeviceId(), keyEvent.getSource(),
                                 keyEvent.getDisplayId(), policyFlags, action, flags,
                                 keyEvent.getKeyCode(), keyEvent.getScanCode(),
                                 keyEvent.getMetaState(), keyEvent.getRepeatCount(),
                                 keyEvent.getDownTime());
                                 VIRTUAL_KEYBOARD_ID, keyEvent.getSource(), keyEvent.getDisplayId(),
                                 policyFlags, action, flags, keyEvent.getKeyCode(),
                                 keyEvent.getScanCode(), keyEvent.getMetaState(),
                                 keyEvent.getRepeatCount(), keyEvent.getDownTime());
            injectedEntries.push(injectedEntry);
            break;
        }
@@ -3272,7 +3272,7 @@ int32_t InputDispatcher::injectInputEvent(const InputEvent* event, int32_t injec
            const PointerCoords* samplePointerCoords = motionEvent->getSamplePointerCoords();
            MotionEntry* injectedEntry =
                    new MotionEntry(SYNTHESIZED_EVENT_SEQUENCE_NUM, *sampleEventTimes,
                                    motionEvent->getDeviceId(), motionEvent->getSource(),
                                    VIRTUAL_KEYBOARD_ID, motionEvent->getSource(),
                                    motionEvent->getDisplayId(), policyFlags, action, actionButton,
                                    motionEvent->getFlags(), motionEvent->getMetaState(),
                                    motionEvent->getButtonState(), motionEvent->getClassification(),
@@ -3289,7 +3289,7 @@ int32_t InputDispatcher::injectInputEvent(const InputEvent* event, int32_t injec
                samplePointerCoords += pointerCount;
                MotionEntry* nextInjectedEntry =
                        new MotionEntry(SYNTHESIZED_EVENT_SEQUENCE_NUM, *sampleEventTimes,
                                        motionEvent->getDeviceId(), motionEvent->getSource(),
                                        VIRTUAL_KEYBOARD_ID, motionEvent->getSource(),
                                        motionEvent->getDisplayId(), policyFlags, action,
                                        actionButton, motionEvent->getFlags(),
                                        motionEvent->getMetaState(), motionEvent->getButtonState(),