summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Craig Mautner <cmautner@google.com> 2012-04-11 17:18:44 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-04-11 17:18:44 -0700
commit1e1edaa60dc183b1b8f0b8588deb8c42c9169cfb (patch)
tree6fbada8f5ef6bc815c1b57b5b213938ee3e6d2a1
parent30ff5aecd751a2d5d6722c9ae96204eda2c3cbc4 (diff)
parentf20588fdc65a5651c3a5ab5c0c20165c0e33c394 (diff)
Merge "Check WindowState when looking for animation."
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java25
1 files changed, 16 insertions, 9 deletions
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index d9425aab4b76..be0f807419eb 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -3974,7 +3974,6 @@ public class WindowManagerService extends IWindowManager.Stub
wtoken.willBeHidden = false;
if (wtoken.hidden == visible) {
- final int N = wtoken.allAppWindows.size();
boolean changed = false;
if (DEBUG_APP_TRANSITIONS) Slog.v(
TAG, "Changing app " + wtoken + " hidden=" + wtoken.hidden
@@ -3986,23 +3985,19 @@ public class WindowManagerService extends IWindowManager.Stub
if (wtoken.mAppAnimator.animation == sDummyAnimation) {
wtoken.mAppAnimator.animation = null;
}
- applyAnimationLocked(wtoken, lp, transit, visible);
- changed = true;
- if (wtoken.mAppAnimator.animation != null) {
+ if (applyAnimationLocked(wtoken, lp, transit, visible)) {
delayed = runningAppAnimation = true;
}
+ changed = true;
}
+ final int N = wtoken.allAppWindows.size();
for (int i=0; i<N; i++) {
WindowState win = wtoken.allAppWindows.get(i);
if (win == wtoken.startingWindow) {
continue;
}
- if (win.mWinAnimator.isAnimating()) {
- delayed = true;
- }
-
//Slog.i(TAG, "Window " + win + ": vis=" + win.isVisible());
//win.dump(" ");
if (visible) {
@@ -4055,6 +4050,12 @@ public class WindowManagerService extends IWindowManager.Stub
delayed = true;
}
+ for (int i = wtoken.allAppWindows.size() - 1; i >= 0 && !delayed; i--) {
+ if (wtoken.allAppWindows.get(i).mWinAnimator.isWindowAnimating()) {
+ delayed = true;
+ }
+ }
+
return delayed;
}
@@ -7262,6 +7263,7 @@ public class WindowManagerService extends IWindowManager.Stub
pw.flush();
Slog.w(TAG, "This window was lost: " + ws);
Slog.w(TAG, sw.toString());
+ ws.mWinAnimator.destroySurfaceLocked();
}
}
Slog.w(TAG, "Current app token list:");
@@ -9333,7 +9335,7 @@ public class WindowManagerService extends IWindowManager.Stub
pw.print(" mWaitingForConfig="); pw.println(mWaitingForConfig);
pw.print(" mRotation="); pw.print(mRotation);
pw.print(" mAltOrientation="); pw.println(mAltOrientation);
- pw.print(" mLastWindowForcedOrientation"); pw.print(mLastWindowForcedOrientation);
+ pw.print(" mLastWindowForcedOrientation="); pw.print(mLastWindowForcedOrientation);
pw.print(" mForcedAppOrientation="); pw.println(mForcedAppOrientation);
pw.print(" mDeferredRotationPauseCount="); pw.println(mDeferredRotationPauseCount);
if (mAnimator.mScreenRotationAnimation != null) {
@@ -9535,4 +9537,9 @@ public class WindowManagerService extends IWindowManager.Stub
void bulkSetParameters(final int bulkUpdateParams) {
mH.sendMessage(mH.obtainMessage(H.BULK_UPDATE_PARAMETERS, bulkUpdateParams, 0));
}
+
+ static String getCaller() {
+ StackTraceElement caller = Thread.currentThread().getStackTrace()[4];
+ return caller.getClassName() + "." + caller.getMethodName() + ":" + caller.getLineNumber();
+ }
}