Commit 2a46ced4 authored by Natalie Chouinard's avatar Natalie Chouinard Committed by Commit Bot

Fix status bar icon color on Oreo

Android O fails to correctly set the windowLightStatusBar attribute when
modified via applyStyle, so switch to setting it programmatically on O.

This bug only affects the Preferences activity, where the theme can be
changed.

Bug: 1014844
Change-Id: I5a3dc11a7c5c1aeb8410c2cb12f1c9eb4e49a9f8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1866991Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Natalie Chouinard <chouinard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#707518}
parent 4d9d84a6
...@@ -8,10 +8,5 @@ ...@@ -8,10 +8,5 @@
<item name="android:statusBarColor">@color/modern_primary_color</item> <item name="android:statusBarColor">@color/modern_primary_color</item>
<item name="android:windowLightStatusBar">@bool/window_light_status_bar</item> <item name="android:windowLightStatusBar">@bool/window_light_status_bar</item>
</style> </style>
<style name="Theme.Chromium.Preferences" parent="Base.V21.Theme.Chromium.Preferences">
<item name="android:statusBarColor">@color/modern_primary_color</item>
<item name="android:windowLightStatusBar">@bool/window_light_status_bar</item>
</style>
</resources> </resources>
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<resources>
<!-- The windowLightStatusBar attribute was added in API 23, but we avoid using it via XML prior
to 28 due to: https://crbug.com/884144 and https://crbug.com/1014844 -->
<style name="Theme.Chromium.Preferences" parent="Base.V21.Theme.Chromium.Preferences">
<item name="android:statusBarColor">@color/modern_primary_color</item>
<item name="android:windowLightStatusBar">@bool/window_light_status_bar</item>
</style>
</resources>
...@@ -292,9 +292,8 @@ public class Preferences extends ChromeBaseAppCompatActivity ...@@ -292,9 +292,8 @@ public class Preferences extends ChromeBaseAppCompatActivity
* Set device status bar to match the activity background color, if supported. * Set device status bar to match the activity background color, if supported.
*/ */
private void setStatusBarColor() { private void setStatusBarColor() {
// On O+, the status bar color is already set via the XML theme. We avoid setting status bar // On P+, the status bar color is set via the XML theme.
// color via XML pre-O due to: https://crbug.com/884144. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) return;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) return;
// Kill switch included due to past crashes when programmatically setting status bar color: // Kill switch included due to past crashes when programmatically setting status bar color:
// https://crbug.com/880694. // https://crbug.com/880694.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment