Merge "Fix flicker when transiting activities without animation." into oc-dr1-dev

am: afe3eb81da

Change-Id: Ia90d8c148df3055794f83cde5ef0a1f7501bdfe9
This commit is contained in:
Rob Carr
2017-07-20 18:40:14 +00:00
committed by android-build-merger

View File

@@ -431,11 +431,18 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
mEnteringAnimation = true;
mService.mActivityManagerAppTransitionNotifier.onAppTransitionFinishedLocked(token);
}
// If we are hidden but there is no delay needed we immediately
// apply the Surface transaction so that the ActivityManager
// can have some guarantee on the Surface state
// following setting the visibility.
if (hidden && !delayed) {
// can have some guarantee on the Surface state following
// setting the visibility. This captures cases like dismissing
// the docked or pinned stack where there is no app transition.
//
// In the case of a "Null" animation, there will be
// no animation but there will still be a transition set.
// We still need to delay hiding the surface such that it
// can be synchronized with showing the next surface in the transition.
if (hidden && !delayed && !mService.mAppTransition.isTransitionSet()) {
SurfaceControl.openTransaction();
for (int i = mChildren.size() - 1; i >= 0; i--) {
mChildren.get(i).mWinAnimator.hide("immediately hidden");