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

Commit 2af5b035 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

Use EventEntry fields as defaults for DispatchEntry

When DispatchEntry is getting constructed, set some of its fields to
the equivalents from EventEntry.

Otherwise, currently, these are set to invalid values (0), which causes
confusion during development.

Bug: 211379801
Test: TEST=inputflinger_tests; m $TEST && $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST
Change-Id: Iddde9e7683caa94c2c1d7a1d8dfef1487ed67ba4
parent c3cdd09f
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -321,7 +321,28 @@ DispatchEntry::DispatchEntry(std::shared_ptr<EventEntry> eventEntry,
        globalScaleFactor(globalScaleFactor),
        deliveryTime(0),
        resolvedAction(0),
        resolvedFlags(0) {}
        resolvedFlags(0) {
    switch (this->eventEntry->type) {
        case EventEntry::Type::KEY: {
            const KeyEntry& keyEntry = static_cast<KeyEntry&>(*this->eventEntry);
            resolvedEventId = keyEntry.id;
            resolvedAction = keyEntry.action;
            resolvedFlags = keyEntry.flags;

            break;
        }
        case EventEntry::Type::MOTION: {
            const MotionEntry& motionEntry = static_cast<MotionEntry&>(*this->eventEntry);
            resolvedEventId = motionEntry.id;
            resolvedAction = motionEntry.action;
            resolvedFlags = motionEntry.flags;
            break;
        }
        default: {
            break;
        }
    }
}

uint32_t DispatchEntry::nextSeq() {
    // Sequence number 0 is reserved and will never be returned.
+0 −6
Original line number Diff line number Diff line
@@ -3302,10 +3302,6 @@ void InputDispatcher::enqueueDispatchEntryLocked(const std::shared_ptr<Connectio
    switch (newEntry.type) {
        case EventEntry::Type::KEY: {
            const KeyEntry& keyEntry = static_cast<const KeyEntry&>(newEntry);
            dispatchEntry->resolvedEventId = keyEntry.id;
            dispatchEntry->resolvedAction = keyEntry.action;
            dispatchEntry->resolvedFlags = keyEntry.flags;

            if (!connection->inputState.trackKey(keyEntry, dispatchEntry->resolvedAction,
                                                 dispatchEntry->resolvedFlags)) {
                LOG(WARNING) << "channel " << connection->getInputChannelName()
@@ -3333,7 +3329,6 @@ void InputDispatcher::enqueueDispatchEntryLocked(const std::shared_ptr<Connectio
            } else if (dispatchMode.test(InputTarget::Flags::DISPATCH_AS_SLIPPERY_ENTER)) {
                dispatchEntry->resolvedAction = AMOTION_EVENT_ACTION_DOWN;
            } else {
                dispatchEntry->resolvedAction = motionEntry.action;
                dispatchEntry->resolvedEventId = motionEntry.id;
            }
            if (dispatchEntry->resolvedAction == AMOTION_EVENT_ACTION_HOVER_MOVE &&
@@ -3349,7 +3344,6 @@ void InputDispatcher::enqueueDispatchEntryLocked(const std::shared_ptr<Connectio
                dispatchEntry->resolvedAction = AMOTION_EVENT_ACTION_HOVER_ENTER;
            }

            dispatchEntry->resolvedFlags = motionEntry.flags;
            if (dispatchEntry->resolvedAction == AMOTION_EVENT_ACTION_CANCEL) {
                dispatchEntry->resolvedFlags |= AMOTION_EVENT_FLAG_CANCELED;
            }