diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-01-17 17:54:31 -0800 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2011-01-18 11:08:40 -0800 |
commit | 08121bca5bb875707974853b57820804a9e7cd3a (patch) | |
tree | b4f7c1431bc921a849ff3260d7e5743228690e01 /services | |
parent | 60610d245f899c8c48ba6c7e94c0a20010fc6eed (diff) | |
download | frameworks_base-08121bca5bb875707974853b57820804a9e7cd3a.zip frameworks_base-08121bca5bb875707974853b57820804a9e7cd3a.tar.gz frameworks_base-08121bca5bb875707974853b57820804a9e7cd3a.tar.bz2 |
Fix issue #3362666 Activities launched from ongoing notifications don't animate
The phone-oriented code for turning off animations when the screen is entirely
covered by the status bar was not appropriate for the tablet.
Change-Id: Ica3e0db989f16b9187eacd6ecf4ac3d17661dd6d
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 1b3725c..3e930ae 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -3031,7 +3031,7 @@ public class WindowManagerService extends IWindowManager.Stub } private AttributeCache.Entry getCachedAnimations(WindowManager.LayoutParams lp) { - if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: params package=" + if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: layout params pkg=" + (lp != null ? lp.packageName : null) + " resId=0x" + (lp != null ? Integer.toHexString(lp.windowAnimations) : null)); if (lp != null && lp.windowAnimations != 0) { @@ -3052,7 +3052,7 @@ public class WindowManagerService extends IWindowManager.Stub } private AttributeCache.Entry getCachedAnimations(String packageName, int resId) { - if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: params package=" + if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: package=" + packageName + " resId=0x" + Integer.toHexString(resId)); if (packageName != null) { if ((resId&0xFF000000) == 0x01000000) { @@ -9957,8 +9957,8 @@ public class WindowManagerService extends IWindowManager.Stub // The top-most window will supply the layout params, // and we will determine it below. LayoutParams animLp = null; - AppWindowToken animToken = null; int bestAnimLayer = -1; + boolean fullscreenAnim = false; if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "New wallpaper target=" + mWallpaperTarget @@ -10000,11 +10000,18 @@ public class WindowManagerService extends IWindowManager.Stub // window, we will always use its anim. if ((ws.mAttrs.flags&FLAG_COMPATIBLE_WINDOW) != 0) { animLp = ws.mAttrs; - animToken = ws.mAppToken; bestAnimLayer = Integer.MAX_VALUE; - } else if (ws.mLayer > bestAnimLayer) { + } else if (!fullscreenAnim || ws.mLayer > bestAnimLayer) { + animLp = ws.mAttrs; + bestAnimLayer = ws.mLayer; + } + fullscreenAnim = true; + } + } else if (!fullscreenAnim) { + WindowState ws = wtoken.findMainWindow(); + if (ws != null) { + if (ws.mLayer > bestAnimLayer) { animLp = ws.mAttrs; - animToken = ws.mAppToken; bestAnimLayer = ws.mLayer; } } |