Fix ReplaceWindowTests#testReplaceWindow_Dock_Relaunch() failure
Window was destroyed and added back when activity relaunched while being moved from fullscreen stack to split-screen primary stack. The activity window was recreated during the relaunch process because RAC#ensureActivitiesVisible() executed recursively and the inner calls override the setting to not preserve windows. Avoid running RAC#ensureActivitiesVisible() recursively. RootActivityContainer#ensureActivitiesVisible() RootActivityContainer#ensureActivitiesVisible(preserveWindows=false) ActivityTaskManagerService#ensureConfigAndVisibilityAfterUpdate() ActivityDisplay#updateDisplayOverrideConfigurationLocked() RootActivityContainer#ensureVisibilityAndConfig() ActivityStack#resumeTopActivityInnerLocked() ActivityStack#resumeTopActivityUncheckedLocked() ActivityRecord#makeActiveIfNeeded() ActivityRecord#makeClientVisible() ActivityRecord#makeVisibleIfNeeded() ActivityStack#ensureActivitiesVisibleLocked() ActivityDisplay#ensureActivitiesVisible() RootActivityContainer#ensureActivitiesVisible() RootActivityContainer#ensureActivitiesVisible(preserveWindows=true) ActivityStack#setWindowingModeInSurfaceTransaction() ActivityStack#lambda$setWindowingMode$0$ActivityStack() WindowManagerService#inSurfaceTransaction() ActivityStack#setWindowingMode() ActivityTaskManagerService#setTaskWindowingModeSplitScreenPrimary() ActivityTaskManagerService#setTaskWindowingMode() Bug: 137232340 Test: atest ReplaceWindowTests Change-Id: I8243a49edf8314100e13d3a15b961e3d768f6364
Loading
Please register or sign in to comment