summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eghosa Ewansiha-Vlachavas <eevlachavas@google.com> 2024-01-12 19:04:24 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-01-12 19:04:24 +0000
commit257578d53befcc3c9067b2f0a87f37ff10e7e1ef (patch)
treedff653c898d3520afcadf78e4fc34d295787156b
parent9d8f2d1374e3877ae8ef81410a3b662634ae4c85 (diff)
parentaa76a53bf22be09adfd9fdc9dc42dc9f3e447534 (diff)
Merge "Make user aspect ratio fullscreen override public and introduce proto for CTS" into main
-rw-r--r--core/api/current.txt1
-rw-r--r--core/java/android/view/WindowManager.java7
-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.java13
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"/&gt;
* &lt;/application&gt;
* </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() {