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

Commit edf6a22a authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add display topology to input dump" into main

parents 6075c6ae 6b512040
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ struct DisplayTopologyAdjacentDisplay {
    DisplayTopologyPosition position;
    // The offset in DP of the adjacent display, relative to the source display.
    float offsetDp;

    std::string dump() const;
};

/**
@@ -57,6 +59,7 @@ struct DisplayTopologyGraph {
    std::unordered_map<ui::LogicalDisplayId, int> displaysDensity;

    bool isValid() const;
    std::string dump() const;
};

} // namespace android
+39 −0
Original line number Diff line number Diff line
@@ -17,15 +17,20 @@
#define LOG_TAG "DisplayTopologyValidator"

#include <android-base/logging.h>
#include <android-base/stringprintf.h>
#include <ftl/enum.h>
#include <input/DisplayTopologyGraph.h>
#include <input/PrintTools.h>
#include <ui/LogicalDisplayId.h>

#include <algorithm>

#define INDENT "  "

namespace android {

namespace {

DisplayTopologyPosition getOppositePosition(DisplayTopologyPosition position) {
    switch (position) {
        case DisplayTopologyPosition::LEFT:
@@ -95,11 +100,45 @@ bool validateDensities(const android::DisplayTopologyGraph& displayTopologyGraph
    return true;
}

std::string logicalDisplayIdToString(const ui::LogicalDisplayId& displayId) {
    return base::StringPrintf("displayId(%d)", displayId.val());
}

std::string adjacentDisplayToString(const DisplayTopologyAdjacentDisplay& adjacentDisplay) {
    return adjacentDisplay.dump();
}

std::string adjacentDisplayVectorToString(
        const std::vector<DisplayTopologyAdjacentDisplay>& adjacentDisplays) {
    return dumpVector(adjacentDisplays, adjacentDisplayToString);
}

} // namespace

std::string DisplayTopologyAdjacentDisplay::dump() const {
    std::string dump;
    dump += base::StringPrintf("DisplayTopologyAdjacentDisplay: {displayId: %d, position: %s, "
                               "offsetDp: %f}",
                               displayId.val(), ftl::enum_string(position).c_str(), offsetDp);
    return dump;
}

bool DisplayTopologyGraph::isValid() const {
    return validatePrimaryDisplay(*this) && validateTopologyGraph(*this) &&
            validateDensities(*this);
}

std::string DisplayTopologyGraph::dump() const {
    std::string dump;
    dump += base::StringPrintf("PrimaryDisplayId: %d\n", primaryDisplayId.val());
    dump += base::StringPrintf("TopologyGraph:\n");
    dump += addLinePrefix(dumpMap(graph, logicalDisplayIdToString, adjacentDisplayVectorToString),
                          INDENT);
    dump += "\n";
    dump += base::StringPrintf("DisplaysDensity:\n");
    dump += addLinePrefix(dumpMap(displaysDensity, logicalDisplayIdToString), INDENT);
    dump += "\n";
    return dump;
}

} // namespace android
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#include "PointerChoreographer.h"

#define INDENT "  "
#define INDENT2 "    "

namespace android {

@@ -647,6 +648,8 @@ void PointerChoreographer::dump(std::string& dump) {
        std::string pointerControllerDump = addLinePrefix(drawingTabletController->dump(), INDENT);
        dump += INDENT + std::to_string(deviceId) + " : " + pointerControllerDump;
    }
    dump += INDENT "DisplayTopologyGraph:\n";
    dump += addLinePrefix(mTopology.dump(), INDENT2);
    dump += "\n";
}

+3 −0
Original line number Diff line number Diff line
@@ -5222,6 +5222,9 @@ std::string InputDispatcher::DispatcherWindowInfo::dumpDisplayAndWindowInfo() co
    } else {
        dump += "Displays: <none>\n";
    }
    dump += "DisplayTopologyGraph:\n";
    dump += addLinePrefix(mTopology.dump(), INDENT);
    dump += "\n";
    return dump;
}