diff options
| author | 2024-09-11 17:50:07 +0000 | |
|---|---|---|
| committer | 2024-09-11 17:50:07 +0000 | |
| commit | 7250bdf553b5232f9c6a439a7cc2edb9b1355cf7 (patch) | |
| tree | e9ad3dcc0a349c1efe8ed914b84ee78b8f73d8dc | |
| parent | 5760baad0628381e2e0cc25c14332de06c62bb43 (diff) | |
| parent | 237093c0e53cb1684425267e0e10a607ded55163 (diff) | |
Merge "Disable transparent policy for freeform activities" into main
| -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) -> { |