Make navigation bar color transparent by default
This CL only changes the default color from black to transparent. If an
app specifies the navigation color from the resource or programatically,
its color will still be applied.
This feature is only enabled when config_navBarDefaultTransparent is
enabled.
Fix: 232195501
Test: Open Pixel Logger or NetGrapher with the combinations of:
1. gesture navigation or 3-button navigation
2. light theme or dark theme
Change-Id: I9f1fd67e1c42cc732accba2260e0374cbc495041
This commit is contained in:
@@ -2507,12 +2507,23 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
final boolean targetPreQ = targetSdk < Build.VERSION_CODES.Q;
|
||||
|
||||
if (!mForcedStatusBarColor) {
|
||||
mStatusBarColor = a.getColor(R.styleable.Window_statusBarColor, 0xFF000000);
|
||||
mStatusBarColor = a.getColor(R.styleable.Window_statusBarColor, Color.BLACK);
|
||||
}
|
||||
if (!mForcedNavigationBarColor) {
|
||||
mNavigationBarColor = a.getColor(R.styleable.Window_navigationBarColor, 0xFF000000);
|
||||
final int navBarCompatibleColor = context.getColor(R.color.navigation_bar_compatible);
|
||||
final int navBarDefaultColor = context.getColor(R.color.navigation_bar_default);
|
||||
final int navBarColor = a.getColor(R.styleable.Window_navigationBarColor,
|
||||
navBarDefaultColor);
|
||||
|
||||
mNavigationBarColor =
|
||||
navBarColor == navBarDefaultColor
|
||||
&& !context.getResources().getBoolean(
|
||||
R.bool.config_navBarDefaultTransparent)
|
||||
? navBarCompatibleColor
|
||||
: navBarColor;
|
||||
|
||||
mNavigationBarDividerColor = a.getColor(R.styleable.Window_navigationBarDividerColor,
|
||||
0x00000000);
|
||||
Color.TRANSPARENT);
|
||||
}
|
||||
if (!targetPreQ) {
|
||||
mEnsureStatusBarContrastWhenTransparent = a.getBoolean(
|
||||
|
||||
@@ -573,4 +573,10 @@
|
||||
<color name="side_fps_toast_background">#F7F9FA</color>
|
||||
<color name="side_fps_text_color">#191C1D</color>
|
||||
<color name="side_fps_button_color">#00677E</color>
|
||||
|
||||
<!-- Color for system bars -->
|
||||
<color name="navigation_bar_compatible">@android:color/black</color>
|
||||
<!-- This uses non-regular transparent intentionally. It is used to tell if the transparent
|
||||
color is set by the framework or not. -->
|
||||
<color name="navigation_bar_default">#00808080</color>
|
||||
</resources>
|
||||
|
||||
@@ -3876,6 +3876,10 @@
|
||||
This should only be set when the device has gestural navigation enabled by default. -->
|
||||
<bool name="config_showGesturalNavigationHints">false</bool>
|
||||
|
||||
<!-- Controls whether the navigation bar background color provided by the app is transparent by
|
||||
default. This should be controlled in developer options. -->
|
||||
<bool name="config_navBarDefaultTransparent">false</bool>
|
||||
|
||||
<!-- Controls the free snap mode for the docked stack divider. In this mode, the divider can be
|
||||
snapped to any position between the first target and the last target. -->
|
||||
<bool name="config_dockedStackDividerFreeSnapMode">false</bool>
|
||||
|
||||
@@ -2996,6 +2996,9 @@
|
||||
<java-symbol type="array" name="config_backGestureInsetScales" />
|
||||
<java-symbol type="color" name="system_bar_background_semi_transparent" />
|
||||
<java-symbol type="bool" name="config_showGesturalNavigationHints" />
|
||||
<java-symbol type="bool" name="config_navBarDefaultTransparent" />
|
||||
<java-symbol type="color" name="navigation_bar_default"/>
|
||||
<java-symbol type="color" name="navigation_bar_compatible"/>
|
||||
|
||||
<!-- EditText suggestion popup. -->
|
||||
<java-symbol type="id" name="suggestionWindowContainer" />
|
||||
|
||||
@@ -191,7 +191,7 @@ please see themes_device_defaults.xml.
|
||||
<item name="windowTranslucentNavigation">false</item>
|
||||
<item name="windowDrawsSystemBarBackgrounds">false</item>
|
||||
<item name="statusBarColor">@color/black</item>
|
||||
<item name="navigationBarColor">@color/black</item>
|
||||
<item name="navigationBarColor">@color/navigation_bar_default</item>
|
||||
<item name="windowActionBarFullscreenDecorLayout">@layout/screen_action_bar</item>
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">false</item>
|
||||
|
||||
@@ -175,7 +175,7 @@ please see themes_device_defaults.xml.
|
||||
<item name="windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="windowActionBarFullscreenDecorLayout">@layout/screen_toolbar</item>
|
||||
<item name="statusBarColor">?attr/colorPrimaryDark</item>
|
||||
<item name="navigationBarColor">@color/black</item>
|
||||
<item name="navigationBarColor">@color/navigation_bar_default</item>
|
||||
<item name="windowEnterTransition">@transition/fade</item>
|
||||
<item name="windowSharedElementEnterTransition">@transition/move</item>
|
||||
<item name="windowSharedElementExitTransition">@transition/move</item>
|
||||
@@ -548,7 +548,7 @@ please see themes_device_defaults.xml.
|
||||
<item name="windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="windowActionBarFullscreenDecorLayout">@layout/screen_toolbar</item>
|
||||
<item name="statusBarColor">?attr/colorPrimaryDark</item>
|
||||
<item name="navigationBarColor">@color/black</item>
|
||||
<item name="navigationBarColor">@color/navigation_bar_default</item>
|
||||
<item name="windowEnterTransition">@transition/fade</item>
|
||||
<item name="windowSharedElementEnterTransition">@transition/move</item>
|
||||
<item name="windowSharedElementExitTransition">@transition/move</item>
|
||||
|
||||
Reference in New Issue
Block a user