Merge "Fix a bug about missing committing app visibility" into qt-dev
am: c5d71fc809
Change-Id: I860f0c800873346fe5125688073a5413a82a8e45
This commit is contained in:
@@ -176,6 +176,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
|||||||
boolean inPendingTransaction;
|
boolean inPendingTransaction;
|
||||||
boolean allDrawn;
|
boolean allDrawn;
|
||||||
private boolean mLastAllDrawn;
|
private boolean mLastAllDrawn;
|
||||||
|
private boolean mUseTransferredAnimation;
|
||||||
|
|
||||||
// Set to true when this app creates a surface while in the middle of an animation. In that
|
// Set to true when this app creates a surface while in the middle of an animation. In that
|
||||||
// case do not clear allDrawn until the animation completes.
|
// case do not clear allDrawn until the animation completes.
|
||||||
@@ -618,9 +619,12 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
|||||||
boolean runningAppAnimation = false;
|
boolean runningAppAnimation = false;
|
||||||
|
|
||||||
if (transit != WindowManager.TRANSIT_UNSET) {
|
if (transit != WindowManager.TRANSIT_UNSET) {
|
||||||
if (applyAnimationLocked(lp, transit, visible, isVoiceInteraction)) {
|
if (mUseTransferredAnimation) {
|
||||||
delayed = runningAppAnimation = true;
|
runningAppAnimation = isReallyAnimating();
|
||||||
|
} else if (applyAnimationLocked(lp, transit, visible, isVoiceInteraction)) {
|
||||||
|
runningAppAnimation = true;
|
||||||
}
|
}
|
||||||
|
delayed = runningAppAnimation;
|
||||||
final WindowState window = findMainWindow();
|
final WindowState window = findMainWindow();
|
||||||
if (window != null && accessibilityController != null) {
|
if (window != null && accessibilityController != null) {
|
||||||
accessibilityController.onAppWindowTransitionLocked(window, transit);
|
accessibilityController.onAppWindowTransitionLocked(window, transit);
|
||||||
@@ -667,6 +671,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
|||||||
getDisplayContent().getInputMonitor().updateInputWindowsLw(false /*force*/);
|
getDisplayContent().getInputMonitor().updateInputWindowsLw(false /*force*/);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mUseTransferredAnimation = false;
|
||||||
|
|
||||||
if (isReallyAnimating()) {
|
if (isReallyAnimating()) {
|
||||||
delayed = true;
|
delayed = true;
|
||||||
@@ -1531,9 +1536,9 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
|||||||
transferAnimation(fromToken);
|
transferAnimation(fromToken);
|
||||||
|
|
||||||
// When transferring an animation, we no longer need to apply an animation to the
|
// When transferring an animation, we no longer need to apply an animation to the
|
||||||
// the token we transfer the animation over. Thus, remove the animation from
|
// the token we transfer the animation over. Thus, set this flag to indicate we've
|
||||||
// pending opening apps.
|
// transferred the animation.
|
||||||
getDisplayContent().mOpeningApps.remove(this);
|
mUseTransferredAnimation = true;
|
||||||
|
|
||||||
mWmService.updateFocusedWindowLocked(
|
mWmService.updateFocusedWindowLocked(
|
||||||
UPDATE_FOCUS_WILL_PLACE_SURFACES, true /*updateInputWindows*/);
|
UPDATE_FOCUS_WILL_PLACE_SURFACES, true /*updateInputWindows*/);
|
||||||
|
|||||||
Reference in New Issue
Block a user