summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Michael Wright <michaelwr@google.com> 2022-10-22 03:16:31 +0100
committer Michael Wright <michaelwr@google.com> 2022-11-11 14:04:12 +0000
commit72a89137e05ea2c0a51cbe2f10a0e953ae1e5f77 (patch)
treeb20da2d28b640b403460d9b0110399fb9f34c6fd
parent4a18c3e9b1bc98aa9e2f30d963bbd8f4f4adc430 (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.cpp15
-rw-r--r--libs/input/PointerController.h3
-rw-r--r--services/core/jni/com_android_server_input_InputManagerService.cpp4
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";