Merge "Fix light bar flickers" into oc-dr1-dev

am: 997f2f71fa

Change-Id: Ic6b622398c1426be3b48096ec6a041ee6c38fd0d
This commit is contained in:
Jorim Jaggi
2017-08-07 12:27:54 +00:00
committed by android-build-merger
2 changed files with 20 additions and 2 deletions

View File

@@ -198,6 +198,14 @@ public class AppWindowAnimator {
return animation != null || mAppToken.inPendingTransaction; return animation != null || mAppToken.inPendingTransaction;
} }
/**
* @return whether an animation is about to start, i.e. the animation is set already but we
* haven't processed the first frame yet.
*/
boolean isAnimationStarting() {
return animation != null && !animating;
}
public int getTransit() { public int getTransit() {
return mTransit; return mTransit;
} }

View File

@@ -1458,8 +1458,18 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
@Override @Override
public boolean canAffectSystemUiFlags() { public boolean canAffectSystemUiFlags() {
final boolean shown = mWinAnimator.getShown(); final boolean shown = mWinAnimator.getShown();
final boolean exiting = mAnimatingExit || mDestroying
|| mAppToken != null && mAppToken.hidden; // We only consider the app to be exiting when the animation has started. After the app
// transition is executed the windows are marked exiting before the new windows have been
// shown. Thus, wait considering a window to be exiting after the animation has actually
// started.
final boolean appAnimationStarting = mAppToken != null
&& mAppToken.mAppAnimator.isAnimationStarting();
final boolean exitingSelf = mAnimatingExit && (!mWinAnimator.isAnimationStarting()
&& !appAnimationStarting);
final boolean appExiting = mAppToken != null && mAppToken.hidden && !appAnimationStarting;
final boolean exiting = exitingSelf || mDestroying || appExiting;
final boolean translucent = mAttrs.alpha == 0.0f; final boolean translucent = mAttrs.alpha == 0.0f;
return shown && !exiting && !translucent; return shown && !exiting && !translucent;
} }