Loading services/core/java/com/android/server/wm/WindowState.java +1 −0 Original line number Diff line number Diff line Loading @@ -2171,6 +2171,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return; } if (mActivityRecord != null) { if (!mActivityRecord.mVisibleRequested) return; if (mActivityRecord.allDrawn) { // The allDrawn of activity is reset when the visibility is changed to visible, so // the content should be ready if allDrawn is set. Loading services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +8 −0 Original line number Diff line number Diff line Loading @@ -673,6 +673,14 @@ public class WindowStateTests extends WindowTestsBase { // Keyguard host window should be always contained. The drawn app or app with starting // window are unnecessary to draw. assertEquals(Arrays.asList(keyguardHostWindow, startingWindow), outWaitingForDrawn); // No need to wait for a window of invisible activity even if the window has surface. final WindowState invisibleApp = mAppWindow; invisibleApp.mActivityRecord.mVisibleRequested = false; invisibleApp.mActivityRecord.allDrawn = false; outWaitingForDrawn.clear(); invisibleApp.requestDrawIfNeeded(outWaitingForDrawn); assertTrue(outWaitingForDrawn.isEmpty()); } @UseTestDisplay(addWindows = W_ABOVE_ACTIVITY) Loading Loading
services/core/java/com/android/server/wm/WindowState.java +1 −0 Original line number Diff line number Diff line Loading @@ -2171,6 +2171,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return; } if (mActivityRecord != null) { if (!mActivityRecord.mVisibleRequested) return; if (mActivityRecord.allDrawn) { // The allDrawn of activity is reset when the visibility is changed to visible, so // the content should be ready if allDrawn is set. Loading
services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +8 −0 Original line number Diff line number Diff line Loading @@ -673,6 +673,14 @@ public class WindowStateTests extends WindowTestsBase { // Keyguard host window should be always contained. The drawn app or app with starting // window are unnecessary to draw. assertEquals(Arrays.asList(keyguardHostWindow, startingWindow), outWaitingForDrawn); // No need to wait for a window of invisible activity even if the window has surface. final WindowState invisibleApp = mAppWindow; invisibleApp.mActivityRecord.mVisibleRequested = false; invisibleApp.mActivityRecord.allDrawn = false; outWaitingForDrawn.clear(); invisibleApp.requestDrawIfNeeded(outWaitingForDrawn); assertTrue(outWaitingForDrawn.isEmpty()); } @UseTestDisplay(addWindows = W_ABOVE_ACTIVITY) Loading