diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 1a56518538184..c43c191bfe1e3 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1400,7 +1400,7 @@ class WindowState extends WindowContainer implements WindowManagerP * being visible. */ boolean isOnScreen() { - if (!mHasSurface || mDestroying) { + if (!mHasSurface || mDestroying || !mPolicyVisibility) { return false; } final AppWindowToken atoken = mAppToken; diff --git a/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java b/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java index 3df1df980a266..4499275e8f468 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java @@ -41,9 +41,7 @@ import static org.junit.Assert.assertTrue; /** * Tests for the {@link WindowState} class. * - * Build: mmma -j32 frameworks/base/services/tests/servicestests - * Install: adb install -r out/target/product/$TARGET_PRODUCT/data/app/FrameworksServicesTests/FrameworksServicesTests.apk - * Run: adb shell am instrument -w -e class com.android.server.wm.WindowStateTests com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner + * runtest frameworks-services -c com.android.server.wm.WindowStateTests */ @SmallTest @Presubmit @@ -160,6 +158,15 @@ public class WindowStateTests { assertEquals(root, child2.getTopParentWindow()); } + @Test + public void testIsOnScreen_hiddenByPolicy() { + final WindowState window = createWindow(null, TYPE_APPLICATION); + window.setHasSurface(true); + assertTrue(window.isOnScreen()); + window.hideLw(false /* doAnimation */); + assertFalse(window.isOnScreen()); + } + private WindowState createWindow(WindowState parent, int type) { final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(type);