Enhance IME support in ActivityView for AAe.

Android auto embedded uses ActivtyViews to inject touch events from
default display host activity into activity in virtualDisplay. This
causes WindowManager to detect taps on both default and virtual display.
In order to make IME work in virtual display, we allow TapDetector for
non-default displays.
Note: This CL fixes major issues for making IME work in ActivityView
and does not completely fix it.
We'll have additional temporary fixes in Android Auto embedded branch till
there is better multi-display support.

Bug: 64400502
Test: Manual with AA's KitchenSink test app
Change-Id: Ia315a0015f97a55b78c155f86dbb1d8bf34f1b5c
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index d74e482..f0b9f17 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -1915,9 +1915,13 @@
             super.removeImmediately();
             if (DEBUG_DISPLAY) Slog.v(TAG_WM, "Removing display=" + this);
             mDimLayerController.close();
-            if (mDisplayId == DEFAULT_DISPLAY && mService.canDispatchPointerEvents()) {
-                mService.unregisterPointerEventListener(mTapDetector);
-                mService.unregisterPointerEventListener(mService.mMousePositionTracker);
+            if (mService.canDispatchPointerEvents()) {
+                if (mTapDetector != null) {
+                    mService.unregisterPointerEventListener(mTapDetector);
+                }
+                if (mDisplayId == DEFAULT_DISPLAY && mService.mMousePositionTracker != null) {
+                    mService.unregisterPointerEventListener(mService.mMousePositionTracker);
+                }
             }
         } finally {
             mRemovingDisplay = false;