summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eghosa Ewansiha-Vlachavas <eevlachavas@google.com> 2023-12-27 15:55:39 +0000
committer Eghosa Ewansiha-Vlachavas <eevlachavas@google.com> 2023-12-28 15:24:37 +0000
commit18309cf408dfa30c1c5b65f80c885289562d3854 (patch)
treec7240304e462e4f831e2df6b5e3e029a6e03b963
parentb017819a05be0c7ffb85f3d62f87e8c1256a0051 (diff)
Make ignore orientation request loop override public and introduce proto for CTS
Bug: 274924641 Test: atest CtsWindowManagerDeviceDisplay:CompatChangeTests Change-Id: I7b02d57e1be46868de6b92d7a922be13b4231704
-rw-r--r--core/api/current.txt1
-rw-r--r--core/api/test-current.txt1
-rw-r--r--core/java/android/content/pm/ActivityInfo.java4
-rw-r--r--core/java/android/view/WindowManager.java4
-rw-r--r--core/proto/android/server/windowmanagerservice.proto1
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java3
-rw-r--r--services/core/java/com/android/server/wm/LetterboxUiController.java1
7 files changed, 11 insertions, 4 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index df073dda254a..151e8b6679e1 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -53954,6 +53954,7 @@ package android.view {
field public static final String PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH = "android.window.PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH";
field public static final String PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE = "android.window.PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE";
field public static final String PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE";
+ field @FlaggedApi("com.android.window.flags.app_compat_properties_api") public static final String PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED = "android.window.PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED";
field @FlaggedApi("com.android.window.flags.app_compat_properties_api") public static final String PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE";
field public static final String PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE";
field public static final String PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS = "android.window.PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS";
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 812ba6d5fde9..c7220b116230 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -1010,6 +1010,7 @@ package android.content.pm {
field public static final long OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH = 264304459L; // 0xfc0f74bL
field public static final long OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE = 264301586L; // 0xfc0ec12L
field public static final long OVERRIDE_ENABLE_COMPAT_FAKE_FOCUS = 263259275L; // 0xfb1048bL
+ field @FlaggedApi("com.android.window.flags.app_compat_properties_api") public static final long OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED = 273509367L; // 0x104d6bf7L
field public static final long OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION = 254631730L; // 0xf2d5f32L
field public static final long OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE = 266124927L; // 0xfdcbe7fL
field public static final long OVERRIDE_MIN_ASPECT_RATIO = 174042980L; // 0xa5faf64L
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 12da66515c07..30871e938e68 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -16,6 +16,7 @@
package android.content.pm;
+import android.annotation.FlaggedApi;
import android.annotation.FloatRange;
import android.annotation.IntDef;
import android.annotation.NonNull;
@@ -42,6 +43,7 @@ import android.util.Printer;
import android.window.OnBackInvokedCallback;
import com.android.internal.util.Parcelling;
+import com.android.window.flags.Flags;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -1099,6 +1101,8 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
@ChangeId
@Overridable
@Disabled
+ @TestApi
+ @FlaggedApi(Flags.FLAG_APP_COMPAT_PROPERTIES_API)
public static final long OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED =
273509367L; // buganizer id
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index f76822f14189..bfdef3a45c43 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -972,10 +972,8 @@ public interface WindowManager extends ViewManager {
* android:value="false"/&gt;
* &lt;/application&gt;
* </pre>
- *
- * @hide
*/
- // TODO(b/274924641): Make this public API.
+ @FlaggedApi(Flags.FLAG_APP_COMPAT_PROPERTIES_API)
String PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED =
"android.window.PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED";
diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto
index 382a82cd090e..f3fe2a453cd5 100644
--- a/core/proto/android/server/windowmanagerservice.proto
+++ b/core/proto/android/server/windowmanagerservice.proto
@@ -395,6 +395,7 @@ message ActivityRecordProto {
optional bool should_refresh_activity_for_camera_compat = 40;
optional bool should_refresh_activity_via_pause_for_camera_compat = 41;
optional bool should_override_min_aspect_ratio = 42;
+ optional bool should_ignore_orientation_request_loop = 43;
}
/* represents WindowToken */
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index ca8afe1972e9..c8a502626d29 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -183,6 +183,7 @@ import static com.android.server.wm.ActivityRecordProto.PROVIDES_MAX_BOUNDS;
import static com.android.server.wm.ActivityRecordProto.REPORTED_DRAWN;
import static com.android.server.wm.ActivityRecordProto.REPORTED_VISIBLE;
import static com.android.server.wm.ActivityRecordProto.SHOULD_FORCE_ROTATE_FOR_CAMERA_COMPAT;
+import static com.android.server.wm.ActivityRecordProto.SHOULD_IGNORE_ORIENTATION_REQUEST_LOOP;
import static com.android.server.wm.ActivityRecordProto.SHOULD_OVERRIDE_MIN_ASPECT_RATIO;
import static com.android.server.wm.ActivityRecordProto.SHOULD_REFRESH_ACTIVITY_FOR_CAMERA_COMPAT;
import static com.android.server.wm.ActivityRecordProto.SHOULD_REFRESH_ACTIVITY_VIA_PAUSE_FOR_CAMERA_COMPAT;
@@ -10357,6 +10358,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
mLetterboxUiController.shouldRefreshActivityViaPauseForCameraCompat());
proto.write(SHOULD_OVERRIDE_MIN_ASPECT_RATIO,
mLetterboxUiController.shouldOverrideMinAspectRatio());
+ proto.write(SHOULD_IGNORE_ORIENTATION_REQUEST_LOOP,
+ mLetterboxUiController.shouldIgnoreOrientationRequestLoop());
}
@Override
diff --git a/services/core/java/com/android/server/wm/LetterboxUiController.java b/services/core/java/com/android/server/wm/LetterboxUiController.java
index 97cc982b69dd..dd00b8fe3a4c 100644
--- a/services/core/java/com/android/server/wm/LetterboxUiController.java
+++ b/services/core/java/com/android/server/wm/LetterboxUiController.java
@@ -513,7 +513,6 @@ final class LetterboxUiController {
* timer and activity is not letterboxed for fixed orientation
* </ul>
*/
- @VisibleForTesting
boolean shouldIgnoreOrientationRequestLoop() {
if (!shouldEnableWithOptInOverrideAndOptOutProperty(
/* gatingCondition */ mLetterboxConfiguration