diff options
author | 2022-10-22 03:16:31 +0100 | |
---|---|---|
committer | 2022-11-11 14:04:12 +0000 | |
commit | 72a89137e05ea2c0a51cbe2f10a0e953ae1e5f77 (patch) | |
tree | b20da2d28b640b403460d9b0110399fb9f34c6fd | |
parent | 4a18c3e9b1bc98aa9e2f30d963bbd8f4f4adc430 (diff) |
Add dump for PointerController.
Just a simple dump to start, but start pushing more PointerController
information into bugreports.
Bug: 254277939
Test: manually inspect `dumpsys input`
Change-Id: I7ca637aa8a8f1cc1188eddcf694f7c4aea7d5821
-rw-r--r-- | libs/input/PointerController.cpp | 15 | ||||
-rw-r--r-- | libs/input/PointerController.h | 3 | ||||
-rw-r--r-- | services/core/jni/com_android_server_input_InputManagerService.cpp | 4 |
3 files changed, 22 insertions, 0 deletions
diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index 54f893e165f7..42606e3ee4df 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -22,10 +22,17 @@ #include <SkBlendMode.h> #include <SkCanvas.h> #include <SkColor.h> +#include <android-base/stringprintf.h> #include <android-base/thread_annotations.h> +#include <ftl/enum.h> + +#include <mutex> #include "PointerControllerContext.h" +#define INDENT " " +#define INDENT2 " " + namespace android { namespace { @@ -313,4 +320,12 @@ const ui::Transform& PointerController::getTransformForDisplayLocked(int display return it != di.end() ? it->transform : kIdentityTransform; } +void PointerController::dump(std::string& dump) { + dump += INDENT "PointerController:\n"; + std::scoped_lock lock(getLock()); + dump += StringPrintf(INDENT2 "Presentation: %s\n", + ftl::enum_string(mLocked.presentation).c_str()); + dump += StringPrintf(INDENT2 "Pointer Display ID: %" PRIu32 "\n", mLocked.pointerDisplayId); +} + } // namespace android diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h index 33480e8fa194..48d5a5756a69 100644 --- a/libs/input/PointerController.h +++ b/libs/input/PointerController.h @@ -27,6 +27,7 @@ #include <map> #include <memory> +#include <string> #include <vector> #include "MouseCursorController.h" @@ -75,6 +76,8 @@ public: void onDisplayInfosChangedLocked(const std::vector<gui::DisplayInfo>& displayInfos) REQUIRES(getLock()); + void dump(std::string& dump); + protected: using WindowListenerConsumer = std::function<void(const sp<android::gui::WindowInfosListener>&)>; diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp index 0d872370dcdc..31971246e9e7 100644 --- a/services/core/jni/com_android_server_input_InputManagerService.cpp +++ b/services/core/jni/com_android_server_input_InputManagerService.cpp @@ -450,6 +450,10 @@ void NativeInputManager::dump(std::string& dump) { dump += StringPrintf(INDENT "Pointer Capture: %s, seq=%" PRIu32 "\n", mLocked.pointerCaptureRequest.enable ? "Enabled" : "Disabled", mLocked.pointerCaptureRequest.seq); + auto pointerController = mLocked.pointerController.lock(); + if (pointerController != nullptr) { + pointerController->dump(dump); + } } dump += "\n"; |