Don't prepare transition if token is not visible

This led to an issue that atoken was added to opening apps,
regardless of its requested visibility state, thus making apps
visible that should not be visible at all, because once it's
added to opening apps, it will become visible when the app
transition is being executed.

Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test
android.server.cts.KeyguardTests#testUnoccludeRotationChange

Bug: 32771855
Change-Id: I375db25658ff95a6c6cc8e204486a1e73d2b2b88
This commit is contained in:
Jorim Jaggi
2016-11-29 17:38:08 +01:00
parent e1cb95bbee
commit aaaf9cf826

View File

@@ -1417,7 +1417,8 @@ public class WindowManagerService extends IWindowManager.Stub
winAnimator.mEnterAnimationPending = true;
winAnimator.mEnteringAnimation = true;
// Check if we need to prepare a transition for replacing window first.
if (atoken != null && !prepareWindowReplacementTransition(atoken)) {
if (atoken != null && atoken.isVisible()
&& !prepareWindowReplacementTransition(atoken)) {
// If not, check if need to set up a dummy transition during display freeze
// so that the unfreeze wait for the apps to draw. This might be needed if
// the app is relaunching.