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

Commit e2606313 authored by Prabir Pradhan's avatar Prabir Pradhan Committed by Android (Google) Code Review
Browse files

Merge changes I71e4943d,Ia942c85d into main

* changes:
  PointerController: Simplify display info listener registration
  PointerController: Get initial DisplayInfos from SurfaceComposerClient
parents bd5d5293 bdf93698
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -111,7 +111,11 @@ PointerController::PointerController(const sp<PointerControllerPolicyInterface>&
      : PointerController(
                policy, looper, spriteController, enabled,
                [](const sp<android::gui::WindowInfosListener>& listener) {
                    SurfaceComposerClient::getDefault()->addWindowInfosListener(listener);
                    auto initialInfo = std::make_pair(std::vector<android::gui::WindowInfo>{},
                                                      std::vector<android::gui::DisplayInfo>{});
                    SurfaceComposerClient::getDefault()->addWindowInfosListener(listener,
                                                                                &initialInfo);
                    return initialInfo.second;
                },
                [](const sp<android::gui::WindowInfosListener>& listener) {
                    SurfaceComposerClient::getDefault()->removeWindowInfosListener(listener);
@@ -119,8 +123,9 @@ PointerController::PointerController(const sp<PointerControllerPolicyInterface>&

PointerController::PointerController(const sp<PointerControllerPolicyInterface>& policy,
                                     const sp<Looper>& looper, SpriteController& spriteController,
                                     bool enabled, WindowListenerConsumer registerListener,
                                     WindowListenerConsumer unregisterListener)
                                     bool enabled,
                                     const WindowListenerRegisterConsumer& registerListener,
                                     WindowListenerUnregisterConsumer unregisterListener)
      : mEnabled(enabled),
        mContext(policy, looper, spriteController, *this),
        mCursorController(mContext),
@@ -128,7 +133,8 @@ PointerController::PointerController(const sp<PointerControllerPolicyInterface>&
        mUnregisterWindowInfosListener(std::move(unregisterListener)) {
    std::scoped_lock lock(getLock());
    mLocked.presentation = Presentation::SPOT;
    registerListener(mDisplayInfoListener);
    const auto& initialDisplayInfos = registerListener(mDisplayInfoListener);
    onDisplayInfosChangedLocked(initialDisplayInfos);
}

PointerController::~PointerController() {
+6 −4
Original line number Diff line number Diff line
@@ -79,14 +79,16 @@ public:
    std::string dump() override;

protected:
    using WindowListenerConsumer =
    using WindowListenerRegisterConsumer = std::function<std::vector<gui::DisplayInfo>(
            const sp<android::gui::WindowInfosListener>&)>;
    using WindowListenerUnregisterConsumer =
            std::function<void(const sp<android::gui::WindowInfosListener>&)>;

    // Constructor used to test WindowInfosListener registration.
    PointerController(const sp<PointerControllerPolicyInterface>& policy, const sp<Looper>& looper,
                      SpriteController& spriteController, bool enabled,
                      WindowListenerConsumer registerListener,
                      WindowListenerConsumer unregisterListener);
                      const WindowListenerRegisterConsumer& registerListener,
                      WindowListenerUnregisterConsumer unregisterListener);

    PointerController(const sp<PointerControllerPolicyInterface>& policy, const sp<Looper>& looper,
                      SpriteController& spriteController, bool enabled);
@@ -129,7 +131,7 @@ private:
    };

    sp<DisplayInfoListener> mDisplayInfoListener;
    const WindowListenerConsumer mUnregisterWindowInfosListener;
    const WindowListenerUnregisterConsumer mUnregisterWindowInfosListener;

    const ui::Transform& getTransformForDisplayLocked(int displayId) const REQUIRES(getLock());

+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ void TouchSpotController::setSpots(const PointerCoords* spotCoords, const uint32
        const PointerCoords& c = spotCoords[spotIdToIndex[id]];
        ALOGD(" spot %d: position=(%0.3f, %0.3f), pressure=%0.3f, displayId=%" PRId32 ".", id,
              c.getAxisValue(AMOTION_EVENT_AXIS_X), c.getAxisValue(AMOTION_EVENT_AXIS_Y),
              c.getAxisValue(AMOTION_EVENT_AXIS_PRESSURE), displayId);
              c.getAxisValue(AMOTION_EVENT_AXIS_PRESSURE), mDisplayId);
    }
#endif

+3 −1
Original line number Diff line number Diff line
@@ -160,9 +160,11 @@ public:
          : PointerController(
                    policy, looper, spriteController,
                    /*enabled=*/true,
                    [&registeredListener](const sp<android::gui::WindowInfosListener>& listener) {
                    [&registeredListener](const sp<android::gui::WindowInfosListener>& listener)
                            -> std::vector<gui::DisplayInfo> {
                        // Register listener
                        registeredListener = listener;
                        return {};
                    },
                    [&registeredListener](const sp<android::gui::WindowInfosListener>& listener) {
                        // Unregister listener