diff options
| author | 2024-01-12 19:04:24 +0000 | |
|---|---|---|
| committer | 2024-01-12 19:04:24 +0000 | |
| commit | 257578d53befcc3c9067b2f0a87f37ff10e7e1ef (patch) | |
| tree | dff653c898d3520afcadf78e4fc34d295787156b | |
| parent | 9d8f2d1374e3877ae8ef81410a3b662634ae4c85 (diff) | |
| parent | aa76a53bf22be09adfd9fdc9dc42dc9f3e447534 (diff) | |
Merge "Make user aspect ratio fullscreen override public and introduce proto for CTS" into main
| -rw-r--r-- | core/api/current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/view/WindowManager.java | 7 | ||||
| -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 | 13 |
5 files changed, 19 insertions, 6 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 4ca8aa804cce..8a1a46621333 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -53542,6 +53542,7 @@ package android.view { field public static final String PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE"; field @FlaggedApi("com.android.window.flags.app_compat_properties_api") public static final String PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES = "android.window.PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES"; field public static final String PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS = "android.window.PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS"; + field @FlaggedApi("com.android.window.flags.app_compat_properties_api") public static final String PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE"; field @FlaggedApi("com.android.window.flags.app_compat_properties_api") public static final String PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE"; field public static final String PROPERTY_COMPAT_ENABLE_FAKE_FOCUS = "android.window.PROPERTY_COMPAT_ENABLE_FAKE_FOCUS"; field public static final String PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION = "android.window.PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION"; diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index a1c36bef8a19..42355bb17c2d 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -1332,7 +1332,9 @@ public interface WindowManager extends ViewManager { * <p>When users apply the aspect ratio override, the minimum aspect ratio * specified in the app manifest is overridden. If users choose a * full-screen aspect ratio, the orientation of the activity is forced to - * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_USER}. + * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_USER}; + * see {@link #PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE} to + * disable the full-screen option only. * * <p>The user override is intended to improve the app experience on devices * that have the ignore orientation request display setting enabled by OEMs @@ -1400,9 +1402,8 @@ public interface WindowManager extends ViewManager { * android:value="false"/> * </application> * </pre> - * @hide */ - // TODO(b/294227289): Make this public API + @FlaggedApi(Flags.FLAG_APP_COMPAT_PROPERTIES_API) String PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE"; diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto index 9005dd852fca..b63021d52f1c 100644 --- a/core/proto/android/server/windowmanagerservice.proto +++ b/core/proto/android/server/windowmanagerservice.proto @@ -398,6 +398,7 @@ message ActivityRecordProto { optional bool should_ignore_orientation_request_loop = 43; optional bool should_override_force_resize_app = 44; optional bool should_enable_user_aspect_ratio_settings = 45; + optional bool is_user_fullscreen_override_enabled = 46; } /* 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 0985a0820e41..69fbe6ba3c29 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -168,6 +168,7 @@ import static com.android.server.wm.ActivityRecordProto.FILLS_PARENT; import static com.android.server.wm.ActivityRecordProto.FRONT_OF_TASK; import static com.android.server.wm.ActivityRecordProto.IN_SIZE_COMPAT_MODE; import static com.android.server.wm.ActivityRecordProto.IS_ANIMATING; +import static com.android.server.wm.ActivityRecordProto.IS_USER_FULLSCREEN_OVERRIDE_ENABLED; import static com.android.server.wm.ActivityRecordProto.IS_WAITING_FOR_TRANSITION_START; import static com.android.server.wm.ActivityRecordProto.LAST_ALL_DRAWN; import static com.android.server.wm.ActivityRecordProto.LAST_DROP_INPUT_MODE; @@ -10341,6 +10342,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mLetterboxUiController.shouldOverrideForceResizeApp()); proto.write(SHOULD_ENABLE_USER_ASPECT_RATIO_SETTINGS, mLetterboxUiController.shouldEnableUserAspectRatioSettings()); + proto.write(IS_USER_FULLSCREEN_OVERRIDE_ENABLED, + mLetterboxUiController.isUserFullscreenOverrideEnabled()); } @Override diff --git a/services/core/java/com/android/server/wm/LetterboxUiController.java b/services/core/java/com/android/server/wm/LetterboxUiController.java index 47972b37d836..fcc1e5b62221 100644 --- a/services/core/java/com/android/server/wm/LetterboxUiController.java +++ b/services/core/java/com/android/server/wm/LetterboxUiController.java @@ -1187,16 +1187,23 @@ final class LetterboxUiController { && mUserAspectRatio != USER_MIN_ASPECT_RATIO_FULLSCREEN; } - boolean shouldApplyUserFullscreenOverride() { + boolean isUserFullscreenOverrideEnabled() { if (FALSE.equals(mBooleanPropertyAllowUserAspectRatioOverride) || FALSE.equals(mBooleanPropertyAllowUserAspectRatioFullscreenOverride) || !mLetterboxConfiguration.isUserAppAspectRatioFullscreenEnabled()) { return false; } + return true; + } - mUserAspectRatio = getUserMinAspectRatioOverrideCode(); + boolean shouldApplyUserFullscreenOverride() { + if (isUserFullscreenOverrideEnabled()) { + mUserAspectRatio = getUserMinAspectRatioOverrideCode(); - return mUserAspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN; + return mUserAspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN; + } + + return false; } boolean isSystemOverrideToFullscreenEnabled() { |