diff options
author | 2024-09-03 03:40:20 +0000 | |
---|---|---|
committer | 2024-09-03 03:40:20 +0000 | |
commit | 1453ebeea66ef9248bc27230250a262a081aacdc (patch) | |
tree | 4cb731fc836b7bcc665be16f9569245dc25b74d9 | |
parent | dc30d71aaf56066dbded2a5d3614614a4715ac58 (diff) | |
parent | 64821125cf3c437b862381a3366f050f0e0e4cb7 (diff) |
Merge "Add device config for experiment of ignoring activity orientation" into main
-rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 3 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerConstants.java | 19 |
2 files changed, 22 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index ebdf52cc9037..e562ea84d001 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -8152,6 +8152,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A */ @Override protected int getOverrideOrientation() { + if (mWmService.mConstants.mIgnoreActivityOrientationRequest) { + return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; + } return mAppCompatController.getOrientationPolicy() .overrideOrientationIfNeeded(super.getOverrideOrientation()); } diff --git a/services/core/java/com/android/server/wm/WindowManagerConstants.java b/services/core/java/com/android/server/wm/WindowManagerConstants.java index 1931be4015c6..47c42f4292f1 100644 --- a/services/core/java/com/android/server/wm/WindowManagerConstants.java +++ b/services/core/java/com/android/server/wm/WindowManagerConstants.java @@ -34,6 +34,10 @@ import java.util.concurrent.Executor; */ final class WindowManagerConstants { + /** The orientation of activity will be always "unspecified". */ + private static final String KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST = + "ignore_activity_orientation_request"; + /** * The minimum duration between gesture exclusion logging for a given window in * milliseconds. @@ -58,6 +62,9 @@ final class WindowManagerConstants { /** @see AndroidDeviceConfig#KEY_SYSTEM_GESTURES_EXCLUDED_BY_PRE_Q_STICKY_IMMERSIVE */ boolean mSystemGestureExcludedByPreQStickyImmersive; + /** @see #KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST */ + boolean mIgnoreActivityOrientationRequest; + private final WindowManagerGlobalLock mGlobalLock; private final Runnable mUpdateSystemGestureExclusionCallback; private final DeviceConfigInterface mDeviceConfig; @@ -89,6 +96,7 @@ final class WindowManagerConstants { updateSystemGestureExclusionLogDebounceMillis(); updateSystemGestureExclusionLimitDp(); updateSystemGestureExcludedByPreQStickyImmersive(); + updateIgnoreActivityOrientationRequest(); } private void onAndroidPropertiesChanged(DeviceConfig.Properties properties) { @@ -127,6 +135,9 @@ final class WindowManagerConstants { case KEY_SYSTEM_GESTURE_EXCLUSION_LOG_DEBOUNCE_MILLIS: updateSystemGestureExclusionLogDebounceMillis(); break; + case KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST: + updateIgnoreActivityOrientationRequest(); + break; default: break; } @@ -152,6 +163,12 @@ final class WindowManagerConstants { KEY_SYSTEM_GESTURES_EXCLUDED_BY_PRE_Q_STICKY_IMMERSIVE, false); } + private void updateIgnoreActivityOrientationRequest() { + mIgnoreActivityOrientationRequest = mDeviceConfig.getBoolean( + DeviceConfig.NAMESPACE_WINDOW_MANAGER, + KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST, false); + } + void dump(PrintWriter pw) { pw.println("WINDOW MANAGER CONSTANTS (dumpsys window constants):"); @@ -161,6 +178,8 @@ final class WindowManagerConstants { pw.print("="); pw.println(mSystemGestureExclusionLimitDp); pw.print(" "); pw.print(KEY_SYSTEM_GESTURES_EXCLUDED_BY_PRE_Q_STICKY_IMMERSIVE); pw.print("="); pw.println(mSystemGestureExcludedByPreQStickyImmersive); + pw.print(" "); pw.print(KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST); + pw.print("="); pw.println(mIgnoreActivityOrientationRequest); pw.println(); } } |