summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/res/res/values/config.xml3
-rw-r--r--core/res/res/values/symbols.xml9
-rw-r--r--services/core/java/com/android/server/wm/LetterboxConfiguration.java18
3 files changed, 27 insertions, 3 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index e643240932f1..f27535c65fe4 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -5702,6 +5702,9 @@
TODO(b/255532890) Enable when ignoreOrientationRequest is set -->
<bool name="config_letterboxIsEnabledForTranslucentActivities">false</bool>
+ <!-- Whether per-app user aspect ratio override settings is enabled -->
+ <bool name="config_appCompatUserAppAspectRatioSettingsIsEnabled">false</bool>
+
<!-- Whether sending compat fake focus for split screen resumed activities is enabled.
Needed because some game engines wait to get focus before drawing the content of
the app which isn't guaranteed by default in multi-window modes. -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 11f50dfdf84b..2e5da3353752 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -4430,9 +4430,6 @@
<!-- Set to true to make assistant show in front of the dream/screensaver. -->
<java-symbol type="bool" name="config_assistantOnTopOfDream"/>
- <!-- Set to true to enable letterboxing on translucent activities. -->
- <java-symbol type="bool" name="config_letterboxIsEnabledForTranslucentActivities" />
-
<java-symbol type="string" name="config_overrideComponentUiPackage" />
<java-symbol type="string" name="notification_channel_network_status" />
@@ -4528,6 +4525,12 @@
<java-symbol type="dimen" name="config_letterboxDefaultMinAspectRatioForUnresizableApps" />
<java-symbol type="bool" name="config_letterboxIsSplitScreenAspectRatioForUnresizableAppsEnabled" />
<java-symbol type="bool" name="config_letterboxIsDisplayAspectRatioForFixedOrientationLetterboxEnabled" />
+ <!-- Set to true to enable letterboxing on translucent activities. -->
+ <java-symbol type="bool" name="config_letterboxIsEnabledForTranslucentActivities" />
+
+ <!-- Whether per-app user aspect ratio override settings is enabled -->
+ <java-symbol type="bool" name="config_appCompatUserAppAspectRatioSettingsIsEnabled" />
+
<java-symbol type="bool" name="config_isCompatFakeFocusEnabled" />
<java-symbol type="bool" name="config_isWindowManagerCameraCompatTreatmentEnabled" />
<java-symbol type="bool" name="config_isWindowManagerCameraCompatSplitScreenAspectRatioEnabled" />
diff --git a/services/core/java/com/android/server/wm/LetterboxConfiguration.java b/services/core/java/com/android/server/wm/LetterboxConfiguration.java
index 09cd6a5aa688..fd4d0405e298 100644
--- a/services/core/java/com/android/server/wm/LetterboxConfiguration.java
+++ b/services/core/java/com/android/server/wm/LetterboxConfiguration.java
@@ -78,6 +78,13 @@ final class LetterboxConfiguration {
private static final boolean DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY = true;
+ // Whether per-app user aspect ratio override settings is enabled
+ private static final String KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS =
+ "enable_app_compat_user_aspect_ratio_settings";
+
+ // TODO(b/288142656): Enable user aspect ratio settings by default.
+ private static final boolean DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_SETTINGS = false;
+
/**
* Override of aspect ratio for fixed orientation letterboxing that is set via ADB with
* set-fixed-orientation-letterbox-aspect-ratio or via {@link
@@ -345,6 +352,10 @@ final class LetterboxConfiguration {
DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY,
mContext.getResources().getBoolean(
R.bool.config_letterboxIsEnabledForTranslucentActivities))
+ .addDeviceConfigEntry(KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS,
+ DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_SETTINGS,
+ mContext.getResources().getBoolean(
+ R.bool.config_appCompatUserAppAspectRatioSettingsIsEnabled))
.build();
}
@@ -1207,4 +1218,11 @@ final class LetterboxConfiguration {
boolean isDisplayRotationImmersiveAppCompatPolicyEnabled() {
return mDeviceConfig.getFlagValue(KEY_ENABLE_DISPLAY_ROTATION_IMMERSIVE_APP_COMPAT_POLICY);
}
+
+ /**
+ * Whether per-app user aspect ratio override settings is enabled
+ */
+ boolean isUserAppAspectRatioSettingsEnabled() {
+ return mDeviceConfig.getFlagValue(KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS);
+ }
}