diff options
author | Jorim Jaggi <jjaggi@google.com> | 2018-01-08 17:19:54 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-01-08 17:19:54 +0000 |
commit | a2e3d734fb6ba6c590ac07204f73f81c943386af (patch) | |
tree | ebdfe07d92b25e748ab27f885bc5dc498c89b450 | |
parent | 17c4a0d192aee99864984ea36180d32f56eb6f2f (diff) | |
parent | 72207756d6539bbe13284a5ed516d91b2f5a4db8 (diff) |
Merge "Fix canAffectSystemUiFlags"
-rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 5 | ||||
-rw-r--r-- | services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java | 16 |
2 files changed, 17 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index c6c012141484..b3809dd8f6c9 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1543,10 +1543,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP @Override public boolean canAffectSystemUiFlags() { final boolean translucent = mAttrs.alpha == 0.0f; + if (translucent) { + return false; + } if (mAppToken == null) { final boolean shown = mWinAnimator.getShown(); final boolean exiting = mAnimatingExit || mDestroying; - return shown && !exiting && !translucent; + return shown && !exiting; } else { return !mAppToken.isHidden(); } 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 67db5f4d12dd..7be203a99391 100644 --- a/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java +++ b/services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java @@ -16,7 +16,6 @@ package com.android.server.wm; -import android.util.MergedConfiguration; import android.view.WindowManager; import org.junit.Test; import org.junit.runner.RunWith; @@ -45,8 +44,7 @@ import static org.junit.Assert.assertTrue; /** * Tests for the {@link WindowState} class. * - * Build/Install/Run: - * bit FrameworksServicesTests:com.android.server.wm.WindowStateTests + * atest FrameworksServicesTests:com.android.server.wm.WindowStateTests */ @SmallTest @Presubmit @@ -213,6 +211,18 @@ public class WindowStateTests extends WindowTestsBase { testPrepareWindowToDisplayDuringRelayout(true /*wasVisible*/); } + @Test + public void testCanAffectSystemUiFlags() throws Exception { + final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); + app.mToken.setHidden(false); + assertTrue(app.canAffectSystemUiFlags()); + app.mToken.setHidden(true); + assertFalse(app.canAffectSystemUiFlags()); + app.mToken.setHidden(false); + app.mAttrs.alpha = 0.0f; + assertFalse(app.canAffectSystemUiFlags()); + } + private void testPrepareWindowToDisplayDuringRelayout(boolean wasVisible) { final WindowState root = createWindow(null, TYPE_APPLICATION, "root"); root.mAttrs.flags |= WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON; |