Clear last focus of previous display when reparenting

Assume 2 displays:
 D0 contains activities A, X
 D1 contains an activity B

The update order of focus is from top to bottom. When reparenting
X from D0 to D1, and D1 becomes the top display:
 1) D1: X gains focus, B loses focus
 2) D0: A gains focus, X loses focus
That results the top activity X on top display 0 does not have focus
(the state in client side view root).

Bug: 119664976
Test: atest DisplayContentTests#testClearLastFocusWhenReparentingFocusedWindow
Test: atest WindowFocusTests
Change-Id: I5bf3546cde3ac6d4be45d1a971cda033663cc919
diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
index c1655bc..228ece5 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
@@ -549,6 +549,18 @@
     }
 
     @Test
+    public void testClearLastFocusWhenReparentingFocusedWindow() {
+        final DisplayContent defaultDisplay = mWm.getDefaultDisplayContentLocked();
+        final WindowState window = createWindow(null /* parent */, TYPE_BASE_APPLICATION,
+                defaultDisplay, "window");
+        defaultDisplay.mLastFocus = window;
+        mDisplayContent.mCurrentFocus = window;
+        mDisplayContent.reParentWindowToken(window.mToken);
+
+        assertNull(defaultDisplay.mLastFocus);
+    }
+
+    @Test
     public void testGetPreferredOptionsPanelGravityFromDifferentDisplays() {
         final DisplayContent portraitDisplay = createNewDisplay();
         portraitDisplay.mInitialDisplayHeight = 2000;