Merge "Clean up postWindowRemoveStartingWindowCleanUp" into udc-dev

This commit is contained in:
Wale Ogunwale
2023-07-20 00:13:59 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 23 deletions

View File

@@ -4516,7 +4516,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
mTransitionChangeFlags |= FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT; mTransitionChangeFlags |= FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT;
} }
// Post cleanup after the visibility and animation are transferred. // Post cleanup after the visibility and animation are transferred.
fromActivity.postWindowRemoveStartingWindowCleanup(tStartingWindow); fromActivity.postWindowRemoveStartingWindowCleanup();
fromActivity.mVisibleSetFromTransferredStartingWindow = false; fromActivity.mVisibleSetFromTransferredStartingWindow = false;
mWmService.updateFocusedWindowLocked( mWmService.updateFocusedWindowLocked(
@@ -7430,28 +7430,13 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
} }
} }
void postWindowRemoveStartingWindowCleanup(WindowState win) { void postWindowRemoveStartingWindowCleanup() {
// TODO: Something smells about the code below...Is there a better way? if (mChildren.size() == 0 && mVisibleSetFromTransferredStartingWindow) {
if (mStartingWindow == win) {
ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Notify removed startingWindow %s", win);
removeStartingWindow();
} else if (mChildren.size() == 0) {
// If this is the last window and we had requested a starting transition window,
// well there is no point now.
ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Nulling last startingData");
mStartingData = null;
if (mVisibleSetFromTransferredStartingWindow) {
// We set the visible state to true for the token from a transferred starting // We set the visible state to true for the token from a transferred starting
// window. We now reset it back to false since the starting window was the last // window. We now reset it back to false since the starting window was the last
// window in the token. // window in the token.
setVisible(false); setVisible(false);
} }
} else if (mChildren.size() == 1 && mStartingSurface != null && !isRelaunching()) {
// If this is the last window except for a starting transition window,
// we need to get rid of the starting transition.
ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Last window, removing starting window %s", win);
removeStartingWindow();
}
} }
void requestUpdateWallpaperIfNeeded() { void requestUpdateWallpaperIfNeeded() {

View File

@@ -2020,7 +2020,7 @@ public class WindowManagerService extends IWindowManager.Stub
} }
if (win.mActivityRecord != null) { if (win.mActivityRecord != null) {
win.mActivityRecord.postWindowRemoveStartingWindowCleanup(win); win.mActivityRecord.postWindowRemoveStartingWindowCleanup();
} }
if (win.mAttrs.type == TYPE_WALLPAPER) { if (win.mAttrs.type == TYPE_WALLPAPER) {