summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xservices/java/com/android/server/wm/WindowManagerService.java7
-rw-r--r--services/java/com/android/server/wm/WindowState.java2
-rw-r--r--services/java/com/android/server/wm/WindowStateAnimator.java10
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) {