diff options
| author | 2023-12-27 15:55:39 +0000 | |
|---|---|---|
| committer | 2023-12-28 15:24:37 +0000 | |
| commit | 18309cf408dfa30c1c5b65f80c885289562d3854 (patch) | |
| tree | c7240304e462e4f831e2df6b5e3e029a6e03b963 | |
| parent | b017819a05be0c7ffb85f3d62f87e8c1256a0051 (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.txt | 1 | ||||
| -rw-r--r-- | core/api/test-current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/content/pm/ActivityInfo.java | 4 | ||||
| -rw-r--r-- | core/java/android/view/WindowManager.java | 4 | ||||
| -rw-r--r-- | core/proto/android/server/windowmanagerservice.proto | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/LetterboxUiController.java | 1 |
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"/> * </application> * </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 |