summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tiger Huang <tigerhuang@google.com> 2023-12-18 06:09:41 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-12-18 06:09:41 +0000
commit237a75b1fcaad50520c2123ab80fb4f99d716d95 (patch)
tree8de6705e8f25f4dcea78b1e50367be605a2275a6
parent186865ff3734c05b3717be396e61d7491ea95bb0 (diff)
parent1f7d924828e5ceb49454520b49227b878e589f23 (diff)
Merge "Use a new fixed-read-only flag to control the e2e feature" into main
-rw-r--r--core/java/android/window/flags/windowing_frontend.aconfig8
-rw-r--r--core/java/com/android/internal/policy/PhoneWindow.java34
-rw-r--r--core/tests/coretests/src/com/android/internal/policy/PhoneWindowTest.java2
3 files changed, 21 insertions, 23 deletions
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig
index 07beb114898d..52ad49a7cf28 100644
--- a/core/java/android/window/flags/windowing_frontend.aconfig
+++ b/core/java/android/window/flags/windowing_frontend.aconfig
@@ -15,6 +15,14 @@ flag {
}
flag {
+ name: "enforce_edge_to_edge"
+ namespace: "windowing_frontend"
+ description: "Make app go edge-to-edge when targeting SDK level 35 or greater"
+ bug: "309578419"
+ is_fixed_read_only: true
+}
+
+flag {
name: "defer_display_updates"
namespace: "windowing_frontend"
description: "Feature flag for deferring DisplayManager updates to WindowManager if Shell transition is running"
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index 201b23cc172c..31910ac7fce5 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -169,20 +169,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
private final static int DEFAULT_BACKGROUND_FADE_DURATION_MS = 300;
/**
- * Makes navigation bar color transparent by default if the target SDK is
- * {@link Build.VERSION_CODES#VANILLA_ICE_CREAM} or above.
- */
- @ChangeId
- @EnabledSince(targetSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM)
- private static final long NAV_BAR_COLOR_DEFAULT_TRANSPARENT = 232195501L;
-
- /**
* Make app go edge-to-edge by default if the target SDK is
* {@link Build.VERSION_CODES#VANILLA_ICE_CREAM} or above.
*/
@ChangeId
@EnabledSince(targetSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM)
- private static final long EDGE_TO_EDGE_BY_DEFAULT = 309578419;
+ private static final long ENFORCE_EDGE_TO_EDGE = 309578419;
private static final int CUSTOM_TITLE_COMPATIBLE_FEATURES = DEFAULT_FEATURES |
(1 << FEATURE_CUSTOM_TITLE) |
@@ -193,9 +185,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
private static final Transition USE_DEFAULT_TRANSITION = new TransitionSet();
/**
- * Since which target SDK version this window should be edge-to-edge by default.
+ * Since which target SDK version this window is enforced to go edge-to-edge.
*/
- private static final int DEFAULT_EDGE_TO_EDGE_SDK_VERSION =
+ private static final int ENFORCE_EDGE_TO_EDGE_SDK_VERSION =
SystemProperties.getInt("persist.wm.debug.default_e2e_since_sdk", Integer.MAX_VALUE);
/**
@@ -376,7 +368,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
boolean mDecorFitsSystemWindows = true;
@VisibleForTesting
- public final boolean mDefaultEdgeToEdge;
+ public final boolean mEdgeToEdgeEnforced;
private final ProxyOnBackInvokedDispatcher mProxyOnBackInvokedDispatcher;
@@ -396,11 +388,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
mProxyOnBackInvokedDispatcher = new ProxyOnBackInvokedDispatcher(context);
mAllowFloatingWindowsFillScreen = context.getResources().getBoolean(
com.android.internal.R.bool.config_allowFloatingWindowsFillScreen);
- mDefaultEdgeToEdge =
- context.getApplicationInfo().targetSdkVersion >= DEFAULT_EDGE_TO_EDGE_SDK_VERSION
- || (CompatChanges.isChangeEnabled(EDGE_TO_EDGE_BY_DEFAULT)
- && Flags.edgeToEdgeByDefault());
- if (mDefaultEdgeToEdge) {
+ mEdgeToEdgeEnforced =
+ context.getApplicationInfo().targetSdkVersion >= ENFORCE_EDGE_TO_EDGE_SDK_VERSION
+ || (CompatChanges.isChangeEnabled(ENFORCE_EDGE_TO_EDGE)
+ && Flags.enforceEdgeToEdge());
+ if (mEdgeToEdgeEnforced) {
mDecorFitsSystemWindows = false;
}
}
@@ -2472,7 +2464,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
setFlags(FLAG_LAYOUT_IN_SCREEN|FLAG_LAYOUT_INSET_DECOR, flagsToUpdate);
params.setFitInsetsSides(0);
params.setFitInsetsTypes(0);
- if (mDefaultEdgeToEdge) {
+ if (mEdgeToEdgeEnforced) {
params.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
}
}
@@ -2562,7 +2554,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
final int statusBarColor = a.getColor(R.styleable.Window_statusBarColor,
statusBarDefaultColor);
- mStatusBarColor = statusBarColor == statusBarDefaultColor && !mDefaultEdgeToEdge
+ mStatusBarColor = statusBarColor == statusBarDefaultColor && !mEdgeToEdgeEnforced
? statusBarCompatibleColor
: statusBarColor;
}
@@ -2574,9 +2566,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
mNavigationBarColor =
navBarColor == navBarDefaultColor
- && !mDefaultEdgeToEdge
- && !(CompatChanges.isChangeEnabled(NAV_BAR_COLOR_DEFAULT_TRANSPARENT)
- && Flags.navBarTransparentByDefault())
+ && !mEdgeToEdgeEnforced
&& !context.getResources().getBoolean(
R.bool.config_navBarDefaultTransparent)
? navBarCompatibleColor
diff --git a/core/tests/coretests/src/com/android/internal/policy/PhoneWindowTest.java b/core/tests/coretests/src/com/android/internal/policy/PhoneWindowTest.java
index 6bdc06af2c5c..de55b0759edd 100644
--- a/core/tests/coretests/src/com/android/internal/policy/PhoneWindowTest.java
+++ b/core/tests/coretests/src/com/android/internal/policy/PhoneWindowTest.java
@@ -63,7 +63,7 @@ public final class PhoneWindowTest {
createPhoneWindowWithTheme(R.style.LayoutInDisplayCutoutModeUnset);
installDecor();
- if (mPhoneWindow.mDefaultEdgeToEdge && !mPhoneWindow.isFloating()) {
+ if (mPhoneWindow.mEdgeToEdgeEnforced && !mPhoneWindow.isFloating()) {
assertThat(mPhoneWindow.getAttributes().layoutInDisplayCutoutMode,
is(LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS));
} else {