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

Commit 366d0a15 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add vsync id and timestamp to WindowInfosListener" into udc-dev am:...

Merge "Add vsync id and timestamp to WindowInfosListener" into udc-dev am: de47bc29 am: 02609427

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22954274



Change-Id: I3c777ee93d50671f4f8942e0ec326d74585acb7d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents d735c910 02609427
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <android_runtime/Log.h>
#include <gui/DisplayInfo.h>
#include <gui/SurfaceComposerClient.h>
#include <gui/WindowInfosUpdate.h>
#include <nativehelper/JNIHelp.h>
#include <nativehelper/ScopedLocalFrame.h>
#include <utils/Log.h>
@@ -91,8 +92,7 @@ struct WindowInfosListener : public gui::WindowInfosListener {
    WindowInfosListener(JNIEnv* env, jobject listener)
          : mListener(env->NewWeakGlobalRef(listener)) {}

    void onWindowInfosChanged(const std::vector<WindowInfo>& windowInfos,
                              const std::vector<DisplayInfo>& displayInfos) override {
    void onWindowInfosChanged(const gui::WindowInfosUpdate& update) override {
        JNIEnv* env = AndroidRuntime::getJNIEnv();
        LOG_ALWAYS_FATAL_IF(env == nullptr, "Unable to retrieve JNIEnv in onWindowInfoChanged.");

@@ -103,8 +103,10 @@ struct WindowInfosListener : public gui::WindowInfosListener {
            return;
        }

        ScopedLocalRef<jobjectArray> jWindowHandlesArray(env, fromWindowInfos(env, windowInfos));
        ScopedLocalRef<jobjectArray> jDisplayInfoArray(env, fromDisplayInfos(env, displayInfos));
        ScopedLocalRef<jobjectArray> jWindowHandlesArray(env,
                                                         fromWindowInfos(env, update.windowInfos));
        ScopedLocalRef<jobjectArray> jDisplayInfoArray(env,
                                                       fromDisplayInfos(env, update.displayInfos));

        env->CallVoidMethod(listener, gListenerClassInfo.onWindowInfosChanged,
                            jWindowHandlesArray.get(), jDisplayInfoArray.get());
+2 −3
Original line number Diff line number Diff line
@@ -45,14 +45,13 @@ const ui::Transform kIdentityTransform;
// --- PointerController::DisplayInfoListener ---

void PointerController::DisplayInfoListener::onWindowInfosChanged(
        const std::vector<android::gui::WindowInfo>&,
        const std::vector<android::gui::DisplayInfo>& displayInfos) {
        const gui::WindowInfosUpdate& update) {
    std::scoped_lock lock(mLock);
    if (mPointerController == nullptr) return;

    // PointerController uses DisplayInfoListener's lock.
    base::ScopedLockAssertion assumeLocked(mPointerController->getLock());
    mPointerController->onDisplayInfosChangedLocked(displayInfos);
    mPointerController->onDisplayInfosChangedLocked(update.displayInfos);
}

void PointerController::DisplayInfoListener::onPointerControllerDestroyed() {
+2 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@

#include <PointerControllerInterface.h>
#include <gui/DisplayEventReceiver.h>
#include <gui/WindowInfosUpdate.h>
#include <input/DisplayViewport.h>
#include <input/Input.h>
#include <utils/BitSet.h>
@@ -114,8 +115,7 @@ private:
    class DisplayInfoListener : public gui::WindowInfosListener {
    public:
        explicit DisplayInfoListener(PointerController* pc) : mPointerController(pc){};
        void onWindowInfosChanged(const std::vector<android::gui::WindowInfo>&,
                                  const std::vector<android::gui::DisplayInfo>&) override;
        void onWindowInfosChanged(const gui::WindowInfosUpdate&) override;
        void onPointerControllerDestroyed();

        // This lock is also used by PointerController. See PointerController::getLock().
+1 −1
Original line number Diff line number Diff line
@@ -343,7 +343,7 @@ TEST_F(PointerControllerWindowInfoListenerTest,
        localListenerCopy = registeredListener;
    }
    EXPECT_EQ(nullptr, registeredListener) << "WindowInfosListener was not unregistered";
    localListenerCopy->onWindowInfosChanged({}, {});
    localListenerCopy->onWindowInfosChanged({{}, {}, 0, 0});
}

}  // namespace android