summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/TransparentPolicy.java6
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TransparentPolicyTest.java16
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) -> {