diff options
| author | 2023-01-30 12:04:41 +0000 | |
|---|---|---|
| committer | 2023-02-08 10:27:45 +0000 | |
| commit | bd40b2bfc9abbb4fcb13fe6bb5e617cbda4d8178 (patch) | |
| tree | a5bbc978f2d87b3ab2eb4544a5ca4beb405e1aa5 | |
| parent | 0b3ff82173f877f24b62962abb695800fc6dbdcd (diff) | |
Enable translucent activities strategy by default
Fixes: 261721427
Test: existing ones
Change-Id: I18d16628f434b99c80151af2fb758075e6ca4483
| -rw-r--r-- | services/core/java/com/android/server/wm/LetterboxConfiguration.java | 15 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java | 27 |
2 files changed, 25 insertions, 17 deletions
diff --git a/services/core/java/com/android/server/wm/LetterboxConfiguration.java b/services/core/java/com/android/server/wm/LetterboxConfiguration.java index 513667024caa..fa49a6ba6c2b 100644 --- a/services/core/java/com/android/server/wm/LetterboxConfiguration.java +++ b/services/core/java/com/android/server/wm/LetterboxConfiguration.java @@ -22,6 +22,7 @@ import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ALLOW import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ENABLE_CAMERA_COMPAT_TREATMENT; import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ENABLE_COMPAT_FAKE_FOCUS; import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ENABLE_DISPLAY_ROTATION_IMMERSIVE_APP_COMPAT_POLICY; +import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY; import android.annotation.IntDef; import android.annotation.NonNull; @@ -296,7 +297,6 @@ final class LetterboxConfiguration { R.bool.config_isCompatFakeFocusEnabled); mIsPolicyForIgnoringRequestedOrientationEnabled = mContext.getResources().getBoolean( R.bool.config_letterboxIsPolicyForIgnoringRequestedOrientationEnabled); - mIsDisplayRotationImmersiveAppCompatPolicyEnabled = mContext.getResources().getBoolean( R.bool.config_letterboxIsDisplayRotationImmersiveAppCompatPolicyEnabled); mDeviceConfig.updateFlagActiveStatus( @@ -311,7 +311,9 @@ final class LetterboxConfiguration { mDeviceConfig.updateFlagActiveStatus( /* isActive */ mIsCompatFakeFocusEnabled, /* key */ KEY_ENABLE_COMPAT_FAKE_FOCUS); - + mDeviceConfig.updateFlagActiveStatus( + /* isActive */ mTranslucentLetterboxingEnabled, + /* key */ KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY); mLetterboxConfigurationPersister = letterboxConfigurationPersister; mLetterboxConfigurationPersister.start(); } @@ -1003,7 +1005,7 @@ final class LetterboxConfiguration { boolean isTranslucentLetterboxingEnabled() { return mTranslucentLetterboxingOverrideEnabled || (mTranslucentLetterboxingEnabled - && isTranslucentLetterboxingAllowed()); + && mDeviceConfig.getFlag(KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY)); } void setTranslucentLetterboxingEnabled(boolean translucentLetterboxingEnabled) { @@ -1051,13 +1053,6 @@ final class LetterboxConfiguration { isDeviceInTabletopMode, nextVerticalPosition); } - // TODO(b/262378106): Cache a runtime flag and implement - // DeviceConfig.OnPropertiesChangedListener - static boolean isTranslucentLetterboxingAllowed() { - return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_WINDOW_MANAGER, - "enable_translucent_activity_letterbox", false); - } - /** Whether fake sending focus is enabled for unfocused apps in splitscreen */ boolean isCompatFakeFocusEnabled() { return mIsCompatFakeFocusEnabled && mDeviceConfig.getFlag(KEY_ENABLE_COMPAT_FAKE_FOCUS); diff --git a/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java b/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java index b364872e56e7..df3c8f0fdccc 100644 --- a/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java +++ b/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java @@ -48,6 +48,11 @@ final class LetterboxConfigurationDeviceConfig static final String KEY_ENABLE_COMPAT_FAKE_FOCUS = "enable_compat_fake_focus"; private static final boolean DEFAULT_VALUE_ENABLE_COMPAT_FAKE_FOCUS = true; + static final String KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY = + "enable_letterbox_translucent_activity"; + + private static final boolean DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY = true; + @VisibleForTesting static final Map<String, Boolean> sKeyToDefaultValueMap = Map.of( KEY_ENABLE_CAMERA_COMPAT_TREATMENT, @@ -57,7 +62,9 @@ final class LetterboxConfigurationDeviceConfig KEY_ALLOW_IGNORE_ORIENTATION_REQUEST, DEFAULT_VALUE_ALLOW_IGNORE_ORIENTATION_REQUEST, KEY_ENABLE_COMPAT_FAKE_FOCUS, - DEFAULT_VALUE_ENABLE_COMPAT_FAKE_FOCUS + DEFAULT_VALUE_ENABLE_COMPAT_FAKE_FOCUS, + KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY, + DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY ); // Whether camera compatibility treatment is enabled. @@ -82,6 +89,10 @@ final class LetterboxConfigurationDeviceConfig // which isn't guaranteed by default in multi-window modes. private boolean mIsCompatFakeFocusAllowed = DEFAULT_VALUE_ENABLE_COMPAT_FAKE_FOCUS; + // Whether the letterbox strategy for transparent activities is allowed + private boolean mIsTranslucentLetterboxingAllowed = + DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY; + // Set of active device configs that need to be updated in // DeviceConfig.OnPropertiesChangedListener#onPropertiesChanged. private final ArraySet<String> mActiveDeviceConfigsSet = new ArraySet<>(); @@ -129,6 +140,8 @@ final class LetterboxConfigurationDeviceConfig return mIsAllowIgnoreOrientationRequest; case KEY_ENABLE_COMPAT_FAKE_FOCUS: return mIsCompatFakeFocusAllowed; + case KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY: + return mIsTranslucentLetterboxingAllowed; default: throw new AssertionError("Unexpected flag name: " + key); } @@ -141,20 +154,20 @@ final class LetterboxConfigurationDeviceConfig } switch (key) { case KEY_ENABLE_CAMERA_COMPAT_TREATMENT: - mIsCameraCompatTreatmentEnabled = - getDeviceConfig(key, defaultValue); + mIsCameraCompatTreatmentEnabled = getDeviceConfig(key, defaultValue); break; case KEY_ENABLE_DISPLAY_ROTATION_IMMERSIVE_APP_COMPAT_POLICY: mIsDisplayRotationImmersiveAppCompatPolicyEnabled = getDeviceConfig(key, defaultValue); break; case KEY_ALLOW_IGNORE_ORIENTATION_REQUEST: - mIsAllowIgnoreOrientationRequest = - getDeviceConfig(key, defaultValue); + mIsAllowIgnoreOrientationRequest = getDeviceConfig(key, defaultValue); break; case KEY_ENABLE_COMPAT_FAKE_FOCUS: - mIsCompatFakeFocusAllowed = - getDeviceConfig(key, defaultValue); + mIsCompatFakeFocusAllowed = getDeviceConfig(key, defaultValue); + break; + case KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY: + mIsTranslucentLetterboxingAllowed = getDeviceConfig(key, defaultValue); break; default: throw new AssertionError("Unexpected flag name: " + key); |