summaryrefslogtreecommitdiffstats
path: root/services/java/com
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2013-08-09 18:48:48 -0700
committerCraig Mautner <cmautner@google.com>2013-08-10 11:48:18 -0700
commit6201c2ac418424424573343d61b2b5bda3de77e2 (patch)
tree481c34994c485d5bda61aa8e200476def586a90b /services/java/com
parent7a605df3137ee571dec855761c0cb15b28513d26 (diff)
downloadframeworks_base-6201c2ac418424424573343d61b2b5bda3de77e2.zip
frameworks_base-6201c2ac418424424573343d61b2b5bda3de77e2.tar.gz
frameworks_base-6201c2ac418424424573343d61b2b5bda3de77e2.tar.bz2
Put animation background behind visible wallpaper
The new wallpaper positioning associated with multiple activity stacks put animation backgrounds in front of the wallpaper. This caused hideous jank. Testing for visible wallpaper and moving the background behind it fixes the jank. Fixes bug 10078282. Possibly fixes bug 10247094. Change-Id: I3f4e07accd7276d59725192081904b791f77781f
Diffstat (limited to 'services/java/com')
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java2
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java21
2 files changed, 8 insertions, 15 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 3d8843e..21493f1 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -210,7 +210,7 @@ public final class ActivityManagerService extends ActivityManagerNative
static final boolean DEBUG_BACKGROUND_BROADCAST = DEBUG_BROADCAST || false;
static final boolean DEBUG_CLEANUP = localLOGV || false;
static final boolean DEBUG_CONFIGURATION = localLOGV || false;
- static final boolean DEBUG_FOCUS = true;
+ static final boolean DEBUG_FOCUS = false;
static final boolean DEBUG_IMMERSIVE = localLOGV || false;
static final boolean DEBUG_MU = localLOGV || false;
static final boolean DEBUG_OOM_ADJ = localLOGV || false;
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 364b854..07e1e12 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -194,9 +194,6 @@ public class WindowManagerService extends IWindowManager.Stub
static final boolean PROFILE_ORIENTATION = false;
static final boolean localLOGV = DEBUG;
- final static boolean REVERSE_ITERATOR = true;
- final static boolean FORWARD_ITERATOR = false;
-
/** How much to multiply the policy's type layer, to reserve room
* for multiple windows of the same type and Z-ordering adjustment
* with TYPE_LAYER_OFFSET. */
@@ -9574,19 +9571,15 @@ public class WindowManagerService extends IWindowManager.Stub
return doRequest;
}
- /** If a window that has an animation specifying a colored background is the current wallpaper
- * target, then the color goes *below* the wallpaper so we don't cause the wallpaper to
+ /** If a window that has an animation specifying a colored background and the current wallpaper
+ * is visible, then the color goes *below* the wallpaper so we don't cause the wallpaper to
* suddenly disappear. */
int adjustAnimationBackground(WindowStateAnimator winAnimator) {
- final WindowState win = winAnimator.mWin;
- if (mWallpaperTarget == win || mLowerWallpaperTarget == win
- || mUpperWallpaperTarget == win) {
- WindowList windows = win.getWindowList();
- for (int i = windows.size() - 1; i >= 0; --i) {
- WindowState testWin = windows.get(i);
- if (testWin.mIsWallpaper) {
- return testWin.mWinAnimator.mAnimLayer;
- }
+ WindowList windows = winAnimator.mWin.getWindowList();
+ for (int i = windows.size() - 1; i >= 0; --i) {
+ WindowState testWin = windows.get(i);
+ if (testWin.mIsWallpaper && testWin.isVisibleNow()) {
+ return testWin.mWinAnimator.mAnimLayer;
}
}
return winAnimator.mAnimLayer;