Merge "Wait for all windows to draw before turning screen on" into klp-modular-dev

This commit is contained in:
Justin Koh
2014-07-17 00:43:18 +00:00
committed by Android (Google) Code Review

View File

@@ -10930,14 +10930,19 @@ public class WindowManagerService extends IWindowManager.Stub
public void waitForAllWindowsDrawn(IRemoteCallback callback, long timeout) {
synchronized (mWindowMap) {
mWaitingForDrawnCallback = callback;
final WindowList windows = getDefaultWindowListLocked();
for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
final WindowState win = windows.get(winNdx);
if (win.mHasSurface) {
win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING;
// Force add to mResizingWindows.
win.mLastContentInsets.set(-1, -1, -1, -1);
mWaitingForDrawn.add(win);
for (int displayNdx = mDisplayContents.size() - 1; displayNdx >= 0; --displayNdx) {
final WindowList windows =
mDisplayContents.valueAt(displayNdx).getWindowList();
for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
final WindowState win = windows.get(winNdx);
if (win.mHasSurface) {
win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING;
// Force add to mResizingWindows.
win.mLastContentInsets.set(-1, -1, -1, -1);
if (DEBUG_SCREEN_ON) Slog.d(TAG, "waitForAllWindowsDrawn: adding " +
win);
mWaitingForDrawn.add(win);
}
}
}
requestTraversalLocked();