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

Commit f20b6ba6 authored by Harry Cutts's avatar Harry Cutts
Browse files

InputDevice: modernize IDC probe debugging logs

* Use the new-style stream syntax for readability
* Upgrade DEBUGs to INFOs (since the new-style stream syntax filters
  DEBUG logs by default, and since these are hidden behind a
  compile-time constant it's fine to promote them)
* Include the reason we didn't find a particular IDC file

Bug: 365593937
Test: set DEBUG_PROBE to true, check logcat for the InputReader tag
      while connecting an input device
Flag: EXEMPT code disabled by compile-time constant
Change-Id: I7801252b688b4869911792aa66d2dcdceed8713b
parent 90a75721
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -389,6 +389,7 @@ enum class InputDeviceConfigurationFileType : int32_t {
    CONFIGURATION = 0,     /* .idc file */
    KEY_LAYOUT = 1,        /* .kl file */
    KEY_CHARACTER_MAP = 2, /* .kcm file */
    ftl_last = KEY_CHARACTER_MAP,
};

/*
+17 −17
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <unistd.h>
#include <ctype.h>

#include <android-base/logging.h>
#include <android-base/properties.h>
#include <android-base/stringprintf.h>
#include <ftl/enum.h>
@@ -31,6 +32,9 @@ using android::base::StringPrintf;

namespace android {

// Set to true to log detailed debugging messages about IDC file probing.
static constexpr bool DEBUG_PROBE = false;

static const char* CONFIGURATION_FILE_DIR[] = {
        "idc/",
        "keylayout/",
@@ -114,15 +118,14 @@ std::string getInputDeviceConfigurationFilePathByName(
    for (const auto& prefix : pathPrefixes) {
        path = prefix;
        appendInputDeviceConfigurationFileRelativePath(path, name, type);
#if DEBUG_PROBE
        ALOGD("Probing for system provided input device configuration file: path='%s'",
              path.c_str());
#endif
        if (!access(path.c_str(), R_OK)) {
#if DEBUG_PROBE
            ALOGD("Found");
#endif
            LOG_IF(INFO, DEBUG_PROBE)
                    << "Found system-provided input device configuration file at " << path;
            return path;
        } else {
            LOG_IF(ERROR, DEBUG_PROBE)
                    << "Didn't find system-provided input device configuration file at " << path
                    << ": " << strerror(errno);
        }
    }

@@ -135,21 +138,18 @@ std::string getInputDeviceConfigurationFilePathByName(
    }
    path += "/system/devices/";
    appendInputDeviceConfigurationFileRelativePath(path, name, type);
#if DEBUG_PROBE
    ALOGD("Probing for system user input device configuration file: path='%s'", path.c_str());
#endif
    if (!access(path.c_str(), R_OK)) {
#if DEBUG_PROBE
        ALOGD("Found");
#endif
        LOG_IF(INFO, DEBUG_PROBE) << "Found system user input device configuration file at "
                                  << path;
        return path;
    } else {
        LOG_IF(ERROR, DEBUG_PROBE) << "Didn't find system user input device configuration file at "
                                   << path << ": " << strerror(errno);
    }

    // Not found.
#if DEBUG_PROBE
    ALOGD("Probe failed to find input device configuration file: name='%s', type=%d",
            name.c_str(), type);
#endif
    LOG_IF(INFO, DEBUG_PROBE) << "Probe failed to find input device configuration file with name '"
                              << name << "' and type " << ftl::enum_string(type);
    return "";
}