diff options
| author | 2023-12-14 17:30:12 +0000 | |
|---|---|---|
| committer | 2023-12-19 19:25:28 +0000 | |
| commit | 33ea7c9af25ed716eb94e879c53ba86dc660f77d (patch) | |
| tree | 09c2a50a168556cb05fb9c2b1dc1dcd81f975069 | |
| parent | 99fa73c0de11302a55a758aac3b132316ba4c0a2 (diff) | |
[2/n] Add PackageManager.USER_MIN_ASPECT_RATIO_APP_DEFAULT
Fullscreen per-app override will be applied when user has not set any
aspect ratio for app (USER_MIN_ASPECT_RATIO_UNSET).
New API will behave the same as USER_MIN_ASPECT_RATIO_UNSET except when
fullscreen override has been applied by device manufacturer.
New API will allow user to revert from device manufacturer-applied
fullscreen override (applied by overriding orientation to
SCREEN_ORIENTATION_USER via OVERRIDE_ANY_ORIENTATION_TO_USER).
Bug: 310816437
Test: atest LetterboxUiControllerTest
Change-Id: Ib23d39b9ecb3fc43139ad5f6b530d6ca11881fed
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/LetterboxUiController.java | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index a8638708824b..69273df2cce8 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -2518,6 +2518,7 @@ public abstract class PackageManager { USER_MIN_ASPECT_RATIO_16_9, USER_MIN_ASPECT_RATIO_3_2, USER_MIN_ASPECT_RATIO_FULLSCREEN, + USER_MIN_ASPECT_RATIO_APP_DEFAULT, }) @Retention(RetentionPolicy.SOURCE) public @interface UserMinAspectRatio {} @@ -2571,6 +2572,16 @@ public abstract class PackageManager { */ public static final int USER_MIN_ASPECT_RATIO_FULLSCREEN = 6; + /** + * Aspect ratio override code: user sets to app's default aspect ratio. + * This resets both the user-forced aspect ratio, and the device manufacturer + * per-app override {@link ActivityInfo#OVERRIDE_ANY_ORIENTATION_TO_USER}. + * It is different from {@link #USER_MIN_ASPECT_RATIO_UNSET} as the latter may + * apply the device manufacturer per-app orientation override if any, + * @hide + */ + public static final int USER_MIN_ASPECT_RATIO_APP_DEFAULT = 7; + /** @hide */ @IntDef(flag = true, prefix = { "DELETE_" }, value = { DELETE_KEEP_DATA, diff --git a/services/core/java/com/android/server/wm/LetterboxUiController.java b/services/core/java/com/android/server/wm/LetterboxUiController.java index 9305396caa19..97cc982b69dd 100644 --- a/services/core/java/com/android/server/wm/LetterboxUiController.java +++ b/services/core/java/com/android/server/wm/LetterboxUiController.java @@ -46,6 +46,7 @@ import static android.content.pm.ActivityInfo.screenOrientationToString; import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_16_9; import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_3_2; import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_4_3; +import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_APP_DEFAULT; import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_DISPLAY_SIZE; import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN; import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_SPLIT_SCREEN; @@ -1185,6 +1186,7 @@ final class LetterboxUiController { mUserAspectRatio = getUserMinAspectRatioOverrideCode(); return mUserAspectRatio != USER_MIN_ASPECT_RATIO_UNSET + && mUserAspectRatio != USER_MIN_ASPECT_RATIO_APP_DEFAULT && mUserAspectRatio != USER_MIN_ASPECT_RATIO_FULLSCREEN; } |