diff options
| author | 2015-03-12 16:51:17 +0000 | |
|---|---|---|
| committer | 2015-03-12 16:51:19 +0000 | |
| commit | 53729e2933540307b090e64ee89cbae26c67de8f (patch) | |
| tree | 095ec9ce7fd33065d86f32dcaca807fb09cd7dd3 | |
| parent | 1b4933d10eea59b091f263ebb3723f4d59a85d2b (diff) | |
| parent | 473db6fdfbf838ad7506d17dd8f46f127cbe1dd7 (diff) | |
Merge "Wait for opening apps ready before stopping freezing display"
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index a25a84c091ea..7b389f5600ba 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -4095,6 +4095,8 @@ public class WindowManagerService extends IWindowManager.Stub mAppTransition.prepare(); mStartingIconInTransition = false; mSkipAppTransitionAnimation = false; + } + if (mAppTransition.isTransitionSet()) { mH.removeMessages(H.APP_TRANSITION_TIMEOUT); mH.sendEmptyMessageDelayed(H.APP_TRANSITION_TIMEOUT, 5000); } @@ -7906,8 +7908,12 @@ public class WindowManagerService extends IWindowManager.Stub case APP_TRANSITION_TIMEOUT: { synchronized (mWindowMap) { - if (mAppTransition.isTransitionSet()) { - if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "*** APP TRANSITION TIMEOUT"); + if (mAppTransition.isTransitionSet() || !mOpeningApps.isEmpty() + || !mClosingApps.isEmpty()) { + if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "*** APP TRANSITION TIMEOUT." + + " isTransitionSet()=" + mAppTransition.isTransitionSet() + + " mOpeningApps.size()=" + mOpeningApps.size() + + " mClosingApps.size()=" + mClosingApps.size()); mAppTransition.setTimeout(); performLayoutAndPlaceSurfacesLocked(); } @@ -9069,10 +9075,7 @@ public class WindowManagerService extends IWindowManager.Stub "Checking " + NN + " opening apps (frozen=" + mDisplayFrozen + " timeout=" + mAppTransition.isTimeout() + ")..."); - if (!mDisplayFrozen && !mAppTransition.isTimeout()) { - // If the display isn't frozen, wait to do anything until - // all of the apps are ready. Otherwise just go because - // we'll unfreeze the display when everyone is ready. + if (!mAppTransition.isTimeout()) { for (i=0; i<NN && goodToGo; i++) { AppWindowToken wtoken = mOpeningApps.valueAt(i); if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, @@ -10706,12 +10709,13 @@ public class WindowManagerService extends IWindowManager.Stub } if (mWaitingForConfig || mAppsFreezingScreen > 0 || mWindowsFreezingScreen - || mClientFreezingScreen) { + || mClientFreezingScreen || !mOpeningApps.isEmpty()) { if (DEBUG_ORIENTATION) Slog.d(TAG, "stopFreezingDisplayLocked: Returning mWaitingForConfig=" + mWaitingForConfig + ", mAppsFreezingScreen=" + mAppsFreezingScreen + ", mWindowsFreezingScreen=" + mWindowsFreezingScreen - + ", mClientFreezingScreen=" + mClientFreezingScreen); + + ", mClientFreezingScreen=" + mClientFreezingScreen + + ", mOpeningApps.size()=" + mOpeningApps.size()); return; } |