Merge "Fixes to Starting window and Wallpaper windows." into jb-mr1-dev
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 1eea9b1..73cc7ed 100755
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -1643,7 +1643,8 @@
}
}
- if (mWallpaperTarget != foundW) {
+ if (mWallpaperTarget != foundW
+ && (mLowerWallpaperTarget == null || mLowerWallpaperTarget != foundW)) {
if (DEBUG_WALLPAPER) {
Slog.v(TAG, "New wallpaper target: " + foundW
+ " oldTarget: " + mWallpaperTarget);
@@ -3386,7 +3387,7 @@
// Exiting app
if (scaleUp) {
// noop animation
- a = new AlphaAnimation(1, 1);
+ a = new AlphaAnimation(1, 0);
a.setDuration(duration);
} else {
float scaleW = thumbWidth / displayInfo.appWidth;
@@ -3435,7 +3436,7 @@
"applyAnimation: atoken=" + atoken
+ " anim=" + a + " nextAppTransition=ANIM_CUSTOM"
+ " transit=" + transit + " isEntrance=" + enter
- + " Callers " + Debug.getCallers(3));
+ + " Callers=" + Debug.getCallers(3));
} else if (mNextAppTransitionType == ActivityOptions.ANIM_SCALE_UP) {
a = createScaleUpAnimationLocked(transit, enter);
initialized = true;
@@ -3443,7 +3444,7 @@
"applyAnimation: atoken=" + atoken
+ " anim=" + a + " nextAppTransition=ANIM_SCALE_UP"
+ " transit=" + transit + " isEntrance=" + enter
- + " Callers " + Debug.getCallers(3));
+ + " Callers=" + Debug.getCallers(3));
} else if (mNextAppTransitionType == ActivityOptions.ANIM_THUMBNAIL_SCALE_UP ||
mNextAppTransitionType == ActivityOptions.ANIM_THUMBNAIL_SCALE_DOWN) {
boolean scaleUp = (mNextAppTransitionType == ActivityOptions.ANIM_THUMBNAIL_SCALE_UP);
@@ -3454,7 +3455,7 @@
Slog.v(TAG, "applyAnimation: atoken=" + atoken
+ " anim=" + a + " nextAppTransition=" + animName
+ " transit=" + transit + " isEntrance=" + enter
- + " Callers " + Debug.getCallers(3));
+ + " Callers=" + Debug.getCallers(3));
}
} else {
int animAttr = 0;
@@ -3516,7 +3517,7 @@
+ " anim=" + a
+ " animAttr=0x" + Integer.toHexString(animAttr)
+ " transit=" + transit + " isEntrance=" + enter
- + " Callers " + Debug.getCallers(3));
+ + " Callers=" + Debug.getCallers(3));
}
if (a != null) {
if (DEBUG_ANIM) {
@@ -4188,7 +4189,7 @@
synchronized(mWindowMap) {
if (DEBUG_STARTING_WINDOW) Slog.v(
- TAG, "setAppStartingIcon: token=" + token + " pkg=" + pkg
+ TAG, "setAppStartingWindow: token=" + token + " pkg=" + pkg
+ " transferFrom=" + transferFrom);
AppWindowToken wtoken = findAppWindowToken(token);
@@ -4220,7 +4221,7 @@
mSkipAppTransitionAnimation = true;
}
if (DEBUG_STARTING_WINDOW) Slog.v(TAG,
- "Moving existing starting from " + ttoken
+ "Moving existing starting " + startingWindow + " from " + ttoken
+ " to " + wtoken);
final long origId = Binder.clearCallingIdentity();
@@ -4229,6 +4230,7 @@
wtoken.startingData = ttoken.startingData;
wtoken.startingView = ttoken.startingView;
wtoken.startingDisplayed = ttoken.startingDisplayed;
+ ttoken.startingDisplayed = false;
wtoken.startingWindow = startingWindow;
wtoken.reportedVisible = ttoken.reportedVisible;
ttoken.startingData = null;
@@ -4238,6 +4240,8 @@
startingWindow.mToken = wtoken;
startingWindow.mRootToken = wtoken;
startingWindow.mAppToken = wtoken;
+ startingWindow.mWinAnimator.mAppAnimator = wtoken.mAppAnimator;
+
if (DEBUG_WINDOW_MOVEMENT || DEBUG_ADD_REMOVE || DEBUG_STARTING_WINDOW) {
Slog.v(TAG, "Removing starting window: " + startingWindow);
}
@@ -4545,9 +4549,9 @@
}
wtoken.hiddenRequested = !visible;
- if (DEBUG_APP_TRANSITIONS) Slog.v(
- TAG, "Setting dummy animation on: " + wtoken);
if (!wtoken.startingDisplayed) {
+ if (DEBUG_APP_TRANSITIONS) Slog.v(
+ TAG, "Setting dummy animation on: " + wtoken);
wtoken.mAppAnimator.setDummyAnimation();
}
mOpeningApps.remove(wtoken);
@@ -8149,7 +8153,11 @@
updateLayoutToAnimationLocked();
}
if (DEBUG_LAYERS) Slog.v(TAG, "Assign layer " + w + ": "
- + winAnimator.mAnimLayer);
+ + "mBase=" + w.mBaseLayer
+ + " mLayer=" + w.mLayer
+ + (w.mAppToken == null ?
+ "" : " mAppLayer=" + w.mAppToken.mAppAnimator.animLayerAdjustment)
+ + " =mAnimLayer=" + winAnimator.mAnimLayer);
//System.out.println(
// "Assigned layer " + curLayer + " to " + w.mClient.asBinder());
}
@@ -8541,7 +8549,7 @@
transit = WindowManagerPolicy.TRANSIT_WALLPAPER_CLOSE;
if (DEBUG_APP_TRANSITIONS) Slog.v(TAG,
"New transit away from wallpaper: " + transit);
- } else if (mWallpaperTarget != null) {
+ } else if (mWallpaperTarget != null && mWallpaperTarget.isVisibleLw()) {
// We are transitioning from an activity without
// a wallpaper to now showing the wallpaper
transit = WindowManagerPolicy.TRANSIT_WALLPAPER_OPEN;
@@ -8598,7 +8606,7 @@
for (i=0; i<NN; i++) {
AppWindowToken wtoken = mClosingApps.get(i);
if (DEBUG_APP_TRANSITIONS) Slog.v(TAG,
- "Now closing app" + wtoken);
+ "Now closing app " + wtoken);
wtoken.mAppAnimator.clearThumbnail();
wtoken.inPendingTransaction = false;
wtoken.mAppAnimator.animation = null;
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 000a191..5f40709 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -62,7 +62,7 @@
final WindowState mWin;
final WindowStateAnimator mAttachedWinAnimator;
final WindowAnimator mAnimator;
- final AppWindowAnimator mAppAnimator;
+ AppWindowAnimator mAppAnimator;
final Session mSession;
final WindowManagerPolicy mPolicy;
final Context mContext;
@@ -1520,7 +1520,7 @@
"applyAnimation: win=" + this
+ " anim=" + anim + " attr=0x" + Integer.toHexString(attr)
+ " a=" + a
- + " mAnimation=" + mAnimation
+ + " transit=" + transit
+ " isEntrance=" + isEntrance + " Callers " + Debug.getCallers(3));
if (a != null) {
if (WindowManagerService.DEBUG_ANIM) {