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

Commit 18cbdb8e authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

Store Connection in InputTarget and Monitor

This will replace the InputChannel. They don't both need to be shared
pointers. A lot of times, we are using InputChannel to look up the
connection. In this CL, this is simplified by using the connection
directly.

Bug: 161009324
Test: atest inputflinger_tests
Change-Id: I3fc2bbdd8c5076b5dbff5067e4fec6e45f5c3da6
parent dd8bd19f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -333,7 +333,7 @@ public:
    ~InputPublisher();

    /* Gets the underlying input channel. */
    inline std::shared_ptr<InputChannel> getChannel() { return mChannel; }
    inline std::shared_ptr<InputChannel> getChannel() const { return mChannel; }

    /* Publishes a key event to the input channel.
     *
+4 −0
Original line number Diff line number Diff line
@@ -38,4 +38,8 @@ const std::string Connection::getWindowName() const {
    return "?";
}

sp<IBinder> Connection::getToken() const {
    return inputPublisher.getChannel()->getConnectionToken();
};

} // namespace android::inputdispatcher
+2 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@ public:

    inline const std::string getInputChannelName() const { return inputChannel->getName(); }

    sp<IBinder> getToken() const;

    const std::string getWindowName() const;
};

+1 −1
Original line number Diff line number Diff line
@@ -282,7 +282,7 @@ std::string SensorEntry::getDescription() const {
volatile int32_t DispatchEntry::sNextSeqAtomic;

DispatchEntry::DispatchEntry(std::shared_ptr<const EventEntry> eventEntry,
                             ftl::Flags<InputTarget::Flags> targetFlags,
                             ftl::Flags<InputTargetFlags> targetFlags,
                             const ui::Transform& transform, const ui::Transform& rawTransform,
                             float globalScaleFactor, gui::Uid targetUid, int64_t vsyncId,
                             std::optional<int32_t> windowId)
+5 −5
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@
#pragma once

#include "InjectionState.h"
#include "InputTarget.h"
#include "InputTargetFlags.h"
#include "trace/EventTrackerInterface.h"

#include <gui/InputApplication.h>
@@ -215,7 +215,7 @@ struct DispatchEntry {
    const uint32_t seq; // unique sequence number, never 0

    std::shared_ptr<const EventEntry> eventEntry; // the event to dispatch
    const ftl::Flags<InputTarget::Flags> targetFlags;
    const ftl::Flags<InputTargetFlags> targetFlags;
    ui::Transform transform;
    ui::Transform rawTransform;
    float globalScaleFactor;
@@ -237,17 +237,17 @@ struct DispatchEntry {
    std::optional<int32_t> windowId;

    DispatchEntry(std::shared_ptr<const EventEntry> eventEntry,
                  ftl::Flags<InputTarget::Flags> targetFlags, const ui::Transform& transform,
                  ftl::Flags<InputTargetFlags> targetFlags, const ui::Transform& transform,
                  const ui::Transform& rawTransform, float globalScaleFactor, gui::Uid targetUid,
                  int64_t vsyncId, std::optional<int32_t> windowId);
    DispatchEntry(const DispatchEntry&) = delete;
    DispatchEntry& operator=(const DispatchEntry&) = delete;

    inline bool hasForegroundTarget() const {
        return targetFlags.test(InputTarget::Flags::FOREGROUND);
        return targetFlags.test(InputTargetFlags::FOREGROUND);
    }

    inline bool isSplit() const { return targetFlags.test(InputTarget::Flags::SPLIT); }
    inline bool isSplit() const { return targetFlags.test(InputTargetFlags::SPLIT); }

private:
    static volatile int32_t sNextSeqAtomic;
Loading