Add touchableRegion to touch occlusion dump
And format type as decimal in case we can't name the enum.
Test: Verify logs
Change-Id: I0674f30597b67e3330f9053c7576fb7bf3dcf6ef
diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp
index 3135c19..7094c74 100644
--- a/services/inputflinger/dispatcher/InputDispatcher.cpp
+++ b/services/inputflinger/dispatcher/InputDispatcher.cpp
@@ -204,12 +204,12 @@
return true;
}
-static void dumpRegion(std::string& dump, const Region& region) {
+static std::string dumpRegion(const Region& region) {
if (region.isEmpty()) {
- dump += "<empty>";
- return;
+ return "<empty>";
}
+ std::string dump;
bool first = true;
Region::const_iterator cur = region.begin();
Region::const_iterator const tail = region.end();
@@ -222,6 +222,7 @@
dump += StringPrintf("[%d,%d][%d,%d]", cur->left, cur->top, cur->right, cur->bottom);
cur++;
}
+ return dump;
}
static std::string dumpQueue(const std::deque<DispatchEntry*>& queue, nsecs_t currentTime) {
@@ -2271,15 +2272,17 @@
std::string InputDispatcher::dumpWindowForTouchOcclusion(const InputWindowInfo* info,
bool isTouchedWindow) const {
- return StringPrintf(INDENT2 "* %stype=%s, package=%s/%" PRId32 ", mode=%s, alpha=%.2f, "
- "frame=[%" PRId32 ",%" PRId32 "][%" PRId32 ",%" PRId32
- "], window=%s, applicationInfo=%s, flags=%s\n",
+ return StringPrintf(INDENT2
+ "* %stype=%s, package=%s/%" PRId32 ", mode=%s, alpha=%.2f, "
+ "frame=[%" PRId32 ",%" PRId32 "][%" PRId32 ",%" PRId32
+ "], touchableRegion=%s, window=%s, applicationInfo=%s, flags={%s}\n",
(isTouchedWindow) ? "[TOUCHED] " : "",
- NamedEnum::string(info->type).c_str(), info->packageName.c_str(),
- info->ownerUid, toString(info->touchOcclusionMode).c_str(), info->alpha,
- info->frameLeft, info->frameTop, info->frameRight, info->frameBottom,
- info->name.c_str(), info->applicationInfo.name.c_str(),
- info->flags.string().c_str());
+ NamedEnum::string(info->type, "%" PRId32).c_str(),
+ info->packageName.c_str(), info->ownerUid,
+ toString(info->touchOcclusionMode).c_str(), info->alpha, info->frameLeft,
+ info->frameTop, info->frameRight, info->frameBottom,
+ dumpRegion(info->touchableRegion).c_str(), info->name.c_str(),
+ info->applicationInfo.name.c_str(), info->flags.string().c_str());
}
bool InputDispatcher::isTouchTrustedLocked(const TouchOcclusionInfo& occlusionInfo) const {
@@ -4484,7 +4487,7 @@
windowInfo->frameRight, windowInfo->frameBottom,
windowInfo->globalScaleFactor,
windowInfo->applicationInfo.name.c_str());
- dumpRegion(dump, windowInfo->touchableRegion);
+ dump += dumpRegion(windowInfo->touchableRegion);
dump += StringPrintf(", inputFeatures=%s",
windowInfo->inputFeatures.string().c_str());
dump += StringPrintf(", ownerPid=%d, ownerUid=%d, dispatchingTimeout=%" PRId64