diff options
3 files changed, 13 insertions, 6 deletions
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 5cd4bebea988..2267f6019275 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -4042,7 +4042,9 @@ public class WindowManagerService extends IWindowManager.Stub // token. wtoken.startingData = ttoken.startingData; wtoken.startingView = ttoken.startingView; + wtoken.startingDisplayed = ttoken.startingDisplayed; wtoken.startingWindow = startingWindow; + wtoken.reportedVisible = ttoken.reportedVisible; ttoken.startingData = null; ttoken.startingView = null; ttoken.startingWindow = null; @@ -4331,14 +4333,15 @@ public class WindowManagerService extends IWindowManager.Stub if (DEBUG_APP_TRANSITIONS) Slog.v( TAG, "Setting dummy animation on: " + wtoken); - wtoken.mAppAnimator.setDummyAnimation(); + if (!wtoken.startingDisplayed) { + wtoken.mAppAnimator.setDummyAnimation(); + } mOpeningApps.remove(wtoken); mClosingApps.remove(wtoken); wtoken.waitingToShow = wtoken.waitingToHide = false; wtoken.inPendingTransaction = true; if (visible) { mOpeningApps.add(wtoken); - wtoken.startingDisplayed = false; wtoken.startingMoved = false; // If the token is currently hidden (should be the diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index f94bacd83d5d..2b48783fa26d 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -587,7 +587,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { } public boolean hasAppShownWindows() { - return mAppToken != null ? mAppToken.firstWindowDrawn : false; + return mAppToken != null && (mAppToken.firstWindowDrawn || mAppToken.startingDisplayed); } boolean isIdentityMatrix(float dsdx, float dtdx, float dsdy, float dtdy) { diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java index f2dd335f2c4d..109161ac9fc1 100644 --- a/services/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/java/com/android/server/wm/WindowStateAnimator.java @@ -896,10 +896,14 @@ class WindowStateAnimator { //Slog.i(TAG, "Not applying alpha transform"); } - if (WindowManagerService.localLOGV) Slog.v( + if (WindowManagerService.localLOGV && (mShownAlpha == 1.0 || mShownAlpha == 0.0)) Slog.v( TAG, "computeShownFrameLocked: Animating " + this + - ": " + mWin.mShownFrame + - ", alpha=" + mTransformation.getAlpha() + ", mShownAlpha=" + mShownAlpha); + " mAlpha=" + mAlpha + + " self=" + (selfTransformation ? mTransformation.getAlpha() : "null") + + " attached=" + (attachedTransformation == null ? "null" : attachedTransformation.getAlpha()) + + " app=" + (appTransformation == null ? "null" : appTransformation.getAlpha()) + + " screen=" + (screenAnimation ? mService.mAnimator.mScreenRotationAnimation.getEnterTransformation().getAlpha() + : "null")); return; } else if (mWin.mIsWallpaper && (mAnimator.mPendingActions & WindowAnimator.WALLPAPER_ACTION_PENDING) != 0) { |