diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 2 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java | 13 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index e0e61fd52812..8ad6b7817f4f 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -7642,6 +7642,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A              // This could only happen when the window is removed from hierarchy. So do not keep its              // reference anymore.              mStartingWindow = null; +            mStartingData = null; +            mStartingSurface = null;          }          if (mChildren.size() == 0 && mVisibleSetFromTransferredStartingWindow) {              // We set the visible state to true for the token from a transferred starting diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java index 70319754253b..83a528d3cc61 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java @@ -2745,6 +2745,19 @@ public class ActivityRecordTests extends WindowTestsBase {          assertNoStartingWindow(activity);      } +    @Test +    public void testPostCleanupStartingWindow() { +        registerTestStartingWindowOrganizer(); +        final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); +        activity.addStartingWindow(mPackageName, android.R.style.Theme, null, true, true, false, +                true, false, false, false); +        waitUntilHandlersIdle(); +        assertHasStartingWindow(activity); +        // Simulate Shell remove starting window actively. +        activity.mStartingWindow.removeImmediately(); +        assertNoStartingWindow(activity); +    } +      private void testLegacySplashScreen(int targetSdk, int verifyType) {          final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build();          activity.mTargetSdk = targetSdk; |