Add InputReporter interface to InputDispatcher

This adds a new library to inputflinger, libinputreporter, that handles
events reported from InputDispatcher.

The CL makes InputDispatcher notify InputReporter for two events:
- Unhandled Keys: Keys that were not handled by the system or apps. A key
event is unhandled if:
   - The event was not handled and there is no fallback key; or
   - The event was not handled and it has a fallback key,
       but the fallback key was not handled.
- Dropped Keys: Key events can be dropped for several reasons, which
can be seen in InputReporter::DropReason.

Currently, the default implementation of InputReporter does nothing when
it recieves a dropped or unhandled key notification. The InputReporter
is created via its factory method, createInputReporter().

Bug: 119312287
Test: manual: Build, and verify using log output
Change-Id: I90ac525d648bb75e0bc8532f68f6a9e4ab51d54b
diff --git a/services/inputflinger/Android.bp b/services/inputflinger/Android.bp
index 0d8d34f..843eb37 100644
--- a/services/inputflinger/Android.bp
+++ b/services/inputflinger/Android.bp
@@ -22,6 +22,7 @@
 
     shared_libs: [
         "libinputflinger_base",
+        "libinputreporter",
         "libinputreader",
         "libbase",
         "libbinder",
@@ -125,6 +126,35 @@
     ],
 }
 
+cc_library_shared {
+    name: "libinputreporter",
+
+    srcs: [
+        "InputReporter.cpp",
+    ],
+
+    shared_libs: [
+        "libbase",
+        "liblog",
+        "libutils",
+    ],
+
+    header_libs: [
+        "libinputflinger_headers",
+    ],
+
+    export_header_lib_headers: [
+        "libinputflinger_headers",
+    ],
+
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+        "-Wno-unused-parameter",
+    ],
+}
+
 subdirs = [
     "host",
     "tests",