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

Commit 9301db1b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add touchableRegion to touch occlusion dump"

parents 7cb176fa 53fc31e8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -115,10 +115,10 @@ public:
    // Do not specialize it to a large number to avoid performance issues.
    // The recommended maximum enum number to specialize is 64.
    template <typename E>
    static const std::string string(E val) {
    static const std::string string(E val, const char* fallbackFormat = "0x%08x") {
        std::string result;
        std::optional<std::string_view> enumString = enum_name(val);
        result += enumString ? enumString.value() : base::StringPrintf("0x%08x", val);
        result += enumString ? enumString.value() : base::StringPrintf(fallbackFormat, val);
        return result;
    }
};
+15 −12
Original line number Diff line number Diff line
@@ -204,12 +204,12 @@ static bool validateMotionEvent(int32_t action, int32_t actionButton, size_t poi
    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 @@ static void dumpRegion(std::string& dump, const Region& region) {
        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 @@ InputDispatcher::TouchOcclusionInfo InputDispatcher::computeTouchOcclusionInfoLo

std::string InputDispatcher::dumpWindowForTouchOcclusion(const InputWindowInfo* info,
                                                         bool isTouchedWindow) const {
    return StringPrintf(INDENT2 "* %stype=%s, package=%s/%" PRId32 ", mode=%s, alpha=%.2f, "
    return StringPrintf(INDENT2
                        "* %stype=%s, package=%s/%" PRId32 ", mode=%s, alpha=%.2f, "
                        "frame=[%" PRId32 ",%" PRId32 "][%" PRId32 ",%" PRId32
                                "], window=%s, applicationInfo=%s, flags=%s\n",
                        "], 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 @@ void InputDispatcher::dumpDispatchStateLocked(std::string& dump) {
                                         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