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) { public void waitForAllWindowsDrawn(IRemoteCallback callback, long timeout) {
synchronized (mWindowMap) { synchronized (mWindowMap) {
mWaitingForDrawnCallback = callback; mWaitingForDrawnCallback = callback;
final WindowList windows = getDefaultWindowListLocked(); for (int displayNdx = mDisplayContents.size() - 1; displayNdx >= 0; --displayNdx) {
for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { final WindowList windows =
final WindowState win = windows.get(winNdx); mDisplayContents.valueAt(displayNdx).getWindowList();
if (win.mHasSurface) { for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING; final WindowState win = windows.get(winNdx);
// Force add to mResizingWindows. if (win.mHasSurface) {
win.mLastContentInsets.set(-1, -1, -1, -1); win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING;
mWaitingForDrawn.add(win); // 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(); requestTraversalLocked();