diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/TransparentPolicy.java | 6 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/TransparentPolicyTest.java | 16 |
2 files changed, 22 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/TransparentPolicy.java b/services/core/java/com/android/server/wm/TransparentPolicy.java index f1941afe8f58..85a118db36eb 100644 --- a/services/core/java/com/android/server/wm/TransparentPolicy.java +++ b/services/core/java/com/android/server/wm/TransparentPolicy.java @@ -16,6 +16,7 @@ package com.android.server.wm; +import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; import static android.content.res.Configuration.ORIENTATION_UNDEFINED; import static android.content.res.Configuration.SCREEN_HEIGHT_DP_UNDEFINED; @@ -331,6 +332,11 @@ class TransparentPolicy { } private boolean isPolicyEnabled() { + // Disable transparent policy if task is null or in freeform. + final Task task = mActivityRecord.getTask(); + if (task == null || task.getWindowingMode() == WINDOWING_MODE_FREEFORM) { + return false; + } if (!mActivityRecord.mWmService.mFlags.mRespectNonTopVisibleFixedOrientation) { return true; } diff --git a/services/tests/wmtests/src/com/android/server/wm/TransparentPolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/TransparentPolicyTest.java index 7a440e676b39..5187f87cd6db 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransparentPolicyTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransparentPolicyTest.java @@ -16,6 +16,7 @@ package com.android.server.wm; +import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; @@ -236,6 +237,21 @@ public class TransparentPolicyTest extends WindowTestsBase { } @Test + public void testNotRunStrategyToTranslucentActivitiesIfTaskIsFreeform() { + runTestScenario((robot) -> { + robot.transparentActivity((ta) -> { + ta.applyOnActivity((a) -> { + a.setIgnoreOrientationRequest(true); + ta.launchTransparentActivityInTask(); + a.setTaskWindowingMode(WINDOWING_MODE_FREEFORM); + + ta.checkTopActivityTransparentPolicyStateIsRunning(/* running */ false); + }); + }); + }, /* displayWidth */ 2800, /* displayHeight */ 1400); + } + + @Test public void testTranslucentActivitiesDontGoInSizeCompatMode() { runTestScenario((robot) -> { robot.transparentActivity((ta) -> { |