From c1ad7f9dfa3178b6fdc94b7decceb8b165631d0c Mon Sep 17 00:00:00 2001 From: Chris Li Date: Tue, 14 Feb 2023 17:15:49 +0800 Subject: [PATCH] Move system property for Window Extensions to WindowManager So that it can be reference outside of the wm/ directory, and used in CTS. Bug: 235797785 Test: refactor only Merged-In: I837ecf978bb42b7da45dd5afdc7d7de0b4d2914e Change-Id: I837ecf978bb42b7da45dd5afdc7d7de0b4d2914e --- core/api/test-current.txt | 1 + core/java/android/view/WindowManager.java | 21 +++++++++++++++++++ .../com/android/server/wm/ActivityRecord.java | 2 +- .../server/wm/WindowManagerService.java | 10 --------- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index c0cd6386aec2f..03be333d6e209 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -3294,6 +3294,7 @@ package android.view { public interface WindowManager extends android.view.ViewManager { method public default int getDisplayImePolicy(int); + method public static boolean hasWindowExtensionsEnabled(); method public default void holdLock(android.os.IBinder, int); method public default boolean isGlobalKey(int); method public default boolean isTaskSnapshotSupported(); diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 725eb511737b0..e7cefd60002b7 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -108,6 +108,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; +import android.os.SystemProperties; import android.text.TextUtils; import android.util.Log; import android.util.proto.ProtoOutputStream; @@ -1104,6 +1105,26 @@ public interface WindowManager extends ViewManager { */ public static final String PARCEL_KEY_SHORTCUTS_ARRAY = "shortcuts_array"; + /** + * Whether the device supports the WindowManager Extensions. + * OEMs can enable this by having their device config to inherit window_extensions.mk, such as: + *
+     * $(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk)
+     * 
+ * @hide + */ + boolean WINDOW_EXTENSIONS_ENABLED = + SystemProperties.getBoolean("persist.wm.extensions.enabled", false); + + /** + * @see #WINDOW_EXTENSIONS_ENABLED + * @hide + */ + @TestApi + static boolean hasWindowExtensionsEnabled() { + return WINDOW_EXTENSIONS_ENABLED; + } + /** * Application-level * {@link android.content.pm.PackageManager.Property PackageManager.Property} diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 3545747a67e3f..89b7968366173 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -2159,7 +2159,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A boolean appActivityEmbeddingEnabled = false; try { - appActivityEmbeddingEnabled = WindowManagerService.sWindowExtensionsEnabled + appActivityEmbeddingEnabled = WindowManager.hasWindowExtensionsEnabled() && mAtmService.mContext.getPackageManager() .getProperty(PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, packageName) .getBoolean(); diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index d5bf9f9a516c6..c30aef43585d9 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -442,16 +442,6 @@ public class WindowManagerService extends IWindowManager.Stub static final boolean ENABLE_FIXED_ROTATION_TRANSFORM = SystemProperties.getBoolean("persist.wm.fixed_rotation_transform", true); - /** - * Whether the device supports the WindowManager Extensions. - * OEMs can enable this by having their device config to inherit window_extensions.mk, such as: - *
-     * $(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk)
-     * 
- */ - static final boolean sWindowExtensionsEnabled = - SystemProperties.getBoolean("persist.wm.extensions.enabled", false); - // Enums for animation scale update types. @Retention(RetentionPolicy.SOURCE) @IntDef({WINDOW_ANIMATION_SCALE, TRANSITION_ANIMATION_SCALE, ANIMATION_DURATION_SCALE})