Use last focused window to control SysUI while IMC dialog is shown

This change fixes a bug that if a child window hides the system UI
but its parent activity window doesn't, the system UI may keep
showing and hiding infinitely.

Bug: b/111490047
Test: 1. atest WindowManagerSmokeTest
      2. atest CtsWindowManagerDeviceTestCases:LayoutTests
Change-Id: Id8bd6e80fe19051b97918089a05f2a12fc1a673d
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index c8c4b58..fb0c3bc 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -2493,8 +2493,8 @@
         return getWindowConfiguration().keepVisibleDeadAppWindowOnScreen();
     }
 
-    /** @return true if this window desires key events. */
-    boolean canReceiveKeys() {
+    @Override
+    public boolean canReceiveKeys() {
         return isVisibleOrAdding()
                 && (mViewVisibility == View.VISIBLE) && !mRemoveOnExit
                 && ((mAttrs.flags & WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) == 0)