Drop touch events when no window was touched.

Prevent spurious ANRs in the case where an input event is simply
undeliverable because there is no window at the touched location.
Previously, we would assume that we were just waiting for an
application to start and become available to handle the event but
this assumption is no longer valid.

Monkeys in particular have a tendency to inject events outside
of the boundaries of the display which results in spurious ANRs.
So we should just reject them.

Bug: 9774124
Change-Id: I5c40ce4c942f0557593a229dc5253a0e0bdb8466
diff --git a/services/java/com/android/server/wm/InputMonitor.java b/services/java/com/android/server/wm/InputMonitor.java
index d22178d..9620612 100644
--- a/services/java/com/android/server/wm/InputMonitor.java
+++ b/services/java/com/android/server/wm/InputMonitor.java
@@ -312,6 +312,7 @@
     }
 
     /* Notifies that the input device configuration has changed. */
+    @Override
     public void notifyConfigurationChanged() {
         mService.sendNewConfiguration();
 
@@ -337,12 +338,14 @@
     }
 
     /* Notifies that the lid switch changed state. */
+    @Override
     public void notifyLidSwitchChanged(long whenNanos, boolean lidOpen) {
         mService.mPolicy.notifyLidSwitchChanged(whenNanos, lidOpen);
     }
     
     /* Provides an opportunity for the window manager policy to intercept early key
      * processing as soon as the key has been read from the device. */
+    @Override
     public int interceptKeyBeforeQueueing(
             KeyEvent event, int policyFlags, boolean isScreenOn) {
         return mService.mPolicy.interceptKeyBeforeQueueing(event, policyFlags, isScreenOn);
@@ -351,12 +354,14 @@
     /* Provides an opportunity for the window manager policy to intercept early
      * motion event processing when the screen is off since these events are normally
      * dropped. */
+    @Override
     public int interceptMotionBeforeQueueingWhenScreenOff(int policyFlags) {
         return mService.mPolicy.interceptMotionBeforeQueueingWhenScreenOff(policyFlags);
     }
 
     /* Provides an opportunity for the window manager policy to process a key before
      * ordinary dispatch. */
+    @Override
     public long interceptKeyBeforeDispatching(
             InputWindowHandle focus, KeyEvent event, int policyFlags) {
         WindowState windowState = focus != null ? (WindowState) focus.windowState : null;
@@ -365,6 +370,7 @@
     
     /* Provides an opportunity for the window manager policy to process a key that
      * the application did not handle. */
+    @Override
     public KeyEvent dispatchUnhandledKey(
             InputWindowHandle focus, KeyEvent event, int policyFlags) {
         WindowState windowState = focus != null ? (WindowState) focus.windowState : null;
@@ -372,6 +378,7 @@
     }
 
     /* Callback to get pointer layer. */
+    @Override
     public int getPointerLayer() {
         return mService.mPolicy.windowTypeToLayerLw(WindowManager.LayoutParams.TYPE_POINTER)
                 * WindowManagerService.TYPE_LAYER_MULTIPLIER