Fix unable to cleanup a removed display
Assume a display supports system decoration and allows reparenting
stacks to another display when the display is removed. If there
exists a standard type finishing activity during removing the
display, the activity will be reparented and found the original
stack is empty, then home is started again on the removed display.
This change combines the condition ActivityDisplay.mRemoved into
ActivityStack.isAttached, and defers the resume during finishing
or reparenting, so the stacks in the removing display won't be
focusable and resumed.
Also keep original z-order of the reparented stacks and reduce
unnecessary resume, visibility update for each reparented stack.
Bug: 119093839
Test: atest ActivityDisplayTests#testNotResumeHomeStackOnRemovingDisplay
Change-Id: I7dea2582ce8bd4aa4a18e1d5d721bfb1d9027c6a
4 files changed