Loading core/jni/android_window_WindowInfosListener.cpp +10 −8 Original line number Diff line number Diff line Loading @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ #undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code #define LOG_TAG "WindowInfosListener" Loading Loading @@ -136,27 +135,30 @@ jlong nativeCreate(JNIEnv* env, jclass clazz, jobject obj) { } void destroyNativeService(void* ptr) { WindowInfosListener* listener = reinterpret_cast<WindowInfosListener*>(ptr); sp<WindowInfosListener> listener = sp<WindowInfosListener>::fromExisting(reinterpret_cast<WindowInfosListener*>(ptr)); SurfaceComposerClient::getDefault()->removeWindowInfosListener(listener); listener->decStrong((void*)nativeCreate); } jobject nativeRegister(JNIEnv* env, jclass clazz, jlong ptr) { sp<WindowInfosListener> listener = reinterpret_cast<WindowInfosListener*>(ptr); gui::WindowInfosUpdate initialInfo; SurfaceComposerClient::getDefault()->addWindowInfosListener(listener, &initialInfo); sp<WindowInfosListener> listener = sp<WindowInfosListener>::fromExisting(reinterpret_cast<WindowInfosListener*>(ptr)); android::base::Result<gui::WindowInfosUpdate> result = SurfaceComposerClient::getDefault()->addWindowInfosListener(std::move(listener)); ScopedLocalRef<jobjectArray> jWindowHandlesArray(env, fromWindowInfos(env, initialInfo.windowInfos)); fromWindowInfos(env, result->windowInfos)); ScopedLocalRef<jobjectArray> jDisplayInfoArray(env, fromDisplayInfos(env, initialInfo.displayInfos)); fromDisplayInfos(env, result->displayInfos)); return env->NewObject(gPairClassInfo.clazz, gPairClassInfo.ctor, jWindowHandlesArray.get(), jDisplayInfoArray.get()); } void nativeUnregister(JNIEnv* env, jclass clazz, jlong ptr) { sp<WindowInfosListener> listener = reinterpret_cast<WindowInfosListener*>(ptr); sp<WindowInfosListener> listener = sp<WindowInfosListener>::fromExisting(reinterpret_cast<WindowInfosListener*>(ptr)); SurfaceComposerClient::getDefault()->removeWindowInfosListener(listener); } Loading libs/input/PointerController.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <SkBlendMode.h> #include <SkCanvas.h> #include <SkColor.h> #include <android-base/logging.h> #include <android-base/stringprintf.h> #include <android-base/thread_annotations.h> #include <ftl/enum.h> Loading Loading @@ -105,10 +106,10 @@ PointerController::PointerController(const sp<PointerControllerPolicyInterface>& : PointerController( policy, looper, spriteController, [](const sp<android::gui::WindowInfosListener>& listener) { gui::WindowInfosUpdate initialInfo; SurfaceComposerClient::getDefault()->addWindowInfosListener(listener, &initialInfo); return initialInfo.displayInfos; android::base::Result<gui::WindowInfosUpdate> result = SurfaceComposerClient::getDefault()->addWindowInfosListener(listener); LOG_IF(FATAL, !result.ok()) << "Can't add window info listener"; return result->displayInfos; }, [](const sp<android::gui::WindowInfosListener>& listener) { SurfaceComposerClient::getDefault()->removeWindowInfosListener(listener); Loading Loading
core/jni/android_window_WindowInfosListener.cpp +10 −8 Original line number Diff line number Diff line Loading @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ #undef ANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION // TODO:remove this and fix code #define LOG_TAG "WindowInfosListener" Loading Loading @@ -136,27 +135,30 @@ jlong nativeCreate(JNIEnv* env, jclass clazz, jobject obj) { } void destroyNativeService(void* ptr) { WindowInfosListener* listener = reinterpret_cast<WindowInfosListener*>(ptr); sp<WindowInfosListener> listener = sp<WindowInfosListener>::fromExisting(reinterpret_cast<WindowInfosListener*>(ptr)); SurfaceComposerClient::getDefault()->removeWindowInfosListener(listener); listener->decStrong((void*)nativeCreate); } jobject nativeRegister(JNIEnv* env, jclass clazz, jlong ptr) { sp<WindowInfosListener> listener = reinterpret_cast<WindowInfosListener*>(ptr); gui::WindowInfosUpdate initialInfo; SurfaceComposerClient::getDefault()->addWindowInfosListener(listener, &initialInfo); sp<WindowInfosListener> listener = sp<WindowInfosListener>::fromExisting(reinterpret_cast<WindowInfosListener*>(ptr)); android::base::Result<gui::WindowInfosUpdate> result = SurfaceComposerClient::getDefault()->addWindowInfosListener(std::move(listener)); ScopedLocalRef<jobjectArray> jWindowHandlesArray(env, fromWindowInfos(env, initialInfo.windowInfos)); fromWindowInfos(env, result->windowInfos)); ScopedLocalRef<jobjectArray> jDisplayInfoArray(env, fromDisplayInfos(env, initialInfo.displayInfos)); fromDisplayInfos(env, result->displayInfos)); return env->NewObject(gPairClassInfo.clazz, gPairClassInfo.ctor, jWindowHandlesArray.get(), jDisplayInfoArray.get()); } void nativeUnregister(JNIEnv* env, jclass clazz, jlong ptr) { sp<WindowInfosListener> listener = reinterpret_cast<WindowInfosListener*>(ptr); sp<WindowInfosListener> listener = sp<WindowInfosListener>::fromExisting(reinterpret_cast<WindowInfosListener*>(ptr)); SurfaceComposerClient::getDefault()->removeWindowInfosListener(listener); } Loading
libs/input/PointerController.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <SkBlendMode.h> #include <SkCanvas.h> #include <SkColor.h> #include <android-base/logging.h> #include <android-base/stringprintf.h> #include <android-base/thread_annotations.h> #include <ftl/enum.h> Loading Loading @@ -105,10 +106,10 @@ PointerController::PointerController(const sp<PointerControllerPolicyInterface>& : PointerController( policy, looper, spriteController, [](const sp<android::gui::WindowInfosListener>& listener) { gui::WindowInfosUpdate initialInfo; SurfaceComposerClient::getDefault()->addWindowInfosListener(listener, &initialInfo); return initialInfo.displayInfos; android::base::Result<gui::WindowInfosUpdate> result = SurfaceComposerClient::getDefault()->addWindowInfosListener(listener); LOG_IF(FATAL, !result.ok()) << "Can't add window info listener"; return result->displayInfos; }, [](const sp<android::gui::WindowInfosListener>& listener) { SurfaceComposerClient::getDefault()->removeWindowInfosListener(listener); Loading