Loading include/input/PrintTools.h +11 −4 Original line number Diff line number Diff line Loading @@ -19,13 +19,18 @@ #include <bitset> #include <map> #include <optional> #include <set> #include <ranges> #include <sstream> #include <string> #include <vector> namespace android { namespace internal { template <typename T> concept Container = std::ranges::range<T>; } template <size_t N> std::string bitsetToString(const std::bitset<N>& bitset) { if (bitset.none()) { Loading Loading @@ -72,10 +77,12 @@ inline std::string toString(const std::optional<T>& optional, /** * Convert a set of integral types to string. */ template <typename T> std::string dumpSet(const std::set<T>& v, std::string (*toString)(const T&) = constToString) { template <internal::Container T> std::string dumpContainer( const T& container, std::string (*toString)(const std::ranges::range_value_t<T>&) = constToString) { std::string out; for (const T& entry : v) { for (const auto& entry : container) { out += out.empty() ? "{" : ", "; out += toString(entry); } Loading libs/input/InputConsumerNoResampling.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define ATRACE_TAG ATRACE_TAG_INPUT #include <inttypes.h> #include <set> #include <android-base/logging.h> #include <android-base/properties.h> Loading services/inputflinger/NotifyArgs.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -206,4 +206,9 @@ const char* toString(const NotifyArgs& args) { return std::visit(toStringVisitor, args); } std::ostream& operator<<(std::ostream& out, const NotifyArgs& args) { out << toString(args); return out; } } // namespace android services/inputflinger/PreferStylusOverTouchBlocker.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -216,10 +216,10 @@ static std::string dumpArgs(const NotifyMotionArgs& args) { std::string PreferStylusOverTouchBlocker::dump() const { std::string out; out += "mActiveStyli: " + dumpSet(mActiveStyli) + "\n"; out += "mActiveStyli: " + dumpContainer(mActiveStyli) + "\n"; out += "mLastTouchEvents: " + dumpMap(mLastTouchEvents, constToString, dumpArgs) + "\n"; out += "mDevicesWithMixedToolType: " + dumpSet(mDevicesWithMixedToolType) + "\n"; out += "mCanceledDevices: " + dumpSet(mCanceledDevices) + "\n"; out += "mDevicesWithMixedToolType: " + dumpContainer(mDevicesWithMixedToolType) + "\n"; out += "mCanceledDevices: " + dumpContainer(mCanceledDevices) + "\n"; return out; } Loading services/inputflinger/UnwantedInteractionBlocker.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -727,7 +727,7 @@ std::vector<NotifyMotionArgs> PalmRejector::processMotion(const NotifyMotionArgs if (!std::includes(oldSuppressedIds.begin(), oldSuppressedIds.end(), mSuppressedPointerIds.begin(), mSuppressedPointerIds.end())) { ALOGI("Palm detected, removing pointer ids %s after %" PRId64 "ms from %s", dumpSet(mSuppressedPointerIds).c_str(), ns2ms(args.eventTime - args.downTime), dumpContainer(mSuppressedPointerIds).c_str(), ns2ms(args.eventTime - args.downTime), args.dump().c_str()); } Loading @@ -748,7 +748,7 @@ std::string PalmRejector::dump() const { out += "mSlotState:\n"; out += addLinePrefix(mSlotState.dump(), " "); out += "mSuppressedPointerIds: "; out += dumpSet(mSuppressedPointerIds) + "\n"; out += dumpContainer(mSuppressedPointerIds) + "\n"; std::stringstream state; state << *mSharedPalmState; out += "mSharedPalmState: " + state.str() + "\n"; Loading Loading
include/input/PrintTools.h +11 −4 Original line number Diff line number Diff line Loading @@ -19,13 +19,18 @@ #include <bitset> #include <map> #include <optional> #include <set> #include <ranges> #include <sstream> #include <string> #include <vector> namespace android { namespace internal { template <typename T> concept Container = std::ranges::range<T>; } template <size_t N> std::string bitsetToString(const std::bitset<N>& bitset) { if (bitset.none()) { Loading Loading @@ -72,10 +77,12 @@ inline std::string toString(const std::optional<T>& optional, /** * Convert a set of integral types to string. */ template <typename T> std::string dumpSet(const std::set<T>& v, std::string (*toString)(const T&) = constToString) { template <internal::Container T> std::string dumpContainer( const T& container, std::string (*toString)(const std::ranges::range_value_t<T>&) = constToString) { std::string out; for (const T& entry : v) { for (const auto& entry : container) { out += out.empty() ? "{" : ", "; out += toString(entry); } Loading
libs/input/InputConsumerNoResampling.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define ATRACE_TAG ATRACE_TAG_INPUT #include <inttypes.h> #include <set> #include <android-base/logging.h> #include <android-base/properties.h> Loading
services/inputflinger/NotifyArgs.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -206,4 +206,9 @@ const char* toString(const NotifyArgs& args) { return std::visit(toStringVisitor, args); } std::ostream& operator<<(std::ostream& out, const NotifyArgs& args) { out << toString(args); return out; } } // namespace android
services/inputflinger/PreferStylusOverTouchBlocker.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -216,10 +216,10 @@ static std::string dumpArgs(const NotifyMotionArgs& args) { std::string PreferStylusOverTouchBlocker::dump() const { std::string out; out += "mActiveStyli: " + dumpSet(mActiveStyli) + "\n"; out += "mActiveStyli: " + dumpContainer(mActiveStyli) + "\n"; out += "mLastTouchEvents: " + dumpMap(mLastTouchEvents, constToString, dumpArgs) + "\n"; out += "mDevicesWithMixedToolType: " + dumpSet(mDevicesWithMixedToolType) + "\n"; out += "mCanceledDevices: " + dumpSet(mCanceledDevices) + "\n"; out += "mDevicesWithMixedToolType: " + dumpContainer(mDevicesWithMixedToolType) + "\n"; out += "mCanceledDevices: " + dumpContainer(mCanceledDevices) + "\n"; return out; } Loading
services/inputflinger/UnwantedInteractionBlocker.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -727,7 +727,7 @@ std::vector<NotifyMotionArgs> PalmRejector::processMotion(const NotifyMotionArgs if (!std::includes(oldSuppressedIds.begin(), oldSuppressedIds.end(), mSuppressedPointerIds.begin(), mSuppressedPointerIds.end())) { ALOGI("Palm detected, removing pointer ids %s after %" PRId64 "ms from %s", dumpSet(mSuppressedPointerIds).c_str(), ns2ms(args.eventTime - args.downTime), dumpContainer(mSuppressedPointerIds).c_str(), ns2ms(args.eventTime - args.downTime), args.dump().c_str()); } Loading @@ -748,7 +748,7 @@ std::string PalmRejector::dump() const { out += "mSlotState:\n"; out += addLinePrefix(mSlotState.dump(), " "); out += "mSuppressedPointerIds: "; out += dumpSet(mSuppressedPointerIds) + "\n"; out += dumpContainer(mSuppressedPointerIds) + "\n"; std::stringstream state; state << *mSharedPalmState; out += "mSharedPalmState: " + state.str() + "\n"; Loading