Use NamedEnum for printing Entry type
Currently, we are using InputMessage::typeToString, a manually written
function, to print the entry type.
Let's use "NamedEnum" instead to simplify the process of adding new
types.
Bug: 167947340
Test: compile only
Change-Id: I26d0a469bf93adbe2795d8a378c25e6ded891274
diff --git a/include/input/InputTransport.h b/include/input/InputTransport.h
index 11b714f..3b46cb5 100644
--- a/include/input/InputTransport.h
+++ b/include/input/InputTransport.h
@@ -181,21 +181,6 @@
bool isValid(size_t actualSize) const;
size_t size() const;
void getSanitizedCopy(InputMessage* msg) const;
-
- static const char* typeToString(Type type) {
- switch (type) {
- case Type::KEY:
- return "KEY";
- case Type::MOTION:
- return "MOTION";
- case Type::FINISHED:
- return "FINISHED";
- case Type::FOCUS:
- return "FOCUS";
- case Type::CAPTURE:
- return "CAPTURE";
- }
- }
};
/*
diff --git a/libs/input/Android.bp b/libs/input/Android.bp
index 4253610..6f79f4b 100644
--- a/libs/input/Android.bp
+++ b/libs/input/Android.bp
@@ -83,13 +83,13 @@
"InputWindow.cpp",
"android/FocusRequest.aidl",
"android/InputApplicationInfo.aidl",
+ "android/os/BlockUntrustedTouchesMode.aidl",
"android/os/IInputConstants.aidl",
+ "android/os/IInputFlinger.aidl",
"android/os/InputEventInjectionResult.aidl",
"android/os/InputEventInjectionSync.aidl",
- "android/os/TouchOcclusionMode.aidl",
- "android/os/BlockUntrustedTouchesMode.aidl",
- "android/os/IInputFlinger.aidl",
"android/os/ISetInputWindowsListener.aidl",
+ "android/os/TouchOcclusionMode.aidl",
],
export_shared_lib_headers: ["libbinder"],
diff --git a/libs/input/InputTransport.cpp b/libs/input/InputTransport.cpp
index 6218fdc..1e47a3c 100644
--- a/libs/input/InputTransport.cpp
+++ b/libs/input/InputTransport.cpp
@@ -34,6 +34,7 @@
#include <utils/Trace.h>
#include <input/InputTransport.h>
+#include <input/NamedEnum.h>
using android::base::StringPrintf;
@@ -610,8 +611,8 @@
return result;
}
if (msg.header.type != InputMessage::Type::FINISHED) {
- ALOGE("channel '%s' publisher ~ Received unexpected message of type %d from consumer",
- mChannel->getName().c_str(), msg.header.type);
+ ALOGE("channel '%s' publisher ~ Received unexpected %s message from consumer",
+ mChannel->getName().c_str(), NamedEnum::string(msg.header.type).c_str());
return UNKNOWN_ERROR;
}
callback(msg.header.seq, msg.body.finished.handled == 1, msg.body.finished.consumeTime);
@@ -753,8 +754,9 @@
}
case InputMessage::Type::FINISHED: {
- LOG_ALWAYS_FATAL("Consumed a FINISHED message, which should never be seen by "
- "InputConsumer!");
+ LOG_ALWAYS_FATAL("Consumed a %s message, which should never be seen by "
+ "InputConsumer!",
+ NamedEnum::string(mMsg.header.type).c_str());
break;
}
@@ -1299,14 +1301,14 @@
out = out + "mChannel = " + mChannel->getName() + "\n";
out = out + "mMsgDeferred: " + toString(mMsgDeferred) + "\n";
if (mMsgDeferred) {
- out = out + "mMsg : " + InputMessage::typeToString(mMsg.header.type) + "\n";
+ out = out + "mMsg : " + NamedEnum::string(mMsg.header.type) + "\n";
}
out += "Batches:\n";
for (const Batch& batch : mBatches) {
out += " Batch:\n";
for (const InputMessage& msg : batch.samples) {
out += android::base::StringPrintf(" Message %" PRIu32 ": %s ", msg.header.seq,
- InputMessage::typeToString(msg.header.type));
+ NamedEnum::string(msg.header.type).c_str());
switch (msg.header.type) {
case InputMessage::Type::KEY: {
out += android::base::StringPrintf("action=%s keycode=%" PRId32,
diff --git a/services/inputflinger/host/InputFlinger.h b/services/inputflinger/host/InputFlinger.h
index 47773d9..8112038 100644
--- a/services/inputflinger/host/InputFlinger.h
+++ b/services/inputflinger/host/InputFlinger.h
@@ -43,19 +43,19 @@
InputFlinger() ANDROID_API;
- virtual status_t dump(int fd, const Vector<String16>& args);
+ status_t dump(int fd, const Vector<String16>& args) override;
binder::Status setInputWindows(const std::vector<InputWindowInfo>&,
- const sp<ISetInputWindowsListener>&) {
+ const sp<ISetInputWindowsListener>&) override {
return binder::Status::ok();
}
- binder::Status createInputChannel(const std::string&, InputChannel*) {
+ binder::Status createInputChannel(const std::string&, InputChannel*) override {
return binder::Status::ok();
}
- binder::Status removeInputChannel(const sp<IBinder>&) { return binder::Status::ok(); }
- binder::Status setFocusedWindow(const FocusRequest&) { return binder::Status::ok(); }
+ binder::Status removeInputChannel(const sp<IBinder>&) override { return binder::Status::ok(); }
+ binder::Status setFocusedWindow(const FocusRequest&) override { return binder::Status::ok(); }
private:
- virtual ~InputFlinger();
+ ~InputFlinger() override;
void dumpInternal(String8& result);