Skip notifying change without visibility change

To reduce unnecessary calculations.

Note that legacy transition still needs it because if a transition
is prepared, it still requires to add the no change records into
mOpeningApps to trigger animation callback, e.g. onAnimationFinished.

Bug: 159103089
Test: CtsWindowManagerDeviceTestCases
Change-Id: Id9b95d1fa57581e661b9beb7e6d3614235715f22
This commit is contained in:
Riddle Hsu
2023-03-13 22:48:51 +08:00
parent f750196ca6
commit 32d03f38b7

View File

@@ -5226,6 +5226,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
Slog.w(TAG_WM, "Attempted to set visibility of non-existing app token: " + token);
return;
}
if (visible == mVisibleRequested && visible == mVisible
&& mTransitionController.isShellTransitionsEnabled()) {
// For shell transition, it is no-op if there is no state change.
return;
}
if (visible) {
mDeferHidingClient = false;
}